AAB — mi ez, különbség az APK-tól és működési elv

Szerző: IT Sectr Megjelenés: 2026-04-15 Olvasási idő: 8 perc

AAB (Android App Bundle) — az Android-alkalmazások közzétételi formátuma, amely 2021-től felváltotta az APK-t a Google Play-ben. Az APK-tól eltérően az AAB nem telepítőfájl — ez egy konténer, amelyből a Google Play dinamikusan optimalizált APK-kat generál minden egyes eszközhöz. A Android Developers, 2026 adatai szerint a formátum átlagosan 15%-kal csökkenti a letöltött alkalmazás méretét a nem használt erőforrások kizárásával.

Főbb pontok

  • AAB — Android-alkalmazások közzétételi formátuma, amelyből a Google Play APK-t generál minden eszközhöz.
  • Dynamic Delivery — csak azoknak a moduloknak és erőforrásoknak a szállítási mechanizmusa, amelyekre egy adott eszköznek szüksége van.
  • Kötelezőség — 2021 augusztusától a Google Play AAB-t követel meg minden új alkalmazáshoz.
  • Megtakarítás — a letöltési méret 15–30%-kal csökken a felesleges erőforrások kizárásával.
  • Eszközök — az AAB akár 2 GB-ot is támogat OBB-fájlok nélkül a Play Asset Delivery modulokon keresztül.

Mi az AAB

AAB (Android App Bundle) — a Google által kifejlesztett közzétételi formátum az APK helyettesítésére a Google Play-en keresztüli terjesztéshez. Az AAB belsejében egy .aab kiterjesztésű ZIP-archívum található, amely lefordított kódot, erőforrásokat és metaadatokat tartalmaz. A legfontosabb különbség: az AAB nem telepíthető közvetlenül az eszközre.

Működési elv

A fejlesztő feltölti az AAB-t a Google Play Console-ba. Amikor a felhasználó megpróbálja telepíteni az alkalmazást, a Google Play elemzi az eszköz konfigurációját: képernyő sűrűség (DPI), CPU-architektúra, nyelv és Android-verzió. Az elemzés alapján egy minimális APK jön létre, amely csak a szükséges összetevőket tartalmazza.

Bevezetés története

A Google 2018-ban mutatta be az AAB-t az I/O konferencián. 2021 augusztusától a formátum kötelezővé vált minden új alkalmazás számára a Google Play-ben. A meglévő alkalmazások továbbra is használhatják az APK-t, de az újakat csak AAB formátumban lehet közzétenni.

Miben különbözik az AAB az APK-tól

A különbség az AAB és az APK között alapvető: az APK egy teljes telepítőfájl, készen a telepítésre. Az AAB egy konténer forráskomponensekkel, amely feldolgozást igényel.

ParaméterAPKAAB
TípusTelepítőfájlKözzétételi konténer
TelepítésKözvetlenül az eszközreGoogle Play-en keresztül
MéretTeljes archívumForráskomponensek
ModulokMind egy fájlbanKülön modulok
AláírásFejlesztőGoogle Play
TerjesztésBármely csatornaGoogle Play

APK alkalmas a Google Play-en kívüli terjesztésre — weboldalakon, e-mailben vagy vállalati MDM-rendszereken keresztül. Az AAB a Google Play infrastruktúrájához kötött, és nem telepíthető közvetlenül. Az AAB teszteléséhez a bundletool eszközt használják, amely az APK-generálást emulálja a helyi gépen.

Az AAB-fájl szerkezete

Az AAB belső szerkezete hasonlít az APK-hoz, de további könyvtárakat és fájlokat tartalmaz a modulok és függőségeik leírásához.

Fájl/könyvtárRendeltetés
base/Alapmodul: kód, erőforrások, manifest
BundleConfig.pbA csomag konfigurációja protobuf formátumban
Bundle-metadata/Metaadatok a modulverziókról
feature/Dinamikus modulok (on-demand)
assets/Alkalmazás eszközei
manifest/Az egyes modulok manifestjei

Alapmodul (base)

A base modul — az AAB kötelező összetevője. Tartalmazza az alkalmazás fő kódját, erőforrásait és manifestjét. Base modul nélkül az alkalmazás nem építhető fel. Az összes többi modul opcionális, és a Dynamic Delivery-n keresztül csatlakozik.

Protobuf formátum

Az AAB konfigurációja XML helyett Protocol Buffers-t (protobuf) használ. A .pb fájlok kompaktabbak, és a Google szerverinfrastruktúrája gyorsabban elemzi őket. A bundletool eszköz a protobuf-ot olvasható formátumba konvertálja a hibakereséshez.

Dynamic Delivery és alkalmazásmodulok

