

Our specs determines how many APK files there will be in the our target APKS file. When we call the bundletool CLI, we are given the option to declare what kind of devices we want to support. Here is an example APKS file, extracted as ZIP:Īs you can see, it consists of small APK files of different device specifications. i.e there will be a split just for the French localization, another for x86 CPUs, another for xhdpi screens etc. You will find a split APK for every kind of variance an app can have. They include partial APK files called “splits”.

You can think of them as collections of multiple APK files.ĪPKS are ZIP files too. It consumes a single AAB file to create an APKS (not to confuse with APK) file. How to bundletoolīundletool is a command line java program. Since Google Play store is not the only distribution platform for Android, we are free to use bundletool ourselves to create the final APKs. Behind the scenes, Play servers run a tool called bundetool and create tens, if not hundreds of APK files, tailored specifically for any device out there. When it comes time to release a new version of our app on Google Play store, we upload this AAB file to Google servers. It also includes additional meta data to figure out how to create smaller APKs by cherry picking relevant files from its content.

gradlew app:assembleDebug, the command above will create an app bundle.Īn AAB file has all the data a traditional APK build has. To tackle this issue, we instruct android compiler to create an AAB (app bundle) file instead of an APK. A smart watch app will only need low resolution images. Binaries of architectures such as x86, x86_64 should not be included. For instance, a phone with an ARM CPU should download an APK that only ships ARM binaries. Ideally, we want a user to download an APK with only relevant files. App bundles are invented to solve this problem. This whole portability approach creates bloated APKs, sometimes consists of more than ~75% percent of unused data. Moreover, app resources such as images and videos must be shipped multiple times to support various screen sizes. To be able for an APK to support all Android devices, it has to ship necessary binaries for all kinds of CPU architectures. APK files are ZIPs of compiled java code, XML layouts, native library binaries and other resources. In the traditional workflow, an Android app is compiled into an APK file. For those who haven’t got the chance to play with app bundles yet, we are going to take a closer look. Google recently announced that “From August 2021, new apps will be required to publish with the Android App Bundle (AAB) on Google Play”. aab files to Android users?Ī: TestFairy allows. Android App Bundles, how to generate APK from AAB
