AAB — bu nədir, APK-dan fərqi və iş prinsipi

Müəllif: IT Sectr Dərc olunub: 2026-04-15 Oxuma vaxtı: 8 dəq

AAB (Android App Bundle) — 2021-ci ildən Google Play-də APK-nı əvəz etmiş Android tətbiqlərinin dərc formatıdır. APK-dan fərqli olaraq, AAB quraşdırma faylı deyil — bu, Google Play-in hər bir cihaz üçün optimallaşdırılmış APK-lar dinamik şəkildə yaratdığı konteynerdir. Android Developers, 2026 məlumatlarına görə, format istifadə olunmayan resursları çıxarmaqla yüklənən tətbiqin ölçüsünü orta hesabla 15% azaldır.

Əsas məqamlar

  • AAB — Google Play-in hər bir cihaz üçün APK yaratdığı Android tətbiqlərinin dərc formatı.
  • Dynamic Delivery — yalnız müəyyən cihaza lazım olan modul və resursların çatdırılması mexanizmi.
  • Məcburilik — 2021-ci ilin avqustundan Google Play bütün yeni tətbiqlər üçün AAB tələb edir.
  • Qənaət — lazımsız resursların çıxarılması hesabına yükləmə ölçüsü 15–30% azalır.
  • Aktivlər — AAB Play Asset Delivery modulları vasitəsilə OBB faylları olmadan 2 GB-a qədər dəstəkləyir.

AAB nədir

AAB (Android App Bundle) — Google tərəfindən Google Play vasitəsilə yayım üçün APK-nın əvəzi kimi hazırlanmış dərc formatıdır. AAB-nin daxilində .aab genişlənməsi olan ZIP arxivi — yığılmış kod, resurslar və metadata var. Əsas fərq: AAB birbaşa cihazda quraşdırılmır.

İş prinsipi

Developer AAB-ni Google Play Console-a yükləyir. İstifadəçi tətbiqi quraşdırmağa çalışdıqda Google Play cihazın konfiqurasiyasını təhlil edir: ekran sıxlığı (DPI), CPU arxitekturası, dil və Android versiyası. Bu təhlil əsasında yalnız zəruri komponentləri ehtiva edən minimal APK yaradılır.

Tətbiq tarixi

Google AAB-ni 2018-ci ildə I/O konfransında təqdim etdi. 2021-ci ilin avqustundan format Google Play-də bütün yeni tətbiqlər üçün məcburi oldu. Mövcud tətbiqlər APK-dan istifadə etməyə davam edə bilər, lakin yeniləri yalnız AAB formatında dərc edilməlidir.

AAB APK-dan nə ilə fərqlənir

Fərq AAB və APK arasında əsaslıdır: APK — quraşdırmaya hazır olan tam quraşdırma faylıdır. AAB — emal tələb edən mənbə komponentləri olan konteynerdir.

ParametrAPKAAB
NövQuraşdırma faylıNəşr konteyneri
QuraşdırmaBirbaşa cihazdaGoogle Play vasitəsilə
ÖlçüTam arxivMənbə komponentləri
ModullarHamısı bir fayldaAyrı modullar
İmzaDeveloperGoogle Play
Yayımİstənilən kanalGoogle Play

APK Google Play-dən kənarda yayım üçün uyğundur — veb-saytlar, e-poçt və ya korporativ MDM sistemləri vasitəsilə. AAB Google Play infrastrukturuna bağlıdır və birbaşa quraşdırılmır. AAB-ni sınamaq üçün lokal maşında APK yaradılmasını emulyasiya edən bundletool alətindən istifadə olunur.

AAB faylının strukturu

Daxili quruluşu APK-ya bənzəyir, lakin modulları və onların asılılıqlarını təsvir etmək üçün əlavə qovluq və fayllar ehtiva edir.

Fayl/qovluqTəyinat
base/Baza modulu: kod, resurslar, manifest
BundleConfig.pbProtobuf formatında paket konfiqurasiyası
Bundle-metadata/Modul versiyaları haqqında metadata
feature/Dinamik modullar (on-demand)
assets/Tətbiq aktivləri
manifest/Hər modulun manifesti

Baza modulu (base)

Base modulu — AAB-nin məcburi komponentidir. O, tətbiqin əsas kodunu, resurslarını və manifestini ehtiva edir. Base modulu olmadan tətbiq yığıla bilməz. Bütün digər modullar isteğe bağlıdır və Dynamic Delivery vasitəsilə qoşulur.

Protobuf formatı

AAB konfiqurasiyası XML əvəzinə Protocol Buffers (protobuf) istifadə edir. .pb faylları daha yığcamdır və Google server infrastrukturu tərəfindən daha sürətli parsellenir. Bundletool aləti protobuf-u sazlama üçün oxunaqlı formata çevirir.

Dynamic Delivery və tətbiq modulları

Dynamic Delivery — AAB-nin qurulduğu əsas texnologiyadır. O, istifadəçiyə yalnız onun cihazına və dilinə uyğun olan tətbiq hissələrini çatdırmağa, həmçinin əlavə modulları tələb əsasında yükləməyə imkan verir.

