Android users must be familiar with APKs. APK is the abbreviation of Android Package, that is, the Android installation package. Based on the ZIP compressed package format, by packaging the Android SDK compilation project into an installer file supported by the Android system, almost all Android applications are released in this format.
But starting next month, the APK format will be deprecated by Google.
Recently, Google announced that starting from August 2021, Google Play will require developers to publish new applications in the Android App Bundle (hereinafter referred to as AAB) format, which will replace APK as the standard publishing format.
1. Why change from APK to AAB?
For a long time, the preferred application package for Android is the APK, and an APK often contains a large number of resources such as application code, pictures, audio, and application signing keys generated by the developer.
Not only that, due to the different specifications of Android devices, developers also need to build and upload in Google Play according to the different screen density of the device (320dpi, 480dpi, etc.), processor (ARM, ARM64, x86), and different regions of the user. Multiple APKs in order to install the most suitable APK on the user’s device when the user clicks “install”.
But in this case, application developers have to bear too much: not only to develop applications, but also to manage many APKs to support a large number of devices. Therefore, in order to save time and effort, most developers usually choose to build a universal APK, which includes all resources including language packs, codes, etc. No matter where the user is and what device they use, they only need to download this universal APK.
Having said that, you may have found the problem: the universal APK containing all resources is too big. Users clearly only need the resources that are compatible with their own devices, but download the entire APK, which not only prolongs the installation time, but also takes up more bandwidth.
In order to solve this problem, Google launched the AAB format at the Google I/O Conference in 2018, hoping to reduce the burden on developers, while also helping to reduce application size, installation time and bandwidth consumption, and improve user experience.
Simply put, the AAB format is not actually a brand new application installation package. You can think of it as a container that contains a basic APK and multiple APKs for specific configurations.
Google plays the role of “screening” in this: once a developer chooses to publish an application in the AAB format, Google will generate an optimized APK based on the user’s device configuration and provide it to the user. For users, such an APK is small in size and quick to install, and it saves trouble for developers: there is no need to manage a large number of APKs for various devices.
Therefore, in general, Google’s decision to release new applications in the AAB format next month is mainly for developers, and the impact on users is not too great, because the final packaging format for installing Android applications on devices is still APK.
2. Advantages of AAB
Compared with APK, AAB naturally has its unique advantages.
The first is the reduction in application size mentioned above. According to Google’s official introduction, the volume of the optimized APK generated by AAB will be 15% smaller than the average APK, and this data will fluctuate greatly according to the size of the application. For example, Airbnb reduced the application size by 22% after switching from APK to AAB format, while Netflix reduced it by 57%.
Secondly, AAB’s Play Feature Delivery function can customize which function modules are delivered to which device, and supports three modes: delivery during installation, delivery on condition and delivery on demand. This is to separate the functions of the application, so as to greatly shorten the time for users to download the application. Users of useless functions may not download them or wait to download them when they are needed in the future.
There is also a Play Asset Delivery function, which can dynamically deliver large resources to reduce user waiting time and reduce delivery costs. That is, games using Play Asset Delivery can use texture compression format as a delivery condition, so that users can only obtain resources suitable for their equipment, and avoid wasting space or bandwidth.
3. Concerns about AAB
Although it appears from the results that distributing new applications in the AAB format is beneficial to both developers and users, some people are still a little worried about this.
Some people worry that it would be too complicated to change from APK to AAB format. But Google said: “For most apps, it takes only a small amount of work to build AAB files to replace APK files.” It pointed out that App Bundle is an open source format supported by mainstream build tools. With the help of Java SDK and Play Core Kotlin SDK, no matter which coding environment users prefer, they can easily start using the optional advanced App Bundle features. In addition, AAB’s requirements only apply to new applications. Existing applications and private applications for specific Google Play users do not currently need to comply with this requirement.
Some people expressed concern about sharing a private signature key with Google (the signature key is important information to verify the integrity of the APK, and Google generates an optimized APK from ABB, so the signature key will also be included in ABB). In this regard, Google said, All “signing keys will be stored on the same infrastructure that Google uses to store their own keys”, so the developer’s private signing keys will be tightly secured.
There are also concerns that because AAB cannot be downloaded outside of Google Play, it will have a great impact on third-party app stores such as Amazon App Store. However, it is understood that Google has developed an open source tool called bundletool that allows developers to create APKs from AAB packages, so developers who want to publish Android applications in third-party stores can manually export the APK version of their applications.
So what do you think of Google’s decision?