Dynamic Delivery — a kulcstechnológia, amelyre az AAB épül. Lehetővé teszi, hogy a felhasználó csak azokat az alkalmazásrészeket kapja meg, amelyek megfelelnek az eszközének és nyelvének, valamint további modulok igény szerinti betöltését.

Modultípusok

Az Install-time modulok a telepítés során töltődnek be az alap APK-val együtt. A Conditional modulok csak feltételek teljesülése esetén kerülnek kézbesítésre — például egy 4K képernyőkhöz tartozó anyagokat tartalmazó modul. Az On-demand modulok a felhasználó kérésére töltődnek be az alkalmazáson belül.

Play Asset Delivery (PAD)

Nagy erőforrásokhoz (akár 2 GB) a Play Asset Delivery használatos az OBB-fájlok helyett. A PAD ugyanazt a három kézbesítési módot támogatja: install-time, fast-follow (közvetlenül a telepítés után) és on-demand.

kotlin
// On-demand modul betöltése SplitInstallManager segítségével
val manager = SplitInstallManagerFactory
    .create(context)

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

manager.startInstall(request)
    .addOnSuccessListener {
        Log.d("AAB", "Modul telepítve")
    }

Modul konfiguráció Gradle-ben

Minden dinamikus modult egy külön build.gradle fájl ír le a szállítási típus megadásával. A modul rendelkezhet saját erőforrásokkal, kóddal és manifesttel, függetlenül az alapalkalmazástól.

AAB építése Gradle-lel

Az AAB építése az Android Gradle Plugin-en keresztül történik a bundleRelease (vagy bundleDebug) feladattal. Az eredmény — egy .aab fájl a build/outputs/bundle/ könyvtárban.

Építési konfiguráció

Az AAB építéséhez nincs szükség speciális beállításokra — az Android Gradle Plugin alapértelmezés szerint támogatja a csomagokat. Elég a bundle feladatot megadni az assemble helyett.

kotlin
// build.gradle.kts — AAB építése aláírással
android {
    bundle {
        language {
            enableSplit = true
        }
        density {
            enableSplit = true
        }
        abi {
            enableSplit = true
        }
    }
}
// Feladat: ./gradlew bundleRelease

Helyi tesztelés bundletool segítségével

A Google biztosítja a bundletool eszközt az APK-k AAB-ból történő előállításához helyi gépen. A `bundletool build-apks --bundle=app.aab --output=app.apks` parancs APK-készletet hoz létre különböző eszközkonfigurációk teszteléséhez.

bundletool képes továbbá kicsomagolni az AAB-t, megjeleníteni a konfigurációját, és ellenőrizni az aláírás integritását a Google Play Console-ba történő feltöltés előtt. Hibakereséshez a `bundletool dump manifest --bundle=app.aab` parancs használatos, amely az alapmodul manifestjét jeleníti meg.

Felosztások konfigurációja az AAB-ban

Alapértelmezés szerint az AAB három dimenzió mentén osztja fel az erőforrásokat: nyelv (language), képernyő sűrűség (density) és CPU-architektúra (abi). A fejlesztő bármely felosztást letilthatja a build.gradle-ben — például ha az alkalmazás csak angol nyelvet támogat. A felosztás letiltása azt jelenti, hogy az összes variáns erőforrásai az alap APK-ba kerülnek.

Resource optimisation — az AAB automatikusan konvertálja a PNG-t WebP-vé minőségveszteség nélkül, tömöríti a nem használt erőforrásokat és eltávolítja a duplikált karakterláncokat. Ezeket az optimalizálásokat a Google Play oldalán alkalmazzák a végső APK generálásakor. Ennek eredményeként a felhasználó 15–25%-kal kisebb APK-t kap, mint a teljes archívum.

AAB közzététele a Google Play-ben

A közzététel folyamata a Google Play Console-ban csak a feltöltött fájl formátumában különbözik az APK-tól. A konzol elfogadja a .aab fájlt, ellenőrzi annak szerkezetét, aláírását és modulkonfigurációját, majd APK-t generál minden eszköztípushoz.

App Signing by Google Play

Az AAB feltöltésekor a Google Play átveszi az aláírási kulcsok kezelését. A fejlesztő feltölti a csomagot az upload kulccsal aláírva, a Google pedig újra aláírja a generált APK-kat a saját kulcsával. Ez leegyszerűsíti a kulcsok rotációját és a hozzáférés helyreállítását a keystore elvesztése esetén.

Tesztelés a kiadás előtt

A Google Play Console beépített tesztet biztosít az AAB-hoz: letölthető a generált APK egy adott eszközhöz, vagy belső tesztelés indítható az Internal Testing, Closed Alpha és Open Beta trackeken keresztül.

Tipikus problémák az AAB-val és megoldásuk

Az AAB-ra való áttérés problémákat okozhat, különösen a sok dinamikus modullal vagy összetett erőforrás-konfigurációval rendelkező projektekben.

Modulkonfigurációs hibák

Ha egy dinamikus modul hibás néven hivatkozik az alapmodul erőforrásaira, a Google Play elutasítja az AAB-t az ellenőrzési szakaszban. Megoldás — lint ellenőrzés használata az építés előtt, és az összes modul helyi tesztelése bundletool segítségével.

Nyelvi felosztások és teljesítménycsökkenés

A nyelvek szerinti felosztás lelassíthatja az alkalmazás indítását, ha az aktuális lokalizáció erőforrásai dinamikusan töltődnek be. Google ajánlása — ne ossza fel a nyelveket, ha kevesebb mint 10 van, vagy használjon install-time-ot a legnépszerűbbekhez.

Kompatibilitás harmadik féltől származó SDK-kkal

Egyes SDK-k (analitika, hirdetések, térképek) hozzáférést igényelnek a teljes manifesthez és erőforrásokhoz. A kompatibilitás ellenőrzése az AAB-val kötelező lépés a migráció előtt. A legtöbb nagy SDK (Firebase, Google Ads, Crashlytics) teljes mértékben támogatja az AAB-t 2022 óta. A kompatibilitás ellenőrzéséhez a bundletool --validate jelzővel használatos, amely a szerveroldali APK-generálást emulálja.

AAB verziókezelés

Az AAB az alapmodul manifestjéből származó versionCode-ot használja. Az APK-tól eltérően az AAB külön versionCode-ot is támogat minden modulhoz — ez lehetővé teszi az alkalmazás egyes részeinek frissítését teljes újratelepítés nélkül. A Dynamic Delivery nyomon követi a telepített modulokat, és frissítéskor csak a megváltozott összetevőket szállítja a Google Play-en keresztül.

AAB monitorozás és analitika

A Google Play Console részletes analitikát biztosít minden AAB-hoz: hány APK került generálásra, mely felosztások voltak igénybe véve, mekkora az átlagos letöltési méret eszközönként. Android Vitals mutatja a generált APK-k teljesítménymutatóit. Ezek az adatok segítenek optimalizálni a felosztások konfigurációját és csökkenteni a letöltési méretet a különböző eszközkategóriák számára.

Gyakran Ismételt Kérdések

Telepíthető az AAB közvetlenül a telefonra?

Nem, az AAB nem közvetlen telepítésre szolgál. A Google Play az adott eszközhöz APK-vá alakítja. Telefonos teszteléshez a bundletool használatos, amely helyileg generál APK-t az AAB-ból.

Hogyan csökkenti az AAB az alkalmazás méretét?

A Google Play csak a felhasználó eszközének megfelelő erőforrásokkal generál APK-t: egy képernyő sűrűség, egy CPU-architektúra, egy nyelv. A más konfigurációkhoz tartozó erőforrások nem kerülnek bele, ami 15–30% forgalommegtakarítást eredményez a letöltéskor.

Kötelező az AAB a meglévő alkalmazásokhoz?

Nem, a meglévő alkalmazások továbbra is közzétehetnek APK-t. Az AAB követelmény csak az új alkalmazásokra vonatkozik. A Google ajánlja, de nem követeli meg a meglévő projektek AAB-ra frissítését.

Hogyan migráljunk APK-ról AAB-ra?

Változtassa meg az építési feladatot assembleRelease-ről bundleRelease-re, ellenőrizze az összes SDK kompatibilitását, konfigurálja az App Signing-et a Google Play Console-ban, és töltse fel az első AAB-t a meglévő track-en keresztül.

Támogatja az AAB a natív könyvtárakat?

Igen, az AAB natív könyvtárakat tartalmaz a modulokban. A Google Play csak az eszköz CPU-architektúrájának megfelelő .so fájlokat szállítja. Ez különösen fontos a Unity és Unreal Engine játékoknál, nagy natív fordításokkal.

Összefoglalás

  • AAB — konténer Android-alkalmazások közzétételéhez, amelyből a Google Play célzott APK-kat generál.
  • Dynamic Delivery csak a felhasználó eszközének megfelelő erőforrásokat szállítja — 15–30% forgalommegtakarítás.
  • Modularitás — az alkalmazás base, conditional és on-demand modulokra oszlik, különböző betöltési stratégiával.
  • Kötelezőség — 2021 óta minden új alkalmazás a Google Play-ben AAB formátumban jelenik meg.
  • App Signing — a Google Play kezeli az aláírási kulcsokat, egyszerűsítve a rotációt és helyreállítást.
  • Tesztelés bundletool segítségével történik, amely a szerveroldali APK-generálást emulálja helyileg.
  • Play Asset Delivery helyettesíti az OBB-fájlokat, akár 2 GB eszközt támogatva rugalmas betöltési módokkal.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is