Mobile Development 7 min read

Case Study: Evolution of Gaode Map App Architecture – Dual‑End Fusion, Componentization, and R&D Platform

Gaode Map transformed its app architecture by fusing Android and iOS through C++ sinking, dynamic UI floating, and dual‑end alignment, introducing component‑based containers and a unified R&D middle‑platform, which turned a pseudo‑bus into a real bus, cutting build time, crash rate, and release cycles while enabling true parallel development and paving the way for a future feature‑team model.

Amap Tech
Amap Tech
Amap Tech
Case Study: Evolution of Gaode Map App Architecture – Dual‑End Fusion, Componentization, and R&D Platform

Instructor Introduction Hao Renjie, a wireless development expert at Gaode Map, presented the recent evolution and practice of Gaode’s app architecture at the 2019 ArchSummit (July 13).

Background Overview Gaode is a leading provider of digital map content, navigation, and location services in China, with two main client lines: mobile and in‑vehicle. Rapid business growth and a surge in team size have caused the codebase to expand dramatically, creating challenges for parallel development. The architecture has undergone several iterations: from an initial dual‑native monolithic design, to sinking the map engine into C++, and then building a dynamic UI framework. These steps yielded some improvements, but further refinement is still needed.

To keep development on schedule, Gaode establishes an annual "public‑bus" plan, where each app version is a bus and each set of features is cargo. However, large code differences between the two platforms, heavy coupling, low reuse, unclear responsibilities, and primitive tooling have turned the bus into a "pseudo‑bus": cargo assembly is slow and low‑quality, causing release cycles of up to three months and a crash rate of 0.0008% (8 per ten‑thousand).

Execution Plan The goal is to transform the pseudo‑bus into a real bus by addressing dual‑end differences, code coupling, and tooling shortcomings. In 2018, Gaode’s client achieved this through three key initiatives: dual‑end fusion, componentization, and the construction of an R&D middle‑platform.

Dual‑End Fusion The approach combines three techniques: 1. C++ sinking – moving core logic into C++ to achieve cross‑platform performance gains. 2. Dynamic UI floating – a cross‑platform UI layer that lowers development barriers and boosts efficiency while preparing for future dynamism. 3. Dual‑end alignment – leveraging the strengths of both Android and iOS while preserving platform‑specific extensions, thus maintaining consistency without sacrificing compatibility.

Componentization Inspired by mature container solutions such as Alibaba’s Atlas, BeeHive, and NetEase’s LDBusMediator, Gaode defined its own concepts of containers, modules, micro‑applications, micro‑services, and page routing. Borrowing Android’s componentization ideas, the design lets business logic focus on required services without needing to manage unrelated parts.

Through layered and grouped architecture, module responsibilities become clear. The container provides an internal structural framework, decouples code, raises reuse rates, and lays the foundation for parallel development.

R&D Middle‑Platform Based on the existing bus workflow, the platform refines the production, research, testing, and project processes, centralizing them into a unified middle‑platform. This reduces risk, improves efficiency, and enables true parallel development.

Practical Benefits • Dual‑end fusion solved consistency issues and boosted app stability. • Componentization reduced code coupling and increased reuse. • The R&D platform automated and standardized processes, enabling parallel development and halving the release cycle. • Crash rate dropped from 0.0008% to 0.00008% (ten‑fold reduction). • Build time decreased from over 40 minutes to about 8 minutes.

Future Outlook While the 2018 architecture reforms turned a pseudo‑bus into a real bus, they represent only a stage in Gaode’s ongoing evolution. The next step is to fully exploit dynamic UI to make business truly dynamic, transitioning from the bus era to a "Feature Team" era. Each Feature Team will operate like an independent car on a dedicated road, loading its own cargo and moving freely, thereby achieving greater flexibility, parallelism, and efficiency.

Conclusion Readers are invited to follow Gaode’s technology public account for more details and to consider joining Gaode to explore the future of Gaode Map app architecture together.

mobile developmentperformancecross‑platformcomponentizationApp Architecture
Amap Tech
Written by

Amap Tech

Official Amap technology account showcasing all of Amap's technical innovations.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.