AAB — ce este, diferența față de APK și principiul de funcționare

Autor: IT Sectr Publicat: 2026-04-15 Timp de citire: 8 min

AAB (Android App Bundle) — este un format de publicare a aplicațiilor Android care a înlocuit APK în Google Play din 2021. Spre deosebire de APK, AAB nu este un fișier de instalare — este un container din care Google Play generează dinamic APK-uri optimizate pentru fiecare dispozitiv. Conform datelor Android Developers, 2026, formatul reduce dimensiunea aplicației descărcate în medie cu 15% prin excluderea resurselor neutilizate.

Principalele puncte

  • AAB — format de publicare a aplicațiilor Android din care Google Play generează APK pentru fiecare dispozitiv.
  • Dynamic Delivery — mecanism de livrare doar a modulelor și resurselor necesare unui anumit dispozitiv.
  • Obligativitate — din august 2021 Google Play solicită AAB pentru toate aplicațiile noi.
  • Economie — dimensiunea descărcării se reduce cu 15–30% prin excluderea resurselor inutile.
  • Active — AAB suportă până la 2 GB fără fișiere OBB prin modulele Play Asset Delivery.

Ce este AAB

AAB (Android App Bundle) — este un format de publicare dezvoltat de Google ca înlocuitor pentru APK pentru distribuția prin Google Play. În interiorul AAB se află o arhivă ZIP cu extensia .aab, conținând cod compilat, resurse și metadate. Diferența cheie: AAB nu se instalează direct pe dispozitiv.

Principiul de funcționare

Dezvoltatorul încarcă AAB în Google Play Console. Când utilizatorul încearcă să instaleze aplicația, Google Play analizează configurația dispozitivului: densitatea ecranului (DPI), arhitectura CPU, limba și versiunea Android. Pe baza acestei analize se generează un APK minim, conținând doar componentele necesare.

Istoricul implementării

Google a prezentat AAB în 2018 la conferința I/O. Din august 2021, formatul a devenit obligatoriu pentru toate aplicațiile noi din Google Play. Aplicațiile existente pot continua să utilizeze APK, dar cele noi trebuie publicate doar în format AAB.

Cu ce se deosebește AAB de APK

Diferența dintre AAB și APK este fundamentală: APK este un fișier de instalare complet, gata de instalare. AAB este un container cu componente sursă care necesită procesare.

ParametruAPKAAB
TipFișier de instalareContainer de publicare
InstalareDirect pe dispozitivPrin Google Play
DimensiuneArhivă completăComponente sursă
ModuleToate într-un fișierModule separate
SemnăturăDezvoltatorGoogle Play
DistribuțieOrice canalGoogle Play

APK este potrivit pentru distribuția în afara Google Play — prin site-uri web, e-mail sau sisteme MDM corporative. AAB este legat de infrastructura Google Play și nu se instalează direct. Pentru testarea AAB se utilizează instrumentul bundletool, care emulează generarea APK pe mașina locală.

Structura fișierului AAB

Structura internă a AAB este similară cu APK, dar conține directoare și fișiere suplimentare pentru descrierea modulelor și a dependențelor lor.

Fișier/directorDestinație
base/Modulul de bază: cod, resurse, manifest
BundleConfig.pbConfigurația pachetului în format protobuf
Bundle-metadata/Metadate despre versiunile modulelor
feature/Module dinamice (on-demand)
assets/Active ale aplicației
manifest/Manifestele fiecărui modul

Modulul de bază (base)

Modulul base — este o componentă obligatorie a AAB. Acesta conține codul principal, resursele și manifestul aplicației. Fără modulul base, aplicația nu poate fi construită. Toate celelalte module sunt opționale și se conectează prin Dynamic Delivery.

Formatul protobuf

Configurația AAB utilizează Protocol Buffers (protobuf) în loc de XML. Fișierele .pb sunt mai compacte și sunt parsate mai rapid de infrastructura server Google. Instrumentul bundletool convertește protobuf într-un format lizibil pentru depanare.

Dynamic Delivery și modulele aplicației

