An Android App Bundle (AAB) is a publishing format that includes all your application’s compiled code and resources, and defers APK generation and signing to Google Play Store.
Google Play Store uses your application bundle to generate and serve optimized APKs (Android Application Packages) for every device configuration, so only the code and resources that are needed for a specific device are downloaded to run your application. You have to no longer have to build, sign, and manage multiple APKs (Android Application Packages) to optimize support for different devices, and users get smaller, more optimized downloads than before.
Read Also – How to Run Windows 98 on Android Phone
Most applications projects would not require much effort to build application bundles that support serving optimized APKs (Android Application Packages).
As an example, if we already organize your application’s code and resources according to established conventions (Different for Different Devices), Now simply build signed Android App Bundles (AAB) using Android Studio or using the command line terminal, and upload them to Google Play Store. Optimized APK serving then becomes an automatic benefit (Means No need to optimize the Things For each device).
When We use the application bundle format to publish our application, We can also optionally take advantage of Play Feature Delivery, which allows us to add feature modules to our application projects.
These modules contain the features and resources that are only included with our application based on conditions that we specify or are available later at runtime for download Using the Play Core Library.
Game developers who publish their applications with application bundles can use Play Asset Delivery: Google Play’s solution for delivering large amounts of games assets that offer developers flexible delivery methods and high performance.
Now, Compressed Download Size Restriction
Publishing with Android Application Bundles helps the users to install their app with the smallest downloads possible and increases the compressed download size limit to 150 MB.
It happens when a user downloads the application, the total size of the compressed APKs (Android Application Packages) required to install your application (for example, the base APK + configuration APKs) must be no more than 150 MB.
Any subsequent downloads, such as downloading a feature module (and its configuration APKs – Android Application Packages) on-demand, must also meet these compressed download size restrictions. Asset packs do not contribute to this size limit of the application, but they do have other size restrictions.
When we upload our app bundle, if the Play Console finds any of the possible downloads of your application or its on-demand features to be more than 150 MB, you will get an error.
Also Keep in mind that Android App Bundles (AAB) do not support APK expansion (
*.obb) files. So, if we encounter this error when publishing our app bundle, use one of the following resources that reduce the compressed APK download sizes:
- Make sure We have enabled all the configuration APKs (Android Application Packages) by setting
enableSplit = truefor each type of configuration APK (Android Application Package). This will make sure that users download only the code and resources they need to run our application on their device.
- We have to Make sure that shrink our app by removing unused code and resources (Extra lines and non usefull packages imports).
- Follow best practices to further reduce app size.
- Consider converting features that are only used by some of our application users into feature modules that our application can download later, on demand. We have to Keep in mind that this may require some refactoring of our application, so make sure to first try the other suggestions described before in this article.
AAB vs APK
App Bundles are a publishing format, whereas APK (Android application PacKage) is the packaging format that eventually will be installed on the device.
App Bundles use the bundle tool to create a set of APK. (.apks) This can be extracted and the base and configuration split as well as potential dynamic feature modules can be deployed to a device.
|Android Application Bundle
|Android Application Package
|AAB is split into smaller APKs files. Each split APKs corresponds to a specific device config file.
|APK file is submitted as it is and later it will be downloaded in the same format as it is developed.
|AAB cannot themselves trigger the installation process. They defer APK generation to the Google Play Store.
|APK can be used to directly install an application on an Android device.
|AAB files ensure a smaller application size because each split APK contains device-specific resources accordingly.
|APK files ensure a larger application size because all resources are downloaded to the device irrespective of their needs and requirements.
|Dynamic feature resources are stored on Google Play Store services and called upon when required.
|All feature-based resources are stored within the APK file due to this, it is heavy and takes more space.
|All assets that have not needed to install in the applications (are stored on Google Play Store).
|All assets are stored in the main APK file (in App).
|A smaller application size causes lower application churn.
|A Larger app size causes greater application churn.
|AAB is more efficient in terms of space.
|Unnecessary resources used a lot of device storage and reduce the efficiency of the apps.