AAB — wat is het, verschil met APK en werkingsprincipe

Auteur: IT Sectr Gepubliceerd: 2026-04-15 Leestijd: 8 min

AAB (Android App Bundle) — is een publicatieformaat voor Android-applicaties dat APK in Google Play heeft vervangen sinds 2021. In tegenstelling tot APK is AAB geen installatiebestand — het is een container waaruit Google Play dynamisch geoptimaliseerde APK's voor elk apparaat genereert. Volgens gegevens van Android Developers, 2026 verkleint het formaat de gemiddelde downloadgrootte van de applicatie met 15% door ongebruikte bronnen uit te sluiten.

Belangrijkste punten

  • AAB — publicatieformaat voor Android-applicaties waaruit Google Play APK's voor elk apparaat genereert.
  • Dynamic Delivery — mechanisme voor het leveren van alleen die modules en bronnen die een specifiek apparaat nodig heeft.
  • Verplichting — sinds augustus 2021 vereist Google Play AAB voor alle nieuwe applicaties.
  • Besparing — de downloadgrootte wordt met 15–30% verminderd door overbodige bronnen uit te sluiten.
  • Activa — AAB ondersteunt tot 2 GB zonder OBB-bestanden via Play Asset Delivery-modules.

Wat is AAB

AAB (Android App Bundle) — is een publicatieformaat ontwikkeld door Google als vervanging voor APK voor distributie via Google Play. Binnenin AAB bevindt zich een ZIP-archief met de extensie .aab, met gecompileerde code, bronnen en metadata. Het belangrijkste verschil: AAB wordt niet rechtstreeks op het apparaat geïnstalleerd.

Werkingsprincipe

De ontwikkelaar uploadt AAB naar Google Play Console. Wanneer een gebruiker de app probeert te installeren, analyseert Google Play de apparaatconfiguratie: schermdichtheid (DPI), CPU-architectuur, taal en Android-versie. Op basis van deze analyse wordt een minimale APK gegenereerd die alleen de noodzakelijke componenten bevat.

Implementatiegeschiedenis

Google introduceerde AAB in 2018 op de I/O-conferentie. Sinds augustus 2021 is het formaat verplicht voor alle nieuwe applicaties in Google Play. Bestaande applicaties kunnen APK blijven gebruiken, maar nieuwe moeten alleen in AAB-formaat worden gepubliceerd.

Hoe verschilt AAB van APK

Het verschil tussen AAB en APK is fundamenteel: APK is een volledig installatiebestand, klaar voor installatie. AAB is een container met broncomponenten die verwerking vereist.

ParameterAPKAAB
TypeInstallatiebestandPublicatiecontainer
InstallatieRechtstreeks op apparaatVia Google Play
GrootteVolledig archiefBroncomponenten
ModulesAlles in één bestandAparte modules
HandtekeningOntwikkelaarGoogle Play
DistributieElk kanaalGoogle Play

APK is geschikt voor distributie buiten Google Play — via websites, e-mail of bedrijfs-MDM-systemen. AAB is gebonden aan de Google Play-infrastructuur en wordt niet rechtstreeks geïnstalleerd. Voor het testen van AAB wordt het hulpmiddel bundletool gebruikt, dat het genereren van APK's op de lokale machine emuleert.

Structuur van een AAB-bestand

De interne structuur van AAB lijkt op APK, maar bevat extra mappen en bestanden voor het beschrijven van modules en hun afhankelijkheden.

Bestand/mapDoel
base/Basismodule: code, bronnen, manifest
BundleConfig.pbConfiguratie van de bundle in protobuf-formaat
Bundle-metadata/Metadata over moduleversies
feature/Dynamische modules (on-demand)
assets/Applicatie-activa
manifest/Manifesten van elke module

Basismodule (base)

De base-module — is een verplicht onderdeel van AAB. Het bevat de hoofdcode, bronnen en het manifest van de applicatie. Zonder de base-module kan de applicatie niet worden gebouwd. Alle andere modules zijn optioneel en worden via Dynamic Delivery aangesloten.

Protobuf-formaat

AAB-configuratie gebruikt Protocol Buffers (protobuf) in plaats van XML. .pb-bestanden zijn compacter en worden sneller geparseerd door de serverinfrastructuur van Google. Het hulpmiddel bundletool converteert protobuf naar een leesbaar formaat voor foutopsporing.

Dynamic Delivery en applicatiemodules