Modul növləri

Install-time modulları quraşdırma zamanı baza APK ilə birlikdə yüklənir. Conditional modulları yalnız şərtlər yerinə yetirildikdə çatdırılır — məsələn, 4K ekranlar üçün material modulu. On-demand modulları istifadəçinin tələbi ilə tətbiq daxilində yüklənir.

Play Asset Delivery (PAD)

Böyük resurslar üçün (2 GB-a qədər) OBB faylları əvəzinə Play Asset Delivery istifadə olunur. PAD eyni üç çatdırılma rejimini dəstəkləyir: install-time, fast-follow (quraşdırmadan dərhal sonra) və on-demand.

kotlin
// SplitInstallManager vasitəsilə on-demand modulun yüklənməsi
val manager = SplitInstallManagerFactory
    .create(context)

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

manager.startInstall(request)
    .addOnSuccessListener {
        Log.d("AAB", "Modul quraşdırıldı")
    }

Gradle-də modul konfiqurasiyası

Hər bir dinamik modul çatdırılma növü göstərilməklə ayrıca build.gradle faylı ilə təsvir edilir. Modul baza tətbiqindən asılı olmayan öz resurslarına, koduna və manifestinə malik ola bilər.

Gradle vasitəsilə AAB-nin qurulması

Qurulma AAB Android Gradle Plugin vasitəsilə bundleRelease (və ya bundleDebug) tapşırığı ilə həyata keçirilir. Nəticə — build/outputs/bundle/ qovluğunda .aab faylı.

Qurulma konfiqurasiyası

AAB-nin qurulması üçün xüsusi ayarlar tələb olunmur — Android Gradle Plugin paketləri standart olaraq dəstəkləyir. assemble əvəzinə bundle tapşırığını göstərmək kifayətdir.

kotlin
// build.gradle.kts — imza ilə AAB qurulması
android {
    bundle {
        language {
            enableSplit = true
        }
        density {
            enableSplit = true
        }
        abi {
            enableSplit = true
        }
    }
}
// Tapşırıq: ./gradlew bundleRelease

Bundletool vasitəsilə lokal sınaq

Google lokal maşında AAB-dən APK yaratmaq üçün bundletool alətini təqdim edir. `bundletool build-apks --bundle=app.aab --output=app.apks` əmri müxtəlif cihaz konfiqurasiyalarında sınaq üçün APK dəsti yaradır.

bundletool həmçinin AAB-ni açmaq, onun konfiqurasiyasını göstərmək və Google Play Console-a yükləmədən əvvəl imzanın bütövlüyünü yoxlamaq qabiliyyətinə malikdir. Sazlama üçün baza modulunun manifestini göstərən `bundletool dump manifest --bundle=app.aab` əmrindən istifadə olunur.

AAB-də bölmələrin konfiqurasiyası

Standart olaraq AAB resursları üç ölçü üzrə bölür: dil (language), ekran sıxlığı (density) və CPU arxitekturası (abi). Developer build.gradle faylında istənilən bölməni söndürə bilər — məsələn, tətbiq yalnız ingilis dilini dəstəkləyirsə. Bölmənin söndürülməsi bütün variantlar üçün resursların baza APK-ya daxil olacağı anlamına gəlir.

Resource optimisation — AAB avtomatik olaraq PNG-ni keyfiyyət itkisi olmadan WebP-yə çevirir, istifadə olunmayan resursları sıxışdırır və təkrarlanan sətirləri silir. Bu optimallaşdırmalar yekun APK yaradılarkən Google Play tərəfindən tətbiq edilir. Nəticədə istifadəçi tam arxivdən 15–25% kiçik APK alır.

AAB-nin Google Play-də dərci

Dərc prosesi Google Play Console-da AAB-nin APK-dan yalnız yüklənən faylın formatı ilə fərqlənir. Konsol .aab qəbul edir, onun strukturunu, imzasını və modul konfiqurasiyasını yoxlayır, sonra hər bir cihaz növü üçün APK yaradır.

App Signing by Google Play

AAB yüklənərkən Google Play imza açarlarının idarəsini öz üzərinə götürür. Developer paketi upload açarı ilə imzalayıb yükləyir, Google isə yaradılan APK-ları öz açarı ilə yenidən imzalayır. Bu, açarların rotasiyasını və keystore itirildikdə girişin bərpasını asanlaşdırır.

Buraxılışdan əvvəl sınaq

Google Play Console daxili sınaq imkanı təqdim edir: müəyyən cihaz üçün yaradılan APK-nı yükləmək və ya Internal Testing, Closed Alpha və Open Beta trekləri vasitəsilə daxili sınaq keçirmək mümkündür.

AAB ilə tipik problemlər və onların həlli

Keçid AAB-ya, xüsusilə çox sayda dinamik modulu və ya mürəkkəb resurs konfiqurasiyası olan layihələrdə problemlər yarada bilər.

Modul konfiqurasiya xətaları

