Mobile Development 12 min read

When Pluginization Meets Android P: Challenges, Android App Bundles, and the Future of Modular Architecture

This article examines the impact of Android P’s non‑SDK API restrictions on large‑scale Android apps, explains Google’s official dynamic delivery framework Android App Bundles, and outlines JD.com’s evolution from pure pluginization to a hybrid component‑based architecture called AuraPlus, highlighting key technical decisions and migration strategies.

JD Retail Technology
JD Retail Technology
JD Retail Technology
When Pluginization Meets Android P: Challenges, Android App Bundles, and the Future of Modular Architecture

Android P introduces strict bans on private API usage, dividing non‑SDK interfaces into shallow‑gray, deep‑gray, and blacklists, and requiring developers to adapt their apps before the final release.

Google’s response is the Android App Bundle (AAB) format, which splits an application into a Base APK, configuration APKs, and dynamic feature APKs, allowing Google Play to deliver only the resources needed for a specific device, thereby reducing APK size.

JD.com’s senior Android architect Zhang Zhiqiang presents a five‑part talk covering the Android P ban, the official AAB framework, the future direction of pluginization, JD’s own architectural upgrades, and key technical challenges.

The talk explains the advantages of pluginization—solving the 65K method limit, enabling parallel team development, speeding up compilation, and supporting dynamic deployment—while also acknowledging its drawbacks such as compatibility and maturity issues.

To address these challenges, JD proposes a hybrid approach that combines pluginization with componentization (AuraPlus), emphasizing high cohesion and low coupling, project/module boundaries for physical isolation, flexible inter‑component communication, and clear dependency management.

In the new architecture, each component produces an Api.jar and a Full.aar; the host app compiles the Full.aar while dependent components only need the Api.jar, achieving a balance between isolation and integration.

Additional engineering practices include using a lightweight Gradle plugin as an SDK layer to replace the monolithic JDLIB, adding resource prefixes to avoid ID conflicts, managing third‑party libraries via a dedicated ThirdBundle component, and providing a BaseResBundle for shared resources.

The presentation concludes with a comparison table of pluginization, AAB, componentization, and front‑end solutions, highlighting trade‑offs in boundary isolation, parallel development, independent debugging, compatibility, maturity, dynamic deployment, and migration cost.

Mobile DevelopmentAndroidmodular architecturepluginizationApp Bundles
JD Retail Technology
Written by

JD Retail Technology

Official platform of JD Retail Technology, delivering insightful R&D news and a deep look into the lives and work of technologists.

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.