Dynamic Delivery — de belangrijkste technologie waarop AAB is gebouwd. Hiermee kunnen alleen die delen van de applicatie aan de gebruiker worden geleverd die overeenkomen met zijn apparaat en taal, en kunnen extra modules op verzoek worden geladen.

Soorten modules

Install-time modules worden samen met de basis-APK geladen tijdens de installatie. Conditional modules worden alleen geleverd als aan de voorwaarden wordt voldaan — bijvoorbeeld een module met materialen voor 4K-schermen. On-demand modules worden op verzoek van de gebruiker in de applicatie geladen.

Play Asset Delivery (PAD)

Voor grote bronnen (tot 2 GB) wordt Play Asset Delivery gebruikt in plaats van OBB-bestanden. PAD ondersteunt dezelfde drie leveringsmodi: install-time, fast-follow (direct na installatie) en on-demand.

kotlin
// Laden van on-demand module via SplitInstallManager
val manager = SplitInstallManagerFactory
    .create(context)

val request = SplitInstallRequest
    .newBuilder()
    .addModule("level_pack_3")
    .build()

manager.startInstall(request)
    .addOnSuccessListener {
        Log.d("AAB", "Module geïnstalleerd")
    }

Moduleconfiguratie in Gradle

Elke dynamische module wordt beschreven door een apart build.gradle-bestand met specificatie van het leveringstype. De module kan eigen bronnen, code en manifest bevatten, onafhankelijk van de basisapplicatie.

AAB bouwen via Gradle

Het bouwen van AAB gebeurt via Android Gradle Plugin met de taak bundleRelease (of bundleDebug). Het resultaat — een .aab-bestand in de map build/outputs/bundle/.

Bouwconfiguratie

Voor het bouwen van AAB zijn geen speciale instellingen nodig — Android Gradle Plugin ondersteunt bundles standaard. Het volstaat om de taak bundle te gebruiken in plaats van assemble.

kotlin
// build.gradle.kts — bouwen van AAB met handtekening
android {
    bundle {
        language {
            enableSplit = true
        }
        density {
            enableSplit = true
        }
        abi {
            enableSplit = true
        }
    }
}
// Taak: ./gradlew bundleRelease

Lokaal testen via bundletool

Google biedt het hulpmiddel bundletool voor het genereren van APK's uit AAB op de lokale machine. De opdracht `bundletool build-apks --bundle=app.aab --output=app.apks` maakt een set APK's voor testen op verschillende apparaatconfiguraties.

bundletool kan ook AAB uitpakken, de configuratie ervan weergeven en de integriteit van de handtekening controleren vóór upload naar Google Play Console. Voor foutopsporing wordt de opdracht `bundletool dump manifest --bundle=app.aab` gebruikt, die het manifest van de basismodule toont.

Splitsingsconfiguratie in AAB

Standaard splitst AAB bronnen op drie dimensies: taal (language), schermdichtheid (density) en CPU-architectuur (abi). De ontwikkelaar kan elke splitsing uitschakelen in build.gradle — bijvoorbeeld als de applicatie alleen Engels ondersteunt. Het uitschakelen van een splitsing betekent dat bronnen voor alle varianten in de basis-APK terechtkomen.

Resource optimisation — AAB converteert automatisch PNG naar WebP zonder kwaliteitsverlies, comprimeert ongebruikte bronnen en verwijdert dubbele tekenreeksen. Deze optimalisaties worden aan de kant van Google Play toegepast bij het genereren van de uiteindelijke APK. Als resultaat ontvangt de gebruiker een APK die 15–25% kleiner is dan het volledige archief.

AAB publiceren in Google Play

Het proces van het publiceren van AAB in Google Play Console verschilt alleen van APK in het formaat van het geüploade bestand. De console accepteert .aab, controleert de structuur, handtekening en moduleconfiguratie, waarna het APK's voor elk apparaattype genereert.

App Signing by Google Play

Bij het uploaden van AAB neemt Google Play het beheer van de handtekeningsleutels over. De ontwikkelaar uploadt het pakket ondertekend met de upload-sleutel, en Google ondertekent de gegenereerde APK's opnieuw met zijn eigen sleutel. Dit vereenvoudigt sleutelrotatie en herstel van toegang bij verlies van de keystore.

Testen vóór release

Google Play Console biedt een ingebouwde test voor AAB: men kan de gegenereerde APK voor een specifiek apparaat downloaden of intern testen uitvoeren via de tracks Internal Testing, Closed Alpha en Open Beta.

