AAB — co to je, rozdíl oproti APK a princip fungování

Autor: IT Sectr Publikováno: 2026-04-15 Doba čtení: 8 min

AAB (Android App Bundle) — je formát publikace aplikací pro Android, který od roku 2021 nahradil APK v Google Play. Na rozdíl od APK není AAB instalační soubor — je to kontejner, ze kterého Google Play dynamicky generuje optimalizované APK pro každé zařízení. Podle údajů Android Developers, 2026 formát snižuje velikost stahované aplikace v průměru o 15% vyloučením nepoužívaných zdrojů.

Hlavní body

  • AAB — formát publikace aplikací pro Android, ze kterého Google Play generuje APK pro každé zařízení.
  • Dynamic Delivery — mechanismus doručování pouze těch modulů a zdrojů, které konkrétní zařízení potřebuje.
  • Povinnost — od srpna 2021 Google Play vyžaduje AAB pro všechny nové aplikace.
  • Úspora — velikost stahování se snižuje o 15–30% vyloučením zbytečných zdrojů.
  • Aktiva — AAB podporuje až 2 GB bez OBB souborů prostřednictvím modulů Play Asset Delivery.

Co je AAB

AAB (Android App Bundle) — je formát publikace vyvinutý společností Google jako náhrada APK pro distribuci prostřednictvím Google Play. Uvnitř AAB je ZIP archiv s příponou .aab obsahující zkompilovaný kód, zdroje a metadata. Klíčový rozdíl: AAB se neinstaluje přímo na zařízení.

Princip fungování

Vývojář nahraje AAB do Google Play Console. Když se uživatel pokusí nainstalovat aplikaci, Google Play analyzuje konfiguraci zařízení: hustotu obrazovky (DPI), architekturu CPU, jazyk a verzi Androidu. Na základě této analýzy je vygenerováno minimální APK obsahující pouze nezbytné komponenty.

Historie zavedení

Google představil AAB v roce 2018 na konferenci I/O. Od srpna 2021 se formát stal povinným pro všechny nové aplikace v Google Play. Stávající aplikace mohou nadále používat APK, ale nové musí být publikovány pouze ve formátu AAB.

Čím se AAB liší od APK

Rozdíl mezi AAB a APK je zásadní: APK je hotový instalační soubor připravený k instalaci. AAB je kontejner se zdrojovými komponentami, který vyžaduje zpracování.

ParametrAPKAAB
TypInstalační souborPublikační kontejner
InstalacePřímo na zařízeníPřes Google Play
VelikostPlný archivZdrojové komponenty
ModulyVše v jednom souboruSamostatné moduly
PodpisVývojářGoogle Play
DistribuceLibovolný kanálGoogle Play

APK je vhodný pro distribuci mimo Google Play — prostřednictvím webových stránek, e-mailu nebo podnikových MDM systémů. AAB je vázán na infrastrukturu Google Play a neinstaluje se přímo. Pro testování AAB se používá nástroj bundletool, který emuluje generování APK na lokálním počítači.

Struktura souboru AAB

Vnitřní struktura AAB je podobná APK, ale obsahuje další adresáře a soubory pro popis modulů a jejich závislostí.

Soubor/adresářÚčel
base/Základní modul: kód, zdroje, manifest
BundleConfig.pbKonfigurace balíčku ve formátu protobuf
Bundle-metadata/Metadata o verzích modulů
feature/Dynamické moduly (on-demand)
assets/Aktiva aplikace
manifest/Manifesty každého modulu

Základní modul (base)

Modul base — je povinná součást AAB. Obsahuje hlavní kód, zdroje a manifest aplikace. Bez modulu base nelze aplikaci sestavit. Všechny ostatní moduly jsou volitelné a připojují se prostřednictvím Dynamic Delivery.

Formát protobuf

Konfigurace AAB používá Protocol Buffers (protobuf) místo XML. Soubory .pb jsou kompaktnější a rychleji se parsují serverovou infrastrukturou Google. Nástroj bundletool převádí protobuf do čitelného formátu pro ladění.

Dynamic Delivery a moduly aplikace

Dynamic Delivery — klíčová technologie, na které je AAB postaven. Umožňuje doručit uživateli pouze ty části aplikace, které odpovídají jeho zařízení a jazyku, a také načítat další moduly na vyžádání.

Typy modulů

Install-time moduly se načítají spolu se základním APK při instalaci. Conditional moduly se doručují pouze při splnění podmínek — například modul s materiály pro 4K obrazovky. On-demand moduly se načítají na vyžádání uživatele v rámci aplikace.

Play Asset Delivery (PAD)

Pro velké zdroje (až 2 GB) se používá Play Asset Delivery místo OBB souborů. PAD podporuje stejné tři režimy doručení: install-time, fast-follow (ihned po instalaci) a on-demand.

kotlin
// Načtení on-demand modulu přes SplitInstallManager
val manager = SplitInstallManagerFactory
    .create(context)

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

manager.startInstall(request)
    .addOnSuccessListener {
        Log.d("AAB", "Modul nainstalován")
    }

Konfigurace modulu v Gradle

Každý dynamický modul je popsán samostatným build.gradle souborem s uvedením typu doručení. Modul může mít vlastní zdroje, kód a manifest, nezávislé na základní aplikaci.

Sestavení AAB přes Gradle

Sestavení AAB se provádí pomocí Android Gradle Plugin s úkolem bundleRelease (nebo bundleDebug). Výsledkem je soubor .aab v adresáři build/outputs/bundle/.

Konfigurace sestavení

Pro sestavení AAB nejsou potřeba žádná speciální nastavení — Android Gradle Plugin podporuje balíčky ve výchozím nastavení. Stačí zadat úkol bundle místo assemble.

kotlin
// build.gradle.kts — sestavení AAB s podpisem
android {
    bundle {
        language {
            enableSplit = true
        }
        density {
            enableSplit = true
        }
        abi {
            enableSplit = true
        }
    }
}
// Úkol: ./gradlew bundleRelease

Lokální testování přes bundletool

Google poskytuje nástroj bundletool pro generování APK z AAB na lokálním počítači. Příkaz `bundletool build-apks --bundle=app.aab --output=app.apks` vytvoří sadu APK pro testování na různých konfiguracích zařízení.

bundletool také umí rozbalit AAB, zobrazit jeho konfiguraci a zkontrolovat integritu podpisu před nahráním do Google Play Console. Pro ladění se používá příkaz `bundletool dump manifest --bundle=app.aab`, který zobrazuje manifest základního modulu.

Konfigurace rozdělení v AAB

Ve výchozím nastavení AAB rozděluje zdroje podle tří dimenzí: jazyk (language), hustota obrazovky (density) a architektura CPU (abi). Vývojář může v build.gradle zakázat libovolné rozdělení — například pokud aplikace podporuje pouze angličtinu. Zakázání rozdělení znamená, že zdroje pro všechny varianty půjdou do základního APK.

Resource optimisation — AAB automaticky převádí PNG na WebP bez ztráty kvality, komprimuje nepoužívané zdroje a odstraňuje duplicitní řetězce. Tyto optimalizace jsou aplikovány na straně Google Play při generování finálního APK. Výsledkem je, že uživatel obdrží APK o 15–25% menší než plný archiv.

Publikace AAB v Google Play

Proces publikace AAB v Google Play Console se liší od APK pouze formátem nahrávaného souboru. Konzole přijímá .aab, kontroluje jeho strukturu, podpis a konfiguraci modulů, poté generuje APK pro každý typ zařízení.

App Signing by Google Play

Při nahrávání AAB přebírá Google Play správu podpisových klíčů. Vývojář nahraje balíček podepsaný klíčem upload a Google přepodepíše vygenerovaná APK svým klíčem. To zjednodušuje rotaci klíčů a obnovení přístupu v případě ztráty keystore.

Testování před vydáním

Google Play Console poskytuje vestavěný test AAB: lze stáhnout vygenerované APK pro konkrétní zařízení nebo spustit interní testování přes tracky Internal Testing, Closed Alpha a Open Beta.

Typické problémy s AAB a jejich řešení

