Search code examples
androidgroovyapkabiaabb

How to split my apps based on ABI varians to .aab file?


i want to split my application to more than 1 based on different ABI (x86_64, x86, armeabi-v7a, arm64-v8a). Right now im successed to get different apk based on that ABI there is 4 apk with different ABI. but i need .aab file. When i try build to .aab file its just show 1 file .aab. Is there a way to build .aab file with differentt ABI? i have use this code :

splits {
        abi {
            enable true
            reset()
            include "x86_64", "x86", "armeabi-v7a", "arm64-v8a"
            universalApk false
        }
    }

Solution

  • they are there, all ABIs in one AAB file. thats how AAB format works, please read the DOC and THIS SO topic

    In short: ABB isn't an "installable" file format - it contains multiple smaller APKs: per ABI, per density, per language. Dedicated software (like bundle tool) takes AAB file and some input data with device params and generates one joined installable APK with picked only one ABI (e.g. arm64-v8a), one density folder with graphics (e.g. drawable-xxdpi folder only) and language set on device (when user change it - app needs new partial-APK with Strings). APK file generated for one device probably won't run on another, as it may have different ABI or screen size

    if you are publishing in Google Play Store - you are good to go, store will automatically prepare and install proper APK for users device. If not: ensure your app store supports App Bundle. if you are distributing by yourself then you have to use linked above bundle tool for generating installable APK (some common commands in HERE)