Veelvoorkomende problemen met AAB en hun oplossing

De overstap naar AAB kan problemen veroorzaken, vooral in projecten met veel dynamische modules of complexe bronconfiguratie.

Configuratiefouten van modules

Als een dynamische module verwijst naar bronnen van de basismodule met een verkeerde naam, wijst Google Play de AAB af in de verificatiefase. Oplossing — gebruik lint-controle vóór het bouwen en test alle modules lokaal via bundletool.

Taalsplitsingen en prestatievermindering

Splitsing op taal kan het opstarten van de applicatie vertragen als bronnen voor de huidige lokalisatie dynamisch worden geladen. Aanbeveling van Google — splits talen niet als er minder dan 10 zijn, of gebruik install-time voor de meest populaire.

Compatibiliteit met SDK's van derden

Sommige SDK's (analyse, advertenties, kaarten) vereisen toegang tot het volledige manifest en bronnen. Compatibiliteitscontrole met AAB is een verplichte stap vóór migratie. De meeste grote SDK's (Firebase, Google Ads, Crashlytics) ondersteunen AAB volledig sinds 2022. Voor compatibiliteitscontrole wordt bundletool gebruikt met de vlag --validate, die server-side APK-generatie emuleert.

Versiebeheer van AAB

AAB gebruikt versionCode uit het manifest van de basismodule. In tegenstelling tot APK ondersteunt AAB ook aparte versionCode voor elke module — dit maakt het mogelijk om afzonderlijke delen van de applicatie bij te werken zonder volledige herinstallatie. Dynamic Delivery houdt geïnstalleerde modules bij en levert alleen gewijzigde componenten bij updates via Google Play.

Monitoring en analyse van AAB

Google Play Console biedt gedetailleerde analyses voor elke AAB: hoeveel APK's zijn gegenereerd, welke splitsingen werden gebruikt, wat is de gemiddelde downloadgrootte per apparaat. Android Vitals toont prestaties van gegenereerde APK's. Deze gegevens helpen bij het optimaliseren van de splitsingsconfiguratie en het verkleinen van de downloadgrootte voor verschillende apparaatcategorieën.

Veelgestelde vragen

Kan AAB rechtstreeks op een telefoon worden geïnstalleerd?

Nee, AAB is niet bedoeld voor directe installatie. Google Play zet het om in APK voor het specifieke apparaat. Voor testen op de telefoon wordt bundletool gebruikt, dat lokaal APK uit AAB genereert.

Hoe verkleint AAB de applicatiegrootte?

Google Play genereert APK alleen met bronnen die overeenkomen met het apparaat van de gebruiker: één schermdichtheid, één CPU-architectuur, één taal. Bronnen voor andere configuraties worden niet opgenomen, wat 15–30% verkeer bespaart bij het downloaden.

Is AAB verplicht voor bestaande applicaties?

Nee, bestaande applicaties kunnen APK blijven publiceren. De AAB-vereiste geldt alleen voor nieuwe applicaties. Google raadt aan maar vereist niet dat bestaande projecten naar AAB worden bijgewerkt.

Hoe migreer ik van APK naar AAB?

Wijzig de bouwtaak van assembleRelease naar bundleRelease, controleer de compatibiliteit van alle SDK's, configureer App Signing in Google Play Console en upload de eerste AAB via de bestaande track.

Ondersteunt AAB native bibliotheken?

Ja, AAB bevat native bibliotheken in modules. Google Play levert alleen .so-bestanden voor de CPU-architectuur van het apparaat. Dit is vooral belangrijk voor games op Unity en Unreal Engine met grote native compilaties.

Samenvatting

  • AAB — container voor het publiceren van Android-applicaties waaruit Google Play doel-APK's genereert.
  • Dynamic Delivery levert alleen bronnen die overeenkomen met het apparaat van de gebruiker — verkeersbesparing 15–30%.
  • Modulariteit — de applicatie wordt verdeeld in base-, conditional- en on-demand-modules met verschillende laadstrategieën.
  • Verplichting — sinds 2021 worden alle nieuwe applicaties in Google Play in AAB-formaat gepubliceerd.
  • App Signing — Google Play beheert de handtekeningsleutels, vereenvoudigt rotatie en herstel.
  • Testen gebeurt via bundletool, dat server-side APK-generatie lokaal emuleert.
  • Play Asset Delivery vervangt OBB-bestanden en ondersteunt tot 2 GB aan activa met flexibele laadmodi.

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook