Optimizing Startup Process for Platform-Scale Mobile Apps: The Rocket Framework at Trip.com
This article shares Trip.com’s experience in redesigning the mobile app launch process through componentization, concurrent initialization, visual monitoring, and automated experiments, culminating in the Rocket framework that reduced startup time by over 40% while keeping modules isolated and crash‑resilient.
Background
Driven by Ctrip’s global expansion, the International Business Unit (IBU) has seen rapid growth, leading the Trip.com app to integrate an ever‑increasing number of business lines. This growth exposed significant startup‑time and maintainability issues.
Problem Statement
The team needed to manage the launch process and optimize startup time. After several iterations, they achieved a stable, low‑latency startup and built a monitoring system that keeps launch time consistently low across versions.
General Startup Flow
Typical Android/iOS launch consists of three stages: (1) entry point, (2) home page, and (3) business‑line page. All steps execute synchronously, which makes the process simple but time‑consuming and hard to maintain, especially when many modules require initialization.
Framework‑Level Rethink
To address these challenges, the team introduced a framework‑driven approach focusing on componentization, concurrent execution, isolation of business modules, visualized monitoring, and crash risk mitigation.
2.1 Componentization
Each business module (e.g., Hotel, Storage, ImageLoader) keeps its initialization code within its own project, while the launch framework orchestrates execution. This decouples modules, enables independent compilation, and supports true component‑based architecture.
2.2 Concurrent Execution
The framework runs independent initialization tasks in parallel, maximizing CPU utilization. Factors such as I/O‑ vs CPU‑bound tasks, thread priority, and dependency relationships are considered, though precise measurement is difficult.
2.3 Business‑Module Isolation
Modules that do not depend on each other can initialize simultaneously, and a module’s failure only affects its own functionality, preventing a full‑app crash.
2.4 Startup Visualization
A visual dashboard shows each task’s duration, dependencies, and timeline, allowing developers, testers, and product managers to quickly identify bottlenecks and track improvements across releases.
2.5 Crash Risk Mitigation
If a module crashes (e.g., Hotel), the framework isolates the failure so other features (flight, train) remain usable while surfacing the issue to the responsible team.
Rocket Startup Framework
The solution, named Rocket , provides three core capabilities: (1) a cross‑platform (Android/iOS) launch framework, (2) automated experiments to tune parameters, and (3) monitoring for both debug and release builds.
3.1 Cross‑Platform Launch Framework
Launch tasks are defined in each module and collected via compile‑time annotations or configuration files. The framework distributes and executes these tasks, handling dependencies through a directed acyclic graph (DAG) and using CAS‑based locks to enforce order.
3.2 Automated Experiment Design
Because many factors (thread‑pool size, task priority, first‑launch effects) are hard to model analytically, the team runs automated experiments on representative devices using Appium to collect launch metrics, then manually adjusts parameters (e.g., thread count) based on the results.
3.3 Monitoring & Visualization
Experiment data is reported alongside production data, enabling the same front‑end visualization (Nemo) to be used in both testing and live environments.
Results & Future Work
With Rocket, Trip.com reduced app startup time by more than 40% and maintained low launch times across multiple releases without heavy maintenance. Remaining work includes further optimization of the task scheduler and enhancing the visualization dashboard.
Ctrip Technology
Official Ctrip Technology account, sharing and discussing growth.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.