AAB — ano ito, pagkakaiba sa APK at prinsipyo ng paggana

May-akda: IT Sectr Nai-publish: 2026-04-15 Oras ng pagbabasa: 8 min

AAB (Android App Bundle) — ay isang format ng pag-publish ng mga Android application na pumalit sa APK sa Google Play mula noong 2021. Hindi tulad ng APK, ang AAB ay hindi isang file ng pag-install — ito ay isang lalagyan kung saan ang Google Play ay dynamic na bumubuo ng mga optimize na APK para sa bawat device. Ayon sa datos ng Android Developers, 2026, binabawasan ng format ang laki ng na-download na application sa average na 15% sa pamamagitan ng pagbubukod ng mga hindi ginagamit na mapagkukunan.

Mga pangunahing punto

  • AAB — format ng pag-publish ng mga Android application kung saan ang Google Play ay bumubuo ng APK para sa bawat device.
  • Dynamic Delivery — mekanismo ng paghahatid lamang ng mga modyul at mapagkukunan na kailangan ng isang partikular na device.
  • Pagiging sapilitan — mula noong Agosto 2021, ang Google Play ay nangangailangan ng AAB para sa lahat ng bagong application.
  • Pag-iimpok — ang laki ng pag-download ay nababawasan ng 15–30% sa pamamagitan ng pagbubukod ng mga hindi kinakailangang mapagkukunan.
  • Mga asset — sinusuportahan ng AAB ang hanggang 2 GB nang walang mga OBB file sa pamamagitan ng mga modyul ng Play Asset Delivery.

Ano ang AAB

AAB (Android App Bundle) — ay isang format ng pag-publish na binuo ng Google bilang kapalit ng APK para sa pamamahagi sa pamamagitan ng Google Play. Sa loob ng AAB ay isang ZIP archive na may extension na .aab, na naglalaman ng naka-compile na code, mga mapagkukunan at metadata. Ang pangunahing pagkakaiba: ang AAB ay hindi direktang naka-install sa device.

Prinsipyo ng paggana

Ina-upload ng developer ang AAB sa Google Play Console. Kapag sinubukan ng user na i-install ang application, sinusuri ng Google Play ang configuration ng device: density ng screen (DPI), arkitektura ng CPU, wika at bersyon ng Android. Batay sa pagsusuring ito, nabuo ang isang minimal na APK na naglalaman lamang ng mga kinakailangang bahagi.

Kasaysayan ng implementasyon

Ipinakilala ng Google ang AAB noong 2018 sa kumperensya ng I/O. Mula noong Agosto 2021, ang format ay naging sapilitan para sa lahat ng bagong application sa Google Play. Ang mga umiiral na application ay maaaring patuloy na gumamit ng APK, ngunit ang mga bago ay dapat na i-publish lamang sa format na AAB.

Paano naiiba ang AAB sa APK

Ang pagkakaiba sa pagitan ng AAB at APK ay pangunahing: APK ay isang kumpletong file ng pag-install, handa nang i-install. AAB ay isang lalagyan na may mga sangkap na pinagmulan na nangangailangan ng pagproseso.

ParameterAPKAAB
UriFile ng pag-installLalagyan ng pag-publish
Pag-installDirekta sa deviceSa pamamagitan ng Google Play
LakiBuong archiveMga sangkap na pinagmulan
ModyulLahat sa isang fileHiwalay na mga modyul
LagdaDeveloperGoogle Play
PamamahagiAnumang channelGoogle Play

APK ay angkop para sa pamamahagi sa labas ng Google Play — sa pamamagitan ng mga website, email o corporate MDM system. Ang AAB ay nakatali sa imprastraktura ng Google Play at hindi direktang naka-install. Para sa pagsubok ng AAB, ginagamit ang tool na bundletool, na ginagaya ang pagbuo ng APK sa lokal na makina.

Istraktura ng file ng AAB

Ang panloob na istraktura ng AAB ay katulad ng APK, ngunit naglalaman ng mga karagdagang direktoryo at file para sa paglalarawan ng mga modyul at kanilang mga dependency.

File/direktoryoLayunin
base/Base na modyul: code, mapagkukunan, manifest
BundleConfig.pbConfiguration ng bundle sa protobuf format
Bundle-metadata/Metadata tungkol sa mga bersyon ng modyul
feature/Mga dynamic na modyul (on-demand)
assets/Mga asset ng application
manifest/Mga manifest ng bawat modyul

Base na modyul (base)

Ang base na modyul — ay isang sapilitang bahagi ng AAB. Ito ay naglalaman ng pangunahing code, mga mapagkukunan at manifest ng application. Kung wala ang base na modyul, hindi mabubuo ang application. Lahat ng iba pang mga modyul ay opsyonal at konektado sa pamamagitan ng Dynamic Delivery.

Protobuf format

Ang configuration ng AAB ay gumagamit ng Protocol Buffers (protobuf) sa halip na XML. Ang mga .pb file ay mas compact at mas mabilis na nai-parse ng imprastraktura ng server ng Google. Ang tool na bundletool ay nagko-convert ng protobuf sa isang nababasang format para sa debugging.

Dynamic Delivery at mga modyul ng application

Dynamic Delivery — ang pangunahing teknolohiya kung saan itinayo ang AAB. Ito ay nagpapahintulot sa paghahatid sa user ng mga bahagi lamang ng application na tumutugma sa kanyang device at wika, pati na rin ang pag-load ng mga karagdagang modyul kapag hiniling.

Mga uri ng modyul

Ang mga modyul na Install-time ay na-load kasama ng base APK sa panahon ng pag-install. Ang mga modyul na Conditional ay inihahatid lamang kapag natugunan ang mga kundisyon — halimbawa, isang modyul na may mga materyales para sa 4K na screen. Ang mga modyul na On-demand ay na-load kapag hiniling ng user sa loob ng application.

Play Asset Delivery (PAD)

Para sa malalaking mapagkukunan (hanggang 2 GB) ginagamit ang Play Asset Delivery sa halip na mga OBB file. Sinusuportahan ng PAD ang parehong tatlong mode ng paghahatid: install-time, fast-follow (kaagad pagkatapos ng pag-install) at on-demand.

kotlin
// Pag-load ng on-demand na modyul sa pamamagitan ng SplitInstallManager
val manager = SplitInstallManagerFactory
    .create(context)

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

manager.startInstall(request)
    .addOnSuccessListener {
        Log.d("AAB", "Naka-install ang modyul")
    }

Configuration ng modyul sa Gradle

Ang bawat dynamic na modyul ay inilalarawan ng isang hiwalay na build.gradle file na may pagtukoy ng uri ng paghahatid. Ang modyul ay maaaring magkaroon ng sarili nitong mga mapagkukunan, code at manifest, na independiyente sa base na application.

Pagbuo ng AAB sa pamamagitan ng Gradle

Ang pagbuo ng AAB ay ginagawa sa pamamagitan ng Android Gradle Plugin gamit ang gawaing bundleRelease (o bundleDebug). Ang resulta — isang .aab file sa direktoryo ng build/outputs/bundle/.

Configuration ng pagbuo

Para sa pagbuo ng AAB, walang mga espesyal na setting ang kinakailangan — ang Android Gradle Plugin ay sumusuporta sa mga bundle bilang default. Sapat na tukuyin ang gawaing bundle sa halip na assemble.

kotlin
// build.gradle.kts — pagbuo ng AAB na may lagda
android {
    bundle {
        language {
            enableSplit = true
        }
        density {
            enableSplit = true
        }
        abi {
            enableSplit = true
        }
    }
}
// Gawain: ./gradlew bundleRelease

Lokal na pagsubok sa pamamagitan ng bundletool

Ang Google ay nagbibigay ng tool na bundletool para sa pagbuo ng APK mula sa AAB sa lokal na makina. Ang utos na `bundletool build-apks --bundle=app.aab --output=app.apks` ay lumilikha ng isang set ng mga APK para sa pagsubok sa iba't ibang configuration ng device.

bundletool ay maaari ring mag-unpack ng AAB, ipakita ang configuration nito, at suriin ang integridad ng lagda bago i-upload sa Google Play Console. Para sa debugging, ginagamit ang utos na `bundletool dump manifest --bundle=app.aab`, na nagpapakita ng manifest ng base na modyul.

Configuration ng paghahati sa AAB

Bilang default, hinahati ng AAB ang mga mapagkukunan ayon sa tatlong dimensyon: wika (language), density ng screen (density) at arkitektura ng CPU (abi). Maaaring i-disable ng developer ang anumang paghahati sa build.gradle — halimbawa, kung ang application ay sumusuporta lamang sa Ingles. Ang pag-disable ng paghahati ay nangangahulugan na ang mga mapagkukunan para sa lahat ng variant ay mapupunta sa base APK.

Resource optimisation — awtomatikong kino-convert ng AAB ang PNG sa WebP nang walang pagkawala ng kalidad, pinipiga ang mga hindi ginagamit na mapagkukunan at inaalis ang mga duplicate na string. Ang mga optimization na ito ay inilalapat sa panig ng Google Play kapag bumubuo ng panghuling APK. Bilang resulta, ang user ay tumatanggap ng APK na 15–25% na mas maliit kaysa sa buong archive.

Pag-publish ng AAB sa Google Play

Ang proseso ng pag-publish ng AAB sa Google Play Console ay naiiba sa APK lamang sa format ng na-upload na file. Tinatanggap ng console ang .aab, sinusuri ang istraktura, lagda at configuration ng mga modyul nito, pagkatapos ay bumubuo ng APK para sa bawat uri ng device.

App Signing by Google Play

Kapag nag-upload ng AAB, pinangangasiwaan ng Google Play ang pamamahala ng mga susi ng lagda. Ina-upload ng developer ang package na nilagdaan gamit ang upload key, at ang Google ay muling pumipirma sa mga nabuong APK gamit ang sarili nitong key. Pinapasimple nito ang pag-ikot ng mga susi at pagbawi ng access kung mawala ang keystore.

Pagsubok bago ilabas

Ang Google Play Console ay nagbibigay ng built-in na pagsubok ng AAB: maaaring i-download ang nabuong APK para sa isang partikular na device o magpatakbo ng panloob na pagsubok sa pamamagitan ng mga track na Internal Testing, Closed Alpha at Open Beta.

Mga karaniwang problema sa AAB at ang kanilang solusyon

Ang paglipat sa AAB ay maaaring magdulot ng mga problema, lalo na sa mga proyektong may maraming dynamic na modyul o kumplikadong configuration ng mapagkukunan.

Mga error sa configuration ng modyul

Kung ang isang dynamic na modyul ay tumutukoy sa mga mapagkukunan ng base na modyul na may maling pangalan, tinatanggihan ng Google Play ang AAB sa yugto ng pag-verify. Solusyon — gumamit ng lint check bago ang pagbuo at subukan ang lahat ng modyul sa pamamagitan ng bundletool nang lokal.

Paghahati sa wika at pagbaba ng pagganap

Ang paghahati ayon sa wika ay maaaring magpabagal sa pagsisimula ng application kung ang mga mapagkukunan para sa kasalukuyang lokalisasyon ay na-load nang dynamic. Rekomendasyon ng Google — huwag hatiin ang mga wika kung mas mababa sa 10, o gumamit ng install-time para sa pinakasikat.

Pagkakatugma sa mga SDK ng third-party

Ang ilang SDK (analytics, mga ad, mapa) ay nangangailangan ng access sa buong manifest at mga mapagkukunan. Pagsusuri ng pagkakatugma sa AAB ay isang sapilitang hakbang bago ang migration. Karamihan sa mga malalaking SDK (Firebase, Google Ads, Crashlytics) ay ganap na sumusuporta sa AAB mula noong 2022. Para sa pagsusuri ng pagkakatugma, ginagamit ang bundletool na may flag na --validate, na ginagaya ang pagbuo ng APK sa server.

Pag-bersyon ng AAB

Gumagamit ang AAB ng versionCode mula sa manifest ng base na modyul. Hindi tulad ng APK, sinusuportahan din ng AAB ang hiwalay na versionCode para sa bawat modyul — ito ay nagpapahintulot sa pag-update ng mga indibidwal na bahagi ng application nang walang buong muling pag-install. Sinusubaybayan ng Dynamic Delivery ang mga naka-install na modyul at naghahatid lamang ng mga binagong bahagi sa pag-update sa pamamagitan ng Google Play.

Pagmonitor at analytics ng AAB

Ang Google Play Console ay nagbibigay ng detalyadong analytics para sa bawat AAB: ilang APK ang nabuo, anong mga paghahati ang hiniling, ano ang average na laki ng pag-download ayon sa device. Android Vitals ay nagpapakita ng mga sukatan ng pagganap ng mga nabuong APK. Ang datos na ito ay tumutulong sa pag-optimize ng configuration ng paghahati at pagbawas ng laki ng pag-download para sa iba't ibang kategorya ng device.

Mga madalas itanong

Maaari bang direktang i-install ang AAB sa telepono?

Hindi, ang AAB ay hindi dinisenyo para sa direktang pag-install. Ginagawa ito ng Google Play na APK para sa partikular na device. Para sa pagsubok sa telepono, ginagamit ang bundletool, na bumubuo ng APK mula sa AAB nang lokal.

Paano binabawasan ng AAB ang laki ng application?

Ang Google Play ay bumubuo ng APK lamang sa mga mapagkukunang tumutugma sa device ng user: isang density ng screen, isang arkitektura ng CPU, isang wika. Ang mga mapagkukunan para sa iba pang mga configuration ay hindi kasama, na nakakatipid ng 15–30% na trapiko sa pag-download.

Kailangan ba ang AAB para sa mga umiiral na application?

Hindi, ang mga umiiral na application ay maaaring magpatuloy sa pag-publish ng APK. Ang kinakailangan ng AAB ay nalalapat lamang sa mga bagong application. Inirerekomenda ng Google ngunit hindi nangangailangan ng pag-update ng mga umiiral na proyekto sa AAB.

Paano mag-migrate mula sa APK patungo sa AAB?

Palitan ang gawain ng pagbuo mula sa assembleRelease patungong bundleRelease, suriin ang pagkakatugma ng lahat ng SDK, i-configure ang App Signing sa Google Play Console at i-upload ang unang AAB sa pamamagitan ng umiiral na track.

Sinusuportahan ba ng AAB ang mga native na library?

Oo, ang AAB ay may kasamang native na mga library sa mga modyul. Ang Google Play ay naghahatid lamang ng mga .so file para sa arkitektura ng CPU ng device. Ito ay lalong mahalaga para sa mga laro sa Unity at Unreal Engine na may malalaking native na compilation.

Buod

  • AAB — lalagyan para sa pag-publish ng mga Android application kung saan ang Google Play ay bumubuo ng target na APK.
  • Dynamic Delivery ay naghahatid lamang ng mga mapagkukunang tumutugma sa device ng user — pagtitipid ng 15–30% na trapiko.
  • Modularidad — ang application ay nahahati sa base, conditional at on-demand na mga modyul na may iba't ibang estratehiya ng pag-load.
  • Pagiging sapilitan — mula noong 2021, lahat ng bagong application sa Google Play ay nai-publish sa format na AAB.
  • App Signing — pinangangasiwaan ng Google Play ang mga susi ng lagda, pinapasimple ang pag-ikot at pagbawi.
  • Pagsubok ay ginagawa sa pamamagitan ng bundletool, na ginagaya ang pagbuo ng APK sa server nang lokal.
  • Play Asset Delivery ay pumapalit sa mga OBB file, sumusuporta ng hanggang 2 GB ng mga asset na may nababaluktot na mga mode ng pag-load.

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din