In 2018 Google introduced a new app publishing format for Android known as Android App Bundle (.aab). Basically, a developer submits to Google Play a bundle including all the app code and resources, and upon a user request Google Play generates an optimized APK fitting the device configuration. Some of the many advantages of using the application bundle are dynamic delivery, automatic generation and distribution of multiple APKs, smaller APK size, and dynamic feature modules.
Applications Bundle are signed binary objects that organize an app’s code and resources into modules. They are organized in a similar way to an APK. Each of its modules can be generated as an independent apk. These types of applications are also known as split APKs.
The Android platform can treat several installed split APKs as a single app. Therefore, you can install several split APKs that have access to common code and resources and appear as one and the same app installed on the device.
One of the best features of these split APKs is the ability to split a monolithic APK (includes code and resources for all functions and device configurations supported by the app), into smaller independent packages that are installed on a user’s device.
A split APK may include code and resources for an additional feature that only some of the users need, while another includes resources for only a specific language or a particular screen density. Each of these split APKs is downloaded and installed when the user requests it, or the device requires it.
The types of APKs we can find are the base apk, feature apk and configuration apk. All these separate modules are not downloaded at the same time or in the same way, and for this Google included a Google Play Core library called Play Feature Delivery that downloads feature modules on demand based on the user’s desired option. There are different types of download options for these modules:
- Install-time delivery. When the application is installed.
- On demand delivery. When required by a feature of the app.
- Conditional delivery. When certain requirements are met.
- Instant delivery. Allows user interaction with the app without the need to install the apk.
In conclusion, it is expected that by the second half of 2021 all applications published in the Google Play Store will comply with this format. This will produce an impact on the way that applications are currently analyzed.