Bosh sahifa Wiki AAB

AAB

AABAndroid applicationni store orqali publish qilish uchun ishlatiladigan bundle formati. To‘liq nomi Android App Bundle. AAB qurilmaga bevosita o‘rnatiladigan yakuniy package emas; distribution platformasi undan ma’lum qurilma uchun optimized APKlar yaratadi.

AAB developerga bitta artifact yuborib, architecture, til, screen density va optional feature bo‘yicha kichikroq download tarqatish imkonini beradi.

Bundle tuzilishi

AAB ZIPga o‘xshash container bo‘lib, modulelar va metadata saqlaydi.

Asosiy qismlar:

Tuzilishi oddiy APKdan farq qiladi.

Base module

Har applicationda base module mavjud.

U:

ni saqlaydi.

Boshqa feature modulelar base’ga bog‘lanishi mumkin.

Dynamic feature

Applicationning optional qismi alohida module sifatida yaratiladi.

U:

  • install-time;
  • on-demand;
  • conditional

tarqatilishi mumkin.

Masalan, kam ishlatiladigan 3D editor yoki alohida til contenti userga kerak bo‘lganda yuklanadi.

Configuration split

Store qurilma configurationiga mos split APKlar yaratadi:

  • ABI;
  • screen density;
  • language.

Arm64 qurilmaga x86 native library yuborilmaydi.

User tanlamagan tillar ham boshlang‘ich downloadga kirmasligi mumkin.

APK set

AAB processing natijasida base va split APKlar to‘plami yaratiladi.

Ular bitta device configuration uchun birgalikda o‘rnatiladi.

Store yoki bundletool qaysi splitlar kerakligini aniqlaydi.

Bitta faylni ajratib o‘rnatish applicationni to‘liq ishga tushirmasligi mumkin.

Bundletool

Bundletool AAB bilan ishlash uchun command-line vosita.

U:

uchun ishlatilishi mumkin.

Store build pipeline ham o‘xshash format qoidalaridan foydalanadi.

Device specification

Device spec:

haqida ma’lumot beradi.

Bundletool shu spec asosida mos APKlarni tanlaydi.

Testingda turli device configurationlar simulyatsiya qilinadi.

App signing

Store AABdan APK yaratgani sabab final APK signing jarayoni store infrastructure bilan bog‘liq.

App signing service production signing keyni boshqarishi mumkin.

Developer upload key bilan bundle yuboradi.

Upload key compromise bo‘lsa production keydan alohida almashtirish imkoniyati bo‘lishi mumkin.

Upload key

Developer AABni upload key bilan imzolaydi.

Store uploader identity’sini tekshiradi.

Bu key final user APK signing keyi bilan aynan bir xil bo‘lishi shart emas.

Keystore, parol va CI secret xavfsiz saqlanadi.

Version code

Bundle version code va version name saqlaydi.

Har release yuqoriroq version code bilan yuboriladi.

Splitlar bir release identity’siga mos bo‘ladi.

Dynamic feature compatibility base version bilan tekshiriladi.

Asset delivery

Katta game va media assetlari alohida asset pack orqali tarqatilishi mumkin.

Delivery:

  • install-time;
  • fast-follow;
  • on-demand

bo‘lishi mumkin.

Bu eski expansion file yondashuviga alternativa beradi.

Install-time feature

Application o‘rnatilganda base bilan birga tushadi.

Critical feature yoki initial navigation uchun ishlatiladi.

Juda ko‘p install-time module boshlang‘ich hajmni yana kattalashtiradi.

On-demand feature

User ma’lum funksiyani ochganda yuklanadi.

Application download progress, offline va failure holatini boshqaradi.

Feature hali yo‘q bo‘lsa unga tegishli class va resource bevosita ishlatilmaydi.

Conditional delivery

Module device feature, country yoki boshqa supported conditionga qarab tarqatilishi mumkin.

Masalan, AR capability mavjud device.

Condition noto‘g‘ri bo‘lsa kerakli user feature olmasligi mumkin.

Fallback va analytics muhim.

Testing

AABni oddiy file manager bilan o‘rnatib bo‘lmaydi.

Testing:

  • internal test track;
  • bundletool;
  • generated universal APK;
  • device-specific set

orqali bajariladi.

Faqat developer qurilmasi emas, turli ABI, til va density tekshiriladi.

AAB va APK

AAB — publish va generation inputi.

APK — o‘rnatiladigan package.

AAB optimization imkonini beradi.

Sideload va store’dan tashqari tarqatishda APK hanuz zarur bo‘lishi mumkin.

Hajm

Bundle barcha variantlarni saqlagani sabab AAB faylining o‘zi universal APKdan kichik bo‘lishi shart emas.

Foyda user download qiladigan device-specific APK hajmida.

Store download size, install size va update delta’ni alohida hisoblaydi.

Security

AAB ichidagi client code va resource tahlil qilinishi mumkin.

Bundle secret saqlash joyi emas.

Dynamic module ham application permissionlari va sandbox ichida ishlaydi.

Module download source va integrity store tomonidan boshqariladi.

Build tizimi

Gradle Android plugin modulelarni bundle formatga compile qiladi.

Manifest merge, resource processing, DEX, native library va signing pipeline birga ishlaydi.

Plugin va bundletool versionlari compatibilityga ta’sir qilishi mumkin.

Play Feature Deliveryga oid holat

Dynamic module yuklanganda code darhol mavjud bo‘lmasligi mumkin. Application install session statusini kuzatadi, user confirmation talab qilinishi va download bekor bo‘lishi ehtimolini boshqaradi. Module olib tashlangan yoki yangilangan base bilan incompatible bo‘lmasligi kerak.

Resource shrinking

Store split yaratishdan oldin build tizimi unused code va resource’ni olib tashlashi mumkin. Reflection yoki dynamic resource name sabab kerakli element tasodifan o‘chirilmasligi uchun keep qoidalari yoziladi.

Universal test APK

Testing uchun barcha configurationlarni bitta universal APKga birlashtirish mumkin. U store useriga beriladigan real download hajmini ifodalamaydi.

Bog‘liq tushunchalar

Android App Bundle, AAB, APK, Split APK, Dynamic feature module, Bundletool, App signing, Asset delivery, Android publishing, Configuration split