I’m working on a React Native Android app and noticed a large difference between the generated APK and Android App Bundle sizes:
APK: approximately 25 MB
AAB: approximately 85 MB
The AAB is more than three times larger than the APK. I’m trying to understand what causes this difference and whether it indicates an issue with my build configuration.
Could this happen because the AAB includes native libraries for multiple CPU architectures, while the APK includes only one? Which files or Gradle settings should I inspect to confirm the cause?
Also, how can I check the actual download size users will receive from Google Play after uploading the AAB?
Yeah, users don't download the AAB; it's just what you upload. It includes every ABI, density, and language, and Google Play breaks it up; each phone only gets the parts for its own CPU, screen, and language.
For the real download size, upload to internal testing and check Play Console > Test and release > Latest releases and bundles.
Or run this:
bundletool build-apks --bundle=app-release.aab --output=app.apks
bundletool get-size total --apks=app.apks --dimensions=ABI
ps: RN builds all 4 ABIs by default: reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64` in `gradle.properties`. while your APK includes just 1
Emmanuel Obiechina Ikenna