During Google IO ’18, a new publishing format called the android app bundle (aab) was introduced to the app developers. It supports downloading parts of your application when needed, which builds the universal APK for an Android app without any code refactoring. Thus, the aab helps in reducing the size of an application for different screen densities, CPU architectures, and languages.
Feature upgradation in Specification Version 2
Apple added a small update in Core ML’s second version by providing support for 16-bit floating-point weights. It helps in making the mlmodel files about 2X smaller. Other significant features that were added include: weight quantization for smaller mlmodel files (without any change in the inference speed), flexible input sizes, API added batch predictions and better support for dealing with sequential data.
Advantages of Android App Bundle
Smaller sized APK as compared to the traditional approach, whereby less space is required for app installation.
Single build artifact instead of multiple APK’s for different device configurations which is easy to manage at the Play store.
Dynamic feature Modules means loads of on-demand features can be integrated into an application.
What is Dynamic Delivery?
Now, let us understand how Dynamic Delivery works for different device configurations. Dynamic Delivery is Google Play’s new app serving model that uses the app bundle to serve the APK for different device configurations with smaller downloads. With Dynamic Delivery, there is no need to build multiple APK’s to support different devices.
What is the Android App Bundle Format?
Android App Bundle needs to be uploaded in .aab file format on Google Play to support Dynamic Delivery. These are signed binaries that organize app code and resources into modules in a way similar to how we find in the APK. Once the .aab file is uploaded, Google play uses the App Bundle to generate the various APKs that are served to users, such as Base APK, Configuration APK, Dynamic Feature APK, and Multi APK (for the devices which do not support Spilt APKs). But what are the contents of these APKs? Let’s see:
Base APK: Contains the common codes and resources.
Configuration APKs:Includes native libraries and resources for specific CPU architecture, language, etc.
Dynamic Feature APKs:Contains an on-demand feature, which loads only when it is requested by the user.
See the below diagram which represents a detailed breakdown of the App Bundle.
How are Android App Bundles deployed?
One of the major differences between aab and the traditional APKs is that it can’t be deployed on one device. It contains meta-data or configuration files that are organized as modules. So, once you upload a signed app bundle, Google Play will build and sign your app’s APKs, and serve them to users through Dynamic Delivery. You can explore your app bundle using the Bundle Explorer tab on the Play Store web portal. See below snapshot for your reference: