Optimizing Android App Bundle (AAB) for Smaller APK Size

Optimizing Android App Bundle (AAB) for Smaller APK Size Since Google Play made AAB the mandatory format for new apps, simply converting an APK to AAB doesn't automatically shrink the size — we see this on almost every second project. Without proper configuration of splits, texture compression, a

Development and support of all types of mobile applications:

Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1All 1734 services
Optimizing Android App Bundle (AAB) for Smaller APK Size
Medium
from 1 day to 3 days

Our competencies:

Frequently Asked Questions

Latest works

  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    894
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    597

Optimizing Android App Bundle (AAB) for Smaller APK Size

Since Google Play made AAB the mandatory format for new apps, simply converting an APK to AAB doesn't automatically shrink the size — we see this on almost every second project. Without proper configuration of splits, texture compression, and R8, you'll get only marginal savings. Our team, with 5+ years in Android development and 20+ release projects, helps configure AAB so that the downloadable APK size shrinks by 15–35%. Below are the concrete steps that deliver measurable results.

How Does Android App Bundle Reduce APK Size?

An APK is a monolithic archive for all devices. An AAB is a container with modules from which Google Play generates a personalized APK for each device. For example, a Samsung Galaxy S23 will receive only arm64-v8a libraries and xxhdpi resources, without x86, armeabi-v7a, or xhdpi/hdpi variants. The result: the downloadable APK shrinks by an average of 15–35% — this is official data from Google, confirmed on real apps. Android Developers documentation confirms: "On average, the size of Android App Bundles is about 15% smaller than APKs." We guarantee the same effect on your project.

What to Configure in build.gradle for Optimal AAB?

Configuring splits is the foundation of AAB. Here is the minimal setup:

android { bundle { language { enableSplit = true } density { enableSplit = true } abi { enableSplit = true } texture { enableSplit = true defaultFormat = "ETC2" } } } 

texture splits are critical for games and apps with 3D graphics. Without them, all texture formats are packed together, potentially adding 50–100 MB. ETC2 is a universal format (GLES 3.0+), ASTC offers best compression on modern devices (Adreno 530+, Mali-G51+). The choice depends on your minimum API level.

Additional settings for texture compression

If your app uses ASTC, set defaultFormat = "ASTC" in the texture block. For older devices that don't support ASTC, Google Play will automatically pick the ETC2 variant — but only if enableSplit is enabled. Check compatibility using baseConfig.fgl.

APK vs AAB: Which Is More Effective?

Parameter APK AAB
Download size Single for all devices Optimized per device
Texture splits Not supported Supported (ETC2, ASTC, DXT)
Dynamic modules Require separate setup Built-in (Play Feature Delivery)
Versioning Simple Requires bundletool for analysis

AAB is unequivocally more efficient: it reduces size by 15–35% — better than any APK splitter.

Table: Texture Formats for AAB

Format Requirements Compression
ETC2 OpenGL ES 3.0+ 4:1
ASTC Adreno 530+, Mali-G51+ 10:1
DXT Nvidia Tegra, old GPUs 6:1

How to Verify AAB Size Before Upload?

Use bundletool. Build the APK set with:

bundletool build-apks --bundle=app.aab --output=app.apks \ --ks=keystore.jks --ks-pass=pass:password \ --ks-key-alias=key --key-pass=pass:password bundletool get-size total --apks=app.apks --device-spec=pixel7_spec.json 

device-spec.json is obtained via bundletool get-device-spec --adb=<path>. This gives the exact download size for a target device before uploading to Play Store.

Why R8 and ProGuard Are Mandatory for AAB?

buildTypes { release { minifyEnabled = true shrinkResources = true proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") } } 

shrinkResources = true works only when minifyEnabled = true. It removes unused resources — strings, images, layouts — based on static code analysis. On real projects we see 5–20 MB of additional reduction. R8 in full mode more aggressively removes code and inlines methods, reducing size by another 5–15% compared to the old ProGuard.

Analyze Size via Android Studio

Go to Build → Analyze APK (works with AAB after unpacking). It shows a pie chart: classes.dex, res/, lib/, assets/. You immediately see what takes up the most space. Typical findings:

  • assets/ with uncompressed JSON data files — compress or switch to binary format (Protobuf / FlatBuffers)
  • lib/ with native libraries for all ABIs including x86 and x86_64 — keep only arm64-v8a and armeabi-v7a for production builds
  • res/drawable-* with PNG where VectorDrawable would suffice

What Our Work Includes

Setting up AAB is not a single flag; it's a set of actions. Here are the steps we follow:

  1. Audit current configuration: check splits, texture compression, R8/ProGuard, bundletool.
  2. Configure build.gradle: proper slots and texture formats.
  3. Optimize resources: compress assets, remove unused resources, convert PNG to VectorDrawable.
  4. Verify size: calculate via bundletool for 3–5 target devices.
  5. Documentation: report on changes and recommendations for future releases.
  6. Team training: how to maintain AAB optimization in subsequent releases.

Reducing app size by 15–35% directly lowers traffic costs for users and increases installation conversion rates. We guarantee a reduction in downloadable APK size of 15–35%. Get a consultation on AAB configuration for your project — we'll assess your current build and pinpoint exactly how much you can save.

Timeline

AAB configuration with bundletool verification takes 1–2 days. If full size optimization is needed, including R8 tuning and texture splits, it's 3–5 days. Contact us to discuss your specific case.