Dynamic Delivery — este tehnologia cheie pe care este construit AAB. Aceasta permite livrarea către utilizator doar a acelor părți ale aplicației care corespund dispozitivului și limbii sale, precum și încărcarea modulelor suplimentare la cerere.

Tipuri de module

Modulele Install-time se încarcă împreună cu APK-ul de bază la instalare. Modulele Conditional se livrează doar la îndeplinirea condițiilor — de exemplu, un modul cu materiale pentru ecrane 4K. Modulele On-demand se încarcă la cererea utilizatorului în cadrul aplicației.

Play Asset Delivery (PAD)

Pentru resurse mari (până la 2 GB) se utilizează Play Asset Delivery în locul fișierelor OBB. PAD suportă aceleași trei moduri de livrare: install-time, fast-follow (imediat după instalare) și on-demand.

kotlin
// Încărcarea modulului on-demand prin SplitInstallManager
val manager = SplitInstallManagerFactory
    .create(context)

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

manager.startInstall(request)
    .addOnSuccessListener {
        Log.d("AAB", "Modul instalat")
    }

Configurarea modulului în Gradle

Fiecare modul dinamic este descris printr-un fișier build.gradle separat cu specificarea tipului de livrare. Modulul poate conține propriile resurse, cod și manifest, independente de aplicația de bază.

Construirea AAB prin Gradle

Construirea AAB se realizează prin Android Gradle Plugin cu sarcina bundleRelease (sau bundleDebug). Rezultatul — un fișier .aab în directorul build/outputs/bundle/.

Configurarea construcției

Pentru construirea AAB nu sunt necesare setări speciale — Android Gradle Plugin suportă pachetele implicit. Este suficient să indicați sarcina bundle în loc de assemble.

kotlin
// build.gradle.kts — construirea AAB cu semnătură
android {
    bundle {
        language {
            enableSplit = true
        }
        density {
            enableSplit = true
        }
        abi {
            enableSplit = true
        }
    }
}
// Sarcina: ./gradlew bundleRelease

Testarea locală prin bundletool

Google oferă instrumentul bundletool pentru generarea APK-urilor din AAB pe mașina locală. Comanda `bundletool build-apks --bundle=app.aab --output=app.apks` creează un set de APK-uri pentru testare pe diferite configurații de dispozitive.

bundletool poate, de asemenea, să despacheteze AAB, să afișeze configurația acestuia și să verifice integritatea semnăturii înainte de încărcarea în Google Play Console. Pentru depanare se utilizează comanda `bundletool dump manifest --bundle=app.aab`, care afișează manifestul modulului de bază.

Configurarea divizărilor în AAB

Implicit, AAB împarte resursele după trei dimensiuni: limbă (language), densitatea ecranului (density) și arhitectura CPU (abi). Dezvoltatorul poate dezactiva orice divizare în build.gradle — de exemplu, dacă aplicația suportă doar limba engleză. Dezactivarea divizării înseamnă că resursele pentru toate variantele vor ajunge în APK-ul de bază.

Resource optimisation — AAB convertește automat PNG în WebP fără pierdere de calitate, comprimă resursele neutilizate și elimină șirurile duplicate. Aceste optimizări se aplică de partea Google Play la generarea APK-ului final. Ca rezultat, utilizatorul primește un APK cu 15–25% mai mic decât arhiva completă.

Publicarea AAB în Google Play

Procesul de publicare a AAB în Google Play Console diferă de APK doar prin formatul fișierului încărcat. Consola acceptă .aab, verifică structura, semnătura și configurația modulelor, după care generează APK pentru fiecare tip de dispozitiv.

App Signing by Google Play

La încărcarea AAB, Google Play preia gestionarea cheilor de semnătură. Dezvoltatorul încarcă pachetul semnat cu cheia upload, iar Google resemnează APK-urile generate cu propria cheie. Aceasta simplifică rotația cheilor și recuperarea accesului în cazul pierderii keystore-ului.

Testarea înainte de lansare

Google Play Console oferă un test încorporat AAB: se poate descărca APK-ul generat pentru un anumit dispozitiv sau se poate rula testarea internă prin track-urile Internal Testing, Closed Alpha și Open Beta.

Probleme tipice cu AAB și soluționarea lor

Trecerea la AAB poate cauza probleme, în special în proiecte cu un număr mare de module dinamice sau configurație complexă a resurselor.

Erori de configurare a modulelor

Dacă un modul dinamic face referire la resursele modulului de bază cu un nume incorect, Google Play respinge AAB în etapa de verificare. Soluția — utilizarea verificării lint înainte de construire și testarea tuturor modulelor prin bundletool local.

Divizări lingvistice și scăderea performanței

Divizarea pe limbi poate încetini pornirea aplicației dacă resursele pentru localizarea curentă sunt încărcate dinamic. Recomandarea Google — să nu divizați limbile dacă sunt mai puțin de 10 sau să utilizați install-time pentru cele mai populare.

Compatibilitatea cu SDK-urile terțe

Unele SDK-uri (analitică, reclame, hărți) necesită acces la manifestul complet și resurse. Verificarea compatibilității cu AAB este un pas obligatoriu înainte de migrare. Majoritatea SDK-urilor mari (Firebase, Google Ads, Crashlytics) suportă complet AAB din 2022. Pentru verificarea compatibilității se utilizează bundletool cu flagul --validate, care emulează generarea APK pe server.

Versionarea AAB

AAB utilizează versionCode din manifestul modulului de bază. Spre deosebire de APK, AAB suportă, de asemenea, versionCode separat pentru fiecare modul — aceasta permite actualizarea părților individuale ale aplicației fără reinstalare completă. Dynamic Delivery urmărește modulele instalate și livrează doar componentele modificate la actualizarea prin Google Play.

Monitorizarea și analitica AAB

Google Play Console oferă analitică detaliată pentru fiecare AAB: câte APK-uri au fost generate, care divizări au fost solicitate, care este dimensiunea medie de descărcare pe dispozitive. Android Vitals arată metricile de performanță ale APK-urilor generate. Aceste date ajută la optimizarea configurației divizărilor și la reducerea dimensiunii de descărcare pentru diferite categorii de dispozitive.

Întrebări frecvente

Se poate instala AAB direct pe telefon?

Nu, AAB nu este destinat instalării directe. Google Play îl transformă în APK pentru dispozitivul specific. Pentru testarea pe telefon se utilizează bundletool, care generează APK din AAB local.

Cum reduce AAB dimensiunea aplicației?

Google Play generează APK doar cu resursele corespunzătoare dispozitivului utilizatorului: o densitate a ecranului, o arhitectură CPU, o limbă. Resursele pentru alte configurații nu sunt incluse, economisind 15–30% din trafic la descărcare.

Este AAB obligatoriu pentru aplicațiile existente?

Nu, aplicațiile existente pot continua să publice APK. Cerința AAB se aplică doar aplicațiilor noi. Google recomandă, dar nu impune actualizarea proiectelor existente la AAB.

Cum se migrează de la APK la AAB?

Schimbați sarcina de construire de la assembleRelease la bundleRelease, verificați compatibilitatea tuturor SDK-urilor, configurați App Signing în Google Play Console și încărcați primul AAB prin track-ul existent.

Suportă AAB bibliotecile native?

Da, AAB include biblioteci native în module. Google Play livrează doar fișierele .so pentru arhitectura CPU a dispozitivului. Acest lucru este deosebit de important pentru jocurile pe Unity și Unreal Engine cu compilații native mari.

Concluzii

  • AAB — container pentru publicarea aplicațiilor Android din care Google Play generează APK-uri țintă.
  • Dynamic Delivery livrează doar resursele corespunzătoare dispozitivului utilizatorului — economie de trafic 15–30%.
  • Modularitate — aplicația este împărțită în module base, conditional și on-demand cu strategii diferite de încărcare.
  • Obligativitate — din 2021 toate aplicațiile noi din Google Play sunt publicate în format AAB.
  • App Signing — Google Play gestionează cheile de semnătură, simplificând rotația și recuperarea.
  • Testarea se realizează prin bundletool, care emulează generarea APK pe server local.
  • Play Asset Delivery înlocuiește fișierele OBB, suportând până la 2 GB de active cu moduri flexibile de încărcare.

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și