Přechod na AAB může způsobit problémy, zejména v projektech s velkým počtem dynamických modulů nebo složitou konfigurací zdrojů.

Chyby konfigurace modulů

Pokud dynamický modul odkazuje na zdroje základního modulu s nesprávným názvem, Google Play odmítne AAB ve fázi ověřování. Řešení — použít lint kontrolu před sestavením a testovat všechny moduly lokálně přes bundletool.

Jazyková rozdělení a pokles výkonu

Rozdělení podle jazyků může zpomalit spuštění aplikace, pokud se zdroje pro aktuální lokalizaci načítají dynamicky. Doporučení Google — nerozdělovat jazyky, pokud je jich méně než 10, nebo použít install-time pro nejpopulárnější.

Kompatibilita se SDK třetích stran

Některá SDK (analytika, reklamy, mapy) vyžadují přístup k úplnému manifestu a zdrojům. Kontrola kompatibility s AAB je povinným krokem před migrací. Většina velkých SDK (Firebase, Google Ads, Crashlytics) plně podporuje AAB od roku 2022. Pro kontrolu kompatibility se používá bundletool s příznakem --validate, který emuluje serverové generování APK.

Verzování AAB

AAB používá versionCode z manifestu základního modulu. Na rozdíl od APK AAB také podporuje samostatné versionCode pro každý modul — to umožňuje aktualizovat jednotlivé části aplikace bez úplné přeinstalace. Dynamic Delivery sleduje nainstalované moduly a při aktualizaci prostřednictvím Google Play doručuje pouze změněné komponenty.

Sledování a analytika AAB

Google Play Console poskytuje podrobnou analytiku pro každý AAB: kolik APK bylo vygenerováno, která rozdělení byla vyžádána, jaká je průměrná velikost stahování podle zařízení. Android Vitals zobrazuje metriky výkonu vygenerovaných APK. Tato data pomáhají optimalizovat konfiguraci rozdělení a snižovat velikost stahování pro různé kategorie zařízení.

Často kladené otázky

Lze nainstalovat AAB přímo do telefonu?

Ne, AAB není určen k přímé instalaci. Google Play jej převede na APK pro konkrétní zařízení. Pro testování v telefonu se používá bundletool, který generuje APK z AAB lokálně.

Jak AAB snižuje velikost aplikace?

Google Play generuje APK pouze se zdroji odpovídajícími zařízení uživatele: jedna hustota obrazovky, jedna architektura CPU, jeden jazyk. Zdroje pro jiné konfigurace nejsou zahrnuty, což šetří 15–30% provozu při stahování.

Je AAB povinný pro stávající aplikace?

Ne, stávající aplikace mohou nadále publikovat APK. Požadavek na AAB platí pouze pro nové aplikace. Google doporučuje, ale nevyžaduje aktualizaci stávajících projektů na AAB.

Jak migrovat z APK na AAB?

Změňte úkol sestavení z assembleRelease na bundleRelease, zkontrolujte kompatibilitu všech SDK, nakonfigurujte App Signing v Google Play Console a nahrajte první AAB přes stávající track.

Podporuje AAB nativní knihovny?

Ano, AAB zahrnuje nativní knihovny v modulech. Google Play doručuje pouze .so soubory pro architekturu CPU zařízení. To je důležité zejména pro hry na Unity a Unreal Engine s velkými nativními kompilacemi.

Shrnutí

  • AAB — kontejner pro publikaci Android aplikací, ze kterého Google Play generuje cílená APK.
  • Dynamic Delivery doručuje pouze zdroje odpovídající zařízení uživatele — úspora provozu 15–30%.
  • Modularita — aplikace se dělí na base, conditional a on-demand moduly s různou strategií načítání.
  • Povinnost — od roku 2021 jsou všechny nové aplikace v Google Play publikovány ve formátu AAB.
  • App Signing — Google Play spravuje podpisové klíče, zjednodušuje rotaci a obnovu.
  • Testování se provádí přes bundletool, který emuluje serverové generování APK lokálně.
  • Play Asset Delivery nahrazuje OBB soubory, podporuje až 2 GB aktiv s flexibilními režimy načítání.

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také