In August 2021, Google made a decision that fundamentally changed how Android apps are distributed: all new apps submitted to the Google Play Store must use the Android App Bundle (AAB) format instead of the traditional APK. This shift affected developers, users, and the entire ecosystem of third-party app distribution. But what exactly is an App Bundle, how does it work, and why should you care?
This guide covers everything from the technical internals of the AAB format to the practical implications for users who want to share apps with friends or install them on devices without Play Store access.
What is an Android App Bundle?
An Android App Bundle is a publishing format that contains all of an app's compiled code and resources but defers the generation of the final installable APK to Google Play. Think of it as a master template from which Google's servers create optimized, device-specific packages on the fly.
Unlike an APK, which is a ready-to-install package, an AAB file cannot be directly installed on a device. It is a build artifact that gets uploaded to the Play Store, where Google's infrastructure processes it and generates tailored APKs for each device configuration.
The file extension is .aab, and internally it uses a protocol buffer format combined with a ZIP-like structure. It contains the app's DEX bytecode, resources, assets, native libraries, and a special bundle metadata file that tells Google Play how to split the content.
Why Google Mandated App Bundles
The primary motivation behind App Bundles is reducing app download sizes. A typical Android app needs to support multiple screen densities (mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi), multiple CPU architectures (armeabi-v7a, arm64-v8a, x86, x86_64), and multiple languages. In the traditional APK model, all of these resources are bundled into a single file, even though any given device only needs a fraction of them.
Consider a game that includes native libraries for four CPU architectures and textures for five screen densities. The universal APK might be 200 MB, but a device-specific version containing only the relevant architecture and density could be 80 MB. That is a 60% reduction in download size.
Google reports that apps using App Bundles are on average 15% smaller than their universal APK equivalents. For large apps and games, the savings can be much more dramatic. Smaller downloads mean faster installs, less bandwidth consumption, and fewer abandoned installations due to size concerns.
How App Bundles Work Internally
The Bundle Structure
An AAB file is organized into modules, with each module containing its own code, resources, and assets. The most common structure includes:
- Base module: Contains the core app code and resources that every device needs. This is always installed.
- Configuration splits: Separate sections for language resources, screen density resources, and ABI (CPU architecture) native libraries.
- Dynamic feature modules: Optional modules that can be downloaded on demand after the initial installation.
- Asset packs: Large assets like game levels or media that can be delivered at install time, on demand, or in the background.
Split APK Generation
When a user downloads an app from the Play Store, Google's servers examine the device's configuration and generate a set of split APKs tailored to that specific device. A typical installation might include:
base.apk, The core application code and essential resourcessplit_config.arm64_v8a.apk, Native libraries for the device's CPUsplit_config.xxhdpi.apk, Resources for the device's screen densitysplit_config.en.apk, Language resources for the user's locale
These split APKs are installed together as a single logical app. The Android package manager treats them as one application, but they are physically separate files on the device. This is the mechanism that enables the size savings.
Dynamic Delivery
One of the most powerful features of App Bundles is dynamic delivery. Developers can mark certain features as downloadable on demand. For example, a photo editing app might include advanced filters as a dynamic feature module. Users who never use those filters never download them, saving storage space.
Dynamic feature modules are downloaded and installed through the Play Core library at runtime. The app can check whether a module is installed and request its download when needed, so the user experiences the new functionality as a small in-app download rather than a full reinstall.
AAB vs APK: Key Differences
Understanding the differences between these formats helps clarify when each is appropriate:
- Installability: APK files can be directly installed on any Android device. AAB files cannot be installed directly and must be processed first.
- Size: A universal APK contains resources for all configurations. An AAB enables device-specific delivery, resulting in smaller downloads.
- Signing: With APKs, the developer signs the final installable package. With AABs, the developer signs the bundle, and Google re-signs the generated APKs using Play App Signing.
- Distribution: APKs can be distributed through any channel. AABs are primarily designed for the Play Store, though tools like bundletool can generate APKs from them locally.
- Shareability: You can easily share an APK file with another person. Sharing an app installed from an AAB requires collecting all the split APKs, which is more complex.
The Signing Controversy
One of the most debated aspects of the AAB mandate is Play App Signing. When a developer uploads an AAB, Google holds the signing key used to sign the final APKs delivered to users. This means Google technically has the ability to modify the APK content before signing and delivering it.
Google argues this is necessary because they need to sign the split APKs they generate. Developers retain an upload key to authenticate their uploads, but the actual app signing key is managed by Google's infrastructure.
For most developers, this is a reasonable trade-off. Google provides key backup and recovery services, and the risk of key loss (which would permanently prevent app updates) is eliminated. However, privacy-focused developers and open-source advocates have raised concerns about this centralization of trust.
What This Means for Users Who Share Apps
The shift to App Bundles has significant implications for users who want to share apps outside of the Play Store:
Extracting Installed Apps
When you extract an app installed from an AAB, you do not get a single APK file. Instead, you get a collection of split APKs. These splits are device-specific, meaning an app extracted from a phone with an ARM64 processor and xxhdpi screen will not work on a device with a different configuration.
XAPK and APKS Formats
To address the challenge of sharing split APKs, container formats like XAPK and APKS were created. These formats bundle all the split APKs together into a single downloadable file. When you encounter an XAPK file, it likely contains an app that was originally distributed as an App Bundle.
Our XAPK to APK converter can help you extract the base APK from these container formats. However, keep in mind that the base APK alone may not contain all the resources needed for the app to function correctly on every device, since density and ABI-specific resources might be in the split APKs.
Using bundletool
Google provides an open-source tool called bundletool that can generate APKs from an AAB file locally. Developers can use this to create universal APKs for testing or alternative distribution. The command looks like:
bundletool build-apks --bundle=app.aab --output=app.apks --mode=universal
This generates a universal APK that contains all resources for all configurations. It will be larger than a device-specific build but works on any device. This is the approach used by our AAB to APK converter.
Impact on Alternative App Stores
The AAB mandate primarily affects the Google Play Store. Alternative app stores and direct distribution channels can still accept APK files. Developers who want to distribute outside of Play can continue building universal APKs alongside their AAB uploads.
However, some developers only build AABs and rely entirely on Play for distribution. This means that apps from these developers are harder to obtain outside of the Play Store ecosystem. Third-party app repositories have adapted by either hosting the split APK collections (as XAPK or APKS files) or by using bundletool to generate universal APKs.
Dynamic Feature Modules in Practice
Dynamic feature modules represent one of the most interesting capabilities of the App Bundle format. Here are some real-world use cases:
- Camera features: An app might include AR filters as a dynamic module, downloaded only when the user first accesses the camera feature.
- Language packs: Translation data for less common languages can be delivered on demand rather than bundled with every installation.
- Game levels: Games can deliver additional content as players progress, keeping the initial download small.
- Professional tools: Advanced features in productivity apps can be delivered only to users who need them.
For users, this means that an app's installed size might grow over time as dynamic modules are downloaded. It also means that sharing such an app requires including all downloaded modules, further complicating the extraction process.
Best Practices for Developers
If you are developing Android apps, here are recommendations for working with App Bundles effectively:
- Always test with bundletool locally before uploading to Play. Generate device-specific APKs and verify they work correctly.
- Use the Play Console's internal testing track to verify that split APKs install and function correctly on real devices.
- Consider providing a universal APK for alternative distribution channels if your user base extends beyond the Play Store.
- Be mindful of dynamic feature module boundaries. Features that are frequently used should be in the base module, not dynamic modules.
- Test on devices with different configurations to ensure that configuration splits are generated correctly and no resources are missing.
- Keep your upload key secure. While Google manages the app signing key, your upload key authenticates your identity as the developer.
The Future of App Distribution
The App Bundle format continues to evolve. Google has introduced features like Play Asset Delivery for large game assets, SDK Runtime for advertising SDKs, and improved support for Wear OS and Android TV configurations. The trend is toward more granular, on-demand delivery of app components.
For users, this means that the concept of a single, self-contained app file is becoming less common for Play Store apps. Understanding formats like XAPK, APKS, and the tools available to work with them becomes increasingly important for anyone who manages apps outside of the standard Play Store flow.
Conclusion
The Android App Bundle represents a fundamental shift in how apps are packaged and delivered. While it brings genuine benefits in terms of download size and delivery efficiency, it also introduces complexity for users who share apps or install them from alternative sources. Understanding how AABs work, how they generate split APKs, and what tools are available to convert between formats gives you what you need to pick the right format and convert between them with confidence.
Developers reach for AAB to optimize how an app is delivered; most everyday users only meet it when they try to install something on a device with no Play Store access. Either way, the thing worth remembering is simple: AAB is a publishing format, not an installation format, and there are tools that bridge the gap between the two.