Əgər dinamik modul baza modulunun resurslarına səhv adla istinad edərsə, Google Play AAB-ni yoxlama mərhələsində rədd edir. Həll yolu — qurulmadan əvvəl lint yoxlamasından istifadə etmək və bütün modulları bundletool vasitəsilə lokal olaraq sınamaqdır.

Dil bölmələri və performansın azalması

Dillər üzrə bölmə, cari lokalizasiya üçün resurslar dinamik yüklənərsə, tətbiqin işə düşməsini yavaşlada bilər. Google tövsiyəsi — dillərin sayı 10-dan azdırsa bölməmək və ya ən populyar dillər üçün install-time istifadə etmək.

Üçüncü tərəf SDK-ları ilə uyğunluq

Bəzi SDK-lar (analitika, reklam, xəritələr) tam manifestə və resurslara giriş tələb edir. Uyğunluğun yoxlanılması — miqrasiyadan əvvəl məcburi addımdır. Ən böyük SDK-ların əksəriyyəti (Firebase, Google Ads, Crashlytics) 2022-ci ildən AAB-ni tam dəstəkləyir. Uyğunluğu yoxlamaq üçün server APK yaradılmasını emulyasiya edən --validate flag-ı ilə bundletool istifadə olunur.

AAB versiyalaşdırılması

AAB baza modulunun manifestindən versionCode istifadə edir. APK-dan fərqli olaraq, AAB həmçinin hər modul üçün ayrıca versionCode dəstəkləyir — bu, tətbiqin ayrı-ayrı hissələrini tam yenidən quraşdırmadan yeniləməyə imkan verir. Dynamic Delivery quraşdırılmış modulları izləyir və Google Play vasitəsilə yeniləmə zamanı yalnız dəyişdirilmiş komponentləri çatdırır.

AAB monitorinqi və analitikası

Google Play Console hər bir AAB üçün ətraflı analitika təqdim edir: nə qədər APK yaradıldı, hansı bölmələr tələb olundu, cihazlar üzrə orta yükləmə ölçüsü nə qədərdir. Android Vitals yaradılan APK-ların performans metrikalarını göstərir. Bu məlumatlar bölmə konfiqurasiyasını optimallaşdırmağa və müxtəlif cihaz kateqoriyaları üçün yükləmə ölçüsünü azaltmağa kömək edir.

Tez-tez verilən suallar

AAB birbaşa telefona quraşdırıla bilərmi?

Xeyr, AAB birbaşa quraşdırma üçün nəzərdə tutulmayıb. Google Play onu müəyyən cihaz üçün APK-ya çevirir. Telefonda sınamaq üçün AAB-dən lokal olaraq APK yaradan bundletool istifadə olunur.

AAB tətbiqin ölçüsünü necə azaldır?

Google Play yalnız istifadəçinin cihazına uyğun resurslarla APK yaradır: bir ekran sıxlığı, bir CPU arxitekturası, bir dil. Digər konfiqurasiyalar üçün resurslar daxil edilmir, bu da yükləmə zamanı 15–30% trafikə qənaət edir.

AAB mövcud tətbiqlər üçün məcburidirmi?

Xeyr, mövcud tətbiqlər APK dərc etməyə davam edə bilər. AAB tələbi yalnız yeni tətbiqlərə aiddir. Google mövcud layihələri AAB-ya yeniləməyi tövsiyə edir, lakin tələb etmir.

APK-dan AAB-ya necə miqrasiya etmək olar?

Qurulma tapşırığını assembleRelease-dən bundleRelease-ə dəyişin, bütün SDK-ların uyğunluğunu yoxlayın, Google Play Console-da App Signing konfiqurasiya edin və ilk AAB-ni mövcud track vasitəsilə yükləyin.

AAB native kitabxanaları dəstəkləyirmi?

Bəli, AAB modullarda native kitabxanaları ehtiva edir. Google Play yalnız cihazın CPU arxitekturasına uyğun .so fayllarını çatdırır. Bu, xüsusilə böyük native yığmaları olan Unity və Unreal Engine oyunları üçün vacibdir.

Nəticə

  • AAB — Google Play-in hədəf APK-lar yaratdığı Android tətbiqlərinin dərc konteyneri.
  • Dynamic Delivery yalnız istifadəçinin cihazına uyğun resursları çatdırır — 15–30% trafik qənaəti.
  • Modulluq — tətbiq müxtəlif yükləmə strategiyası ilə base, conditional və on-demand modullarına bölünür.
  • Məcburilik — 2021-ci ildən Google Play-də bütün yeni tətbiqlər AAB formatında dərc olunur.
  • App Signing — Google Play imza açarlarını idarə edir, rotasiya və bərpanı asanlaşdırır.
  • Sınaq bundletool vasitəsilə aparılır, o, server APK yaradılmasını lokal olaraq emulyasiya edir.
  • Play Asset Delivery OBB fayllarını əvəz edir, çevik yükləmə rejimləri ilə 2 GB-a qədər aktiv dəstəkləyir.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun