Noong Agosto 2021, gumawa ang Google ng desisyon na pangunahing binago kung paano ipinamamahagi ang mga Android app: dapat gamitin ng lahat ng bagong app na isinumite sa Google Play Store ang Android App Bundle (AAB) na format sa halip na ang tradisyonal na APK. Naapektuhan ng shift na ito ang mga developer, user, at ang buong ecosystem ng pamamahagi ng third-party na app. Ngunit ano nga ba ang App Bundle, paano ito gumagana, at bakit mo dapat pakialaman?
Sinasaklaw ng gabay na ito ang lahat mula sa mga teknikal na panloob ng format ng AAB hanggang sa mga praktikal na implikasyon para sa mga user na gustong magbahagi ng mga app sa mga kaibigan o mag-install ng mga ito sa mga device na walang access sa Play Store.
Ano ang Android App Bundle?
Ang Android App Bundle ay isang format sa pag-publish na naglalaman ng lahat ng pinagsama-samang code at mapagkukunan ng app ngunit ipinagpaliban ang pagbuo ng panghuling mai-install na APK sa Google Play. Isipin ito bilang isang master template kung saan lumilikha ang mga server ng Google ng mga naka-optimize at partikular na device na package sa mabilisang paraan.
Hindi tulad ng isang APK, na isang ready-to-install na package, ang isang AAB file ay hindi maaaring direktang mai-install sa isang device. Isa itong build artifact na ina-upload sa Play Store, kung saan pinoproseso ito ng imprastraktura ng Google at bumubuo ng mga iniangkop na APK para sa bawat configuration ng device.
Ang extension ng file ay .aab, at sa loob nito ay gumagamit ito ng protocol buffer format na sinamahan ng isang ZIP-like structure. Naglalaman ito ng DEX bytecode, mga mapagkukunan, mga asset, mga native na library, at isang espesyal na bundle metadata file na nagsasabi sa Google Play kung paano hatiin ang nilalaman.
Bakit Mga Bundle ng App na Ipinag-uutos ng Google
Ang pangunahing motibasyon sa likod ng Mga App Bundle ay binabawasan ang mga laki ng pag-download ng app. Kailangang suportahan ng isang karaniwang Android app ang maraming densidad ng screen (mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi), maraming arkitektura ng CPU (armeabi-v7a, arm64-v8a, x86, x86_64), at maraming wika. Sa tradisyonal na modelo ng APK, ang lahat ng mga mapagkukunang ito ay naka-bundle sa isang file, kahit na ang anumang partikular na device ay nangangailangan lamang ng isang bahagi ng mga ito.
Isaalang-alang ang isang laro na kinabibilangan ng mga katutubong aklatan para sa apat na arkitektura ng CPU at mga texture para sa limang densidad ng screen. Maaaring 200 MB ang pangkalahatang APK, ngunit maaaring 80 MB ang isang bersyong partikular sa device na naglalaman lang ng nauugnay na arkitektura at density. Iyon ay isang 60% na pagbawas sa laki ng pag-download.
Iniuulat ng Google na ang mga app na gumagamit ng Mga App Bundle ay nasa average na 15% na mas maliit kaysa sa kanilang mga pangkalahatang katumbas na APK. Para sa malalaking app at laro, ang matitipid ay maaaring maging mas kapansin-pansin. Ang mas maliliit na pag-download ay nangangahulugan ng mas mabilis na pag-install, mas kaunting paggamit ng bandwidth, at mas kaunting mga inabandunang pag-install dahil sa mga alalahanin sa laki.
Paano Gumagana ang Mga App Bundle sa Panloob
Ang Bundle Structure
Ang isang AAB file ay isinaayos sa mga module, na ang bawat module ay naglalaman ng sarili nitong code, mga mapagkukunan, at mga asset. Ang pinakakaraniwang istraktura ay kinabibilangan ng:
- Base module: Naglalaman ng pangunahing code ng app at mga mapagkukunan na kailangan ng bawat device. Ito ay palaging naka-install.
- Mga paghahati ng configuration: Paghiwalayin ang mga seksyon para sa mga mapagkukunan ng wika, mga mapagkukunan ng density ng screen, at mga katutubong aklatan ng ABI (CPU architecture).
- Mga module ng dinamikong tampok: Opsyonal na mga module na maaaring i-download kapag hinihiling pagkatapos ng unang pag-install.
- Mga asset pack: Malaking asset tulad ng mga antas ng laro o media na maaaring ihatid sa oras ng pag-install, on demand, o sa background.
Hatiin ang Pagbuo ng APK
Kapag nag-download ang isang user ng app mula sa Play Store, susuriin ng mga server ng Google ang configuration ng device at bumuo ng isang hanay ng mga split APK na iniakma sa partikular na device na iyon. Maaaring kabilang sa isang karaniwang pag-install ang:
- base.apk, Ang pangunahing code ng aplikasyon at mahahalagang mapagkukunan
- split_config.arm64_v8a.apk, Mga katutubong aklatan para sa CPU ng device
- split_config.xxhdpi.apk, Mga mapagkukunan para sa density ng screen ng device
- split_config.en.apk, Mga mapagkukunan ng wika para sa lokal ng gumagamit
Ang mga split APK na ito ay naka-install nang magkasama bilang isang lohikal na app. Itinuturing sila ng Android package manager bilang isang application, ngunit pisikal na magkahiwalay ang mga ito sa device. Ito ang mekanismo na nagbibigay-daan sa pagtitipid ng laki.
Dynamic na Paghahatid
Ang isa sa pinakamakapangyarihang feature ng App Bundle ay ang dynamic na paghahatid. Maaaring markahan ng mga developer ang ilang partikular na feature bilang nada-download on demand. Halimbawa, maaaring may kasamang mga advanced na filter ang isang app sa pag-edit ng larawan bilang isang module ng dynamic na feature. Ang mga user na hindi kailanman gumagamit ng mga filter na iyon ay hindi kailanman nagda-download ng mga ito, na nakakatipid ng espasyo sa storage.
Dina-download at ini-install ang mga dynamic na feature module sa pamamagitan ng Play Core library sa runtime. Maaaring suriin ng app kung ang isang module ay naka-install at humiling ng pag-download nito kapag kinakailangan, upang maranasan ng user ang bagong functionality bilang isang maliit na in-app na pag-download sa halip na isang buong muling pag-install.
AAB vs APK: Mga Pangunahing Pagkakaiba
Ang pag-unawa sa mga pagkakaiba sa pagitan ng mga format na ito ay nakakatulong na linawin kung naaangkop ang bawat isa:
- Maaaring direktang i-install ang Pagkakabit: APK file sa anumang Android device. Hindi direktang mai-install ang mga AAB file at dapat munang iproseso.
- Sukat: Ang isang pangkalahatang APK ay naglalaman ng mga mapagkukunan para sa lahat ng mga configuration. Ang AAB ay nagbibigay-daan sa paghahatid na partikular sa device, na nagreresulta sa mas maliliit na pag-download.
- Pagpirma: Gamit ang mga APK, pinipirmahan ng developer ang panghuling mai-install na package. Sa mga AAB, nilagdaan ng developer ang bundle, at muling nilagdaan ng Google ang mga nabuong APK gamit ang Play App Signing.
- Ang mga Pamamahagi: APK ay maaaring ipamahagi sa anumang channel. Pangunahing idinisenyo ang mga AAB para sa Play Store, kahit na ang mga tool tulad ng bundletool ay maaaring makabuo ng mga APK mula sa kanila nang lokal.
- Kakayahang ibahagi: Madali kang makakapagbahagi ng APK file sa ibang tao. Ang pagbabahagi ng app na naka-install mula sa isang AAB ay nangangailangan ng pagkolekta ng lahat ng split APK, na mas kumplikado.
Ang Kontrobersya sa Pagpirma
Ang isa sa mga pinaka pinagtatalunang aspeto ng utos ng AAB ay ang Play App Signing. Kapag nag-upload ang isang developer ng AAB, hawak ng Google ang signing key na ginamit para lagdaan ang mga huling APK na inihatid sa mga user. Nangangahulugan ito na teknikal na may kakayahan ang Google na baguhin ang nilalaman ng APK bago ito lagdaan at ihatid.
Ipinapangatuwiran ng Google na kailangan ito dahil kailangan nilang lagdaan ang mga split APK na kanilang nabuo. Nagpapanatili ang mga developer ng upload key upang patotohanan ang kanilang mga upload, ngunit ang aktwal na signing key ng app ay pinamamahalaan ng imprastraktura ng Google.
Para sa karamihan ng mga developer, ito ay isang makatwirang trade-off. Nagbibigay ang Google ng mga pangunahing serbisyo sa pag-backup at pagbawi, at ang panganib ng pagkawala ng susi (na permanenteng makakapigil sa mga pag-update ng app) ay inaalis. Gayunpaman, ang mga developer na nakatuon sa privacy at mga tagapagtaguyod ng open-source ay nagtaas ng mga alalahanin tungkol sa sentralisasyon ng tiwala na ito.
Ano ang Kahulugan Nito para sa Mga User na Nagbabahagi ng Mga App
Ang paglipat sa App Bundle ay may malaking implikasyon para sa mga user na gustong magbahagi ng mga app sa labas ng Play Store:
Pag-extract ng mga Naka-install na Apps
Kapag nag-extract ka ng app na naka-install mula sa isang AAB, hindi ka makakakuha ng isang APK file. Sa halip, makakakuha ka ng koleksyon ng mga split APK. Ang mga split na ito ay partikular sa device, ibig sabihin, ang isang app na kinuha mula sa isang telepono na may ARM64 processor at xxhdpi screen ay hindi gagana sa isang device na may ibang configuration.
Mga Format ng XAPK at APKS
Upang matugunan ang hamon ng pagbabahagi ng mga split APK, ginawa ang mga format ng container tulad ng XAPK at APKS. Pinagsasama-sama ng mga format na ito ang lahat ng split APK sa iisang nada-download na file. Kapag nakatagpo ka ng XAPK file, malamang na naglalaman ito ng app na orihinal na ipinamahagi bilang App Bundle.
Matutulungan ka ng aming XAPKS sa APK converter na kunin ang batayang APK mula sa mga format ng container na ito. Gayunpaman, tandaan na ang batayang APK lamang ay maaaring hindi naglalaman ng lahat ng mga mapagkukunang kailangan para gumana nang tama ang app sa bawat device, dahil ang density at mga mapagkukunang partikular sa ABI ay maaaring nasa mga split APK.
Gamit ang bundletool
Nagbibigay ang Google ng open-source na tool na tinatawag na bundletool na maaaring makabuo ng mga APK mula sa isang AAB file nang lokal. Magagamit ito ng mga developer para gumawa ng mga pangkalahatang APK para sa pagsubok o alternatibong pamamahagi. Ang utos ay mukhang:
bundletool build-apks --bundle=app.aab --output=app.apks --mode=universal
Bumubuo ito ng isang pangkalahatang APK na naglalaman ng lahat ng mga mapagkukunan para sa lahat ng mga configuration. Mas malaki ito kaysa sa build na partikular sa device ngunit gumagana sa anumang device. Ito ang diskarte na ginamit ng aming AAB to APK converter.
Epekto sa Mga Alternatibong App Store
Pangunahing nakakaapekto ang mandato ng AAB sa Google Play Store. Ang mga alternatibong app store at direktang channel ng pamamahagi ay maaari pa ring tumanggap ng mga APK file. Ang mga developer na gustong ipamahagi sa labas ng Play ay maaaring magpatuloy sa pagbuo ng mga pangkalahatang APK kasama ng kanilang mga pag-upload sa AAB.
Gayunpaman, ang ilang developer ay gumagawa lamang ng mga AAB at ganap na umaasa sa Play para sa pamamahagi. Nangangahulugan ito na ang mga app mula sa mga developer na ito ay mas mahirap makuha sa labas ng ecosystem ng Play Store. Ang mga repositoryo ng app ng third-party ay inangkop sa pamamagitan ng pagho-host ng mga split APK na koleksyon (bilang mga XAPK o APKS file) o sa pamamagitan ng paggamit ng bundletool upang bumuo ng mga pangkalahatang APK.
Mga Dynamic na Feature Module sa Practice
Kinakatawan ng mga dynamic na feature module ang isa sa mga pinakakawili-wiling kakayahan ng format ng App Bundle. Narito ang ilang totoong sitwasyon sa paggamit:
- Mga tampok ng camera: Maaaring magsama ang isang app ng mga AR filter bilang isang dynamic na module, na na-download lang kapag unang na-access ng user ang feature ng camera.
- Mga pack ng wika: Ang data ng pagsasalin para sa hindi gaanong karaniwang mga wika ay maaaring maihatid kapag hinihiling sa halip na isama sa bawat pag-install.
- Ang Mga antas ng laro: Games ay maaaring maghatid ng karagdagang nilalaman habang umuunlad ang mga manlalaro, na pinananatiling maliit ang paunang pag-download.
- Mga tool na propesyonal: Ang mga advanced na feature sa productivity app ay maihahatid lang sa mga user na nangangailangan ng mga ito.
Para sa mga user, nangangahulugan ito na maaaring lumaki ang laki ng naka-install na app sa paglipas ng panahon habang dina-download ang mga dynamic na module. Nangangahulugan din ito na ang pagbabahagi ng naturang app ay nangangailangan ng kasama ang lahat ng na-download na mga module, na higit pang nagpapakumplikado sa proseso ng pagkuha.
Pinakamahuhusay na Kasanayan para sa Mga Developer
Kung gumagawa ka ng mga Android app, narito ang mga rekomendasyon para sa epektibong pagtatrabaho sa mga App Bundle:
- Palaging subukan gamit ang bundletool nang lokal bago i-upload sa Play. Bumuo ng mga APK na partikular sa device at i-verify na gumagana ang mga ito nang tama.
- Gamitin ang track ng panloob na pagsubok ng Play Console upang i-verify na ang mga split APK ay naka-install at gumagana nang tama sa mga totoong device.
- Pag-isipang magbigay ng pangkalahatang APK para sa mga alternatibong channel ng pamamahagi kung ang iyong user base ay lampas sa Play Store.
- Maging maingat sa mga hangganan ng dynamic na feature module. Ang mga feature na madalas gamitin ay dapat nasa base module, hindi dynamic na modules.
- Subukan sa mga device na may iba't ibang configuration upang matiyak na ang mga paghahati ng configuration ay nabuo nang tama at walang mga mapagkukunang nawawala.
- Panatilihing secure ang iyong upload key. Habang pinamamahalaan ng Google ang signing key ng app, pinapatotohanan ng iyong upload key ang iyong pagkakakilanlan bilang developer.
Ang Hinaharap ng Pamamahagi ng App
Patuloy na nagbabago ang format ng App Bundle. Ipinakilala ng Google ang mga feature tulad ng Play Asset Delivery para sa malalaking asset ng laro, SDK Runtime para sa mga SDK sa pag-advertise, at pinahusay na suporta para sa mga configuration ng Wear OS at Android TV. Ang trend ay patungo sa mas granular, on-demand na paghahatid ng mga bahagi ng app.
Para sa mga user, nangangahulugan ito na ang konsepto ng isang solong, self-contained na file ng app ay nagiging mas karaniwan para sa mga Play Store app. Ang pag-unawa sa mga format tulad ng XAPK, APKS, at ang mga tool na magagamit upang gumana sa kanila ay lalong nagiging mahalaga para sa sinumang namamahala ng mga app sa labas ng karaniwang daloy ng Play Store.
Kailan Magpapanatili ng AAB kumpara sa Kailan Bumuo ng Pangkalahatang APK
Ang Android App Bundle ay kumakatawan sa isang pangunahing pagbabago sa kung paano naka-package at naghahatid ang mga app. Bagama't nagdudulot ito ng mga tunay na benepisyo sa laki ng pag-download at kahusayan sa paghahatid, ipinakikilala rin nito ang pagiging kumplikado para sa mga user na nagbabahagi ng mga app o nag-i-install ng mga ito mula sa mga alternatibong mapagkukunan. Ang pag-unawa sa kung paano gumagana ang mga AAB, kung paano sila bumubuo ng mga split APK, at kung anong mga tool ang available para mag-convert sa pagitan ng mga format ay nagbibigay sa iyo ng kailangan mo para piliin ang tamang format at mag-convert sa pagitan ng mga ito nang may kumpiyansa.
Inaabot ng mga developer ang AAB upang i-optimize kung paano inihahatid ang isang app; natutugunan lamang ito ng karamihan sa mga pang-araw-araw na user kapag sinubukan nilang mag-install ng isang bagay sa isang device na walang access sa Play Store. Sa alinmang paraan, ang bagay na dapat tandaan ay simple: Ang AAB ay isang format ng pag-publish, hindi isang format ng pag-install, at may mga tool na tumutulay sa pagitan ng dalawa.