Android App Bundle (AAB): Panduan Lengkap untuk Pembangun dan Pengguna

A sealed parcel labeled AAB on a developer desk, illustrating the Android App Bundle format

Pada Ogos 2021, Google membuat keputusan yang secara asasnya mengubah cara apl Android diedarkan: semua apl baharu yang diserahkan ke Gedung Google Play mesti menggunakan format Android App Bundle (AAB) dan bukannya APK tradisional. Anjakan ini menjejaskan pembangun, pengguna dan keseluruhan ekosistem pengedaran apl pihak ketiga. Tetapi apakah sebenarnya App Bundle, bagaimana ia berfungsi, dan mengapa anda perlu mengambil berat?

Panduan ini merangkumi segala-galanya daripada dalaman teknikal format AAB kepada implikasi praktikal untuk pengguna yang ingin berkongsi apl dengan rakan atau memasangnya pada peranti tanpa akses Gedung Play.

Apakah Android App Bundle?

Android App Bundle ialah format penerbitan yang mengandungi semua kod dan sumber terkumpul apl tetapi menangguhkan penjanaan APK akhir yang boleh dipasang ke Google Play. Anggap ia sebagai templat induk yang daripadanya pelayan Google mencipta pakej khusus peranti yang dioptimumkan dengan segera.

Tidak seperti APK, yang merupakan pakej sedia untuk dipasang, fail AAB tidak boleh dipasang terus pada peranti. Ia ialah artifak binaan yang dimuat naik ke Gedung Play, tempat infrastruktur Google memprosesnya dan menjana APK yang disesuaikan untuk setiap konfigurasi peranti.

Sambungan fail ialah .aab, dan secara dalaman ia menggunakan format penimbal protokol digabungkan dengan struktur seperti ZIP. Ia mengandungi kod bait DEX, sumber, aset, pustaka asli dan fail metadata himpunan khas apl yang memberitahu Google Play cara membahagikan kandungan.

Mengapa App Bundle Dimandatkan Google

Motivasi utama di sebalik App Bundle ialah mengurangkan saiz muat turun aplikasi. Apl Android biasa perlu menyokong berbilang ketumpatan skrin (mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi), berbilang seni bina CPU (armeabi-v7a, arm64-v8a, x86, x86_64) dan berbilang bahasa. Dalam model APK tradisional, semua sumber ini digabungkan ke dalam satu fail, walaupun mana-mana peranti tertentu hanya memerlukan sebahagian kecil daripadanya.

Pertimbangkan permainan yang merangkumi perpustakaan asli untuk empat seni bina dan tekstur CPU untuk lima ketumpatan skrin. APK universal mungkin 200 MB, tetapi versi khusus peranti yang mengandungi hanya seni bina dan ketumpatan yang berkaitan boleh menjadi 80 MB. Itu adalah pengurangan 60% dalam saiz muat turun.

Google melaporkan bahawa apl yang menggunakan App Bundle secara purata 15% lebih kecil daripada setara APK universalnya. Untuk apl dan permainan yang besar, penjimatan boleh menjadi lebih dramatik. Muat turun yang lebih kecil bermakna pemasangan yang lebih pantas, penggunaan lebar jalur yang lebih sedikit dan pemasangan yang lebih sedikit terbengkalai disebabkan kebimbangan saiz.

Cara App Bundle Berfungsi Secara Dalaman

Struktur Bundle

Fail AAB disusun ke dalam modul, dengan setiap modul mengandungi kod, sumber dan asetnya sendiri. Struktur yang paling biasa termasuk:

  • Modul asas: Mengandungi kod apl teras dan sumber yang diperlukan oleh setiap peranti. Ini sentiasa dipasang.
  • Pemisahan konfigurasi: Bahagian berasingan untuk sumber bahasa, sumber ketumpatan skrin dan perpustakaan asli ABI (seni bina CPU).
  • Modul ciri dinamik: Modul pilihan yang boleh dimuat turun atas permintaan selepas pemasangan awal.
  • Pek aset: Aset besar seperti tahap permainan atau media yang boleh dihantar pada masa pemasangan, atas permintaan atau di latar belakang.

Penjanaan APK Pisah

Apabila pengguna memuat turun apl daripada Gedung Play, pelayan Google memeriksa konfigurasi peranti dan menjana satu set APK pisah yang disesuaikan dengan peranti khusus tersebut. Pemasangan biasa mungkin termasuk:

  • base.apk, Kod aplikasi teras dan sumber penting
  • split_config.arm64_v8a.apk, Pustaka asli untuk CPU peranti
  • split_config.xxhdpi.apk, Sumber untuk ketumpatan skrin peranti
  • split_config.en.apk, Sumber bahasa untuk tempat pengguna

APK berpecah ini dipasang bersama sebagai apl logik tunggal. Pengurus pakej Android menganggapnya sebagai satu aplikasi, tetapi ia adalah fail yang berasingan secara fizikal pada peranti. Ini adalah mekanisme yang membolehkan penjimatan saiz.

Penghantaran Dinamik

Salah satu ciri App Bundle yang paling berkuasa ialah penghantaran dinamik. Pembangun boleh menandakan ciri tertentu sebagai boleh dimuat turun atas permintaan. Contohnya, apl pengeditan foto mungkin termasuk penapis lanjutan sebagai modul ciri dinamik. Pengguna yang tidak pernah menggunakan penapis tersebut tidak pernah memuat turunnya, menjimatkan ruang storan.

Modul ciri dinamik dimuat turun dan dipasang melalui pustaka Teras Play semasa masa jalan. Apl boleh menyemak sama ada modul dipasang dan meminta muat turunnya apabila diperlukan, jadi pengguna mengalami fungsi baharu sebagai muat turun dalam apl yang kecil dan bukannya pemasangan semula penuh.

AAB lwn APK: Perbezaan Utama

Memahami perbezaan antara format ini membantu menjelaskan apabila setiap satu sesuai:

  • Fail APK Kebolehpasangan: boleh dipasang terus pada mana-mana peranti Android. Fail AAB tidak boleh dipasang terus dan mesti diproses terlebih dahulu.
  • Saiz: APK universal mengandungi sumber untuk semua konfigurasi. AAB mendayakan penghantaran khusus peranti, menghasilkan muat turun yang lebih kecil.
  • Menandatangani: Dengan APK, pembangun menandatangani pakej akhir yang boleh dipasang. Dengan AAB, pembangun menandatangani himpunan dan Google menandatangani semula APK yang dijana menggunakan Tandatangan Apl Play.
  • APK Pengedaran: boleh diedarkan melalui mana-mana saluran. AAB direka terutamanya untuk Gedung Play, walaupun alatan seperti bundletool boleh menjana APK daripadanya secara setempat.
  • Kebolehkongsian: Anda boleh berkongsi fail APK dengan orang lain dengan mudah. Berkongsi apl yang dipasang daripada AAB memerlukan pengumpulan semua APK pisah, yang lebih kompleks.

Kontroversi Penandatanganan

Salah satu aspek mandat AAB yang paling banyak diperdebatkan ialah Tandatangan Apl Play. Apabila pembangun memuat naik AAB, Google memegang kunci tandatangan yang digunakan untuk menandatangani APK akhir yang dihantar kepada pengguna. Ini bermakna Google secara teknikal mempunyai keupayaan untuk mengubah suai kandungan APK sebelum menandatangani dan menghantarnya.

Google berpendapat ini perlu kerana mereka perlu menandatangani APK pecahan yang mereka hasilkan. Pembangun mengekalkan kunci muat naik untuk mengesahkan muat naik mereka, tetapi kunci tandatangan apl sebenar diurus oleh infrastruktur Google.

Bagi kebanyakan pembangun, ini adalah pertukaran yang munasabah. Google menyediakan perkhidmatan sandaran dan pemulihan kunci, dan risiko kehilangan kunci (yang akan menghalang kemas kini apl secara kekal) dihapuskan. Walau bagaimanapun, pembangun yang memfokuskan privasi dan penyokong sumber terbuka telah menimbulkan kebimbangan mengenai pemusatan kepercayaan ini.

Maksud Ini untuk Pengguna yang Berkongsi Apl

Peralihan kepada App Bundle mempunyai implikasi yang ketara untuk pengguna yang ingin berkongsi apl di luar Gedung Play:

Mengekstrak Apl yang Dipasang

Apabila anda mengekstrak apl yang dipasang daripada AAB, anda tidak mendapat satu fail APK. Sebaliknya, anda mendapat koleksi APK berpecah. Pemisahan ini adalah khusus peranti, bermakna aplikasi yang diekstrak daripada telefon dengan pemproses ARM64 dan skrin xxhdpi tidak akan berfungsi pada peranti dengan konfigurasi berbeza.

Format XAPK dan APKS

Untuk menangani cabaran berkongsi APK split, format kontena seperti XAPK dan APKS telah dibuat. Format ini menggabungkan semua APK pisah bersama-sama ke dalam satu fail yang boleh dimuat turun. Apabila anda menemui fail XAPK, ia mungkin mengandungi apl yang pada asalnya diedarkan sebagai App Bundle.

XAPK kepada penukar APK kami boleh membantu anda mengekstrak APK asas daripada format bekas ini. Walau bagaimanapun, perlu diingat bahawa APK asas sahaja mungkin tidak mengandungi semua sumber yang diperlukan untuk apl berfungsi dengan betul pada setiap peranti, memandangkan kepadatan dan sumber khusus ABI mungkin terdapat dalam APK pisah.

Menggunakan bundletool

Google menyediakan alat sumber terbuka yang dipanggil bundletool yang boleh menjana APK daripada fail AAB secara setempat. Pembangun boleh menggunakan ini untuk membuat APK universal untuk ujian atau pengedaran alternatif. Perintah itu kelihatan seperti:

bundletool build-apks --bundle=app.aab --output=app.apks --mode=universal

Ini menjana APK universal yang mengandungi semua sumber untuk semua konfigurasi. Ia akan lebih besar daripada binaan khusus peranti tetapi berfungsi pada mana-mana peranti. Ini adalah pendekatan yang digunakan oleh AAB kepada penukar APK kami.

Kesan pada App Store Alternatif

Mandat AAB memberi kesan terutamanya pada Gedung Google Play. Kedai apl alternatif dan saluran pengedaran langsung masih boleh menerima fail APK. Pembangun yang ingin mengedarkan di luar Play boleh terus membina APK universal bersama muat naik AAB mereka.

Walau bagaimanapun, sesetengah pembangun hanya membina AAB dan bergantung sepenuhnya pada Play untuk pengedaran. Ini bermakna apl daripada pembangun ini lebih sukar diperoleh di luar ekosistem Gedung Play. Repositori apl pihak ketiga telah disesuaikan dengan sama ada mengehoskan koleksi APK berpecah (sebagai fail XAPK atau APKS) atau dengan menggunakan bundletool untuk menjana APK universal.

Modul Ciri Dinamik dalam Amalan

Modul ciri dinamik mewakili salah satu keupayaan paling menarik dalam format App Bundle. Berikut ialah beberapa kes penggunaan dunia sebenar:

  • Ciri-ciri kamera: Apl mungkin termasuk penapis AR sebagai modul dinamik, dimuat turun hanya apabila pengguna mula-mula mengakses ciri kamera.
  • Pek bahasa: Data terjemahan untuk bahasa yang kurang biasa boleh dihantar atas permintaan dan bukannya digabungkan dengan setiap pemasangan.
  • Tahap permainan: Games boleh menyampaikan kandungan tambahan semasa pemain berkembang, mengekalkan muat turun awal yang kecil.
  • Alat profesional: Ciri lanjutan dalam apl produktiviti boleh dihantar hanya kepada pengguna yang memerlukannya.

Bagi pengguna, ini bermakna saiz yang dipasang apl mungkin berkembang dari semasa ke semasa apabila modul dinamik dimuat turun. Ini juga bermakna perkongsian apl sedemikian memerlukan termasuk semua modul yang dimuat turun, seterusnya merumitkan proses pengekstrakan.

Amalan Terbaik untuk Pembangun

Jika anda sedang membangunkan apl Android, berikut ialah cadangan untuk bekerja dengan App Bundle dengan berkesan:

  1. Sentiasa uji dengan bundletool secara setempat sebelum memuat naik ke Play. Hasilkan APK khusus peranti dan sahkan ia berfungsi dengan betul.
  2. Gunakan runut ujian dalaman Play Console untuk mengesahkan bahawa APK split dipasang dan berfungsi dengan betul pada peranti sebenar.
  3. Pertimbangkan untuk menyediakan APK universal untuk saluran pengedaran alternatif jika pangkalan pengguna anda melangkaui Gedung Play.
  4. Berhati-hati dengan sempadan modul ciri dinamik. Ciri-ciri yang kerap digunakan hendaklah dalam modul asas, bukan modul dinamik.
  5. Uji pada peranti dengan konfigurasi berbeza untuk memastikan pemisahan konfigurasi dijana dengan betul dan tiada sumber yang hilang.
  6. Pastikan kunci muat naik anda selamat. Semasa Google menguruskan kunci tandatangan apl, kunci muat naik anda mengesahkan identiti anda sebagai pembangun.

Masa Depan Pengedaran Apl

Format App Bundle terus berkembang. Google telah memperkenalkan ciri seperti Play Asset Delivery untuk aset permainan yang besar, Masa Jalan SDK untuk SDK pengiklanan dan sokongan yang lebih baik untuk konfigurasi Wear OS dan Android TV. Aliran ini adalah ke arah penghantaran komponen aplikasi atas permintaan yang lebih terperinci.

Bagi pengguna, ini bermakna konsep fail apl serba lengkap tunggal menjadi kurang biasa untuk apl Gedung Play. Memahami format seperti XAPK, APKS dan alatan yang tersedia untuk berfungsi dengannya menjadi semakin penting bagi sesiapa sahaja yang mengurus apl di luar aliran Gedung Play standard.

Bila Perlu Menyimpan AAB lwn. Bila Membina APK Universal

Android App Bundle mewakili anjakan asas dalam cara apl dibungkus dan dihantar. Walaupun ia membawa faedah tulen dari segi saiz muat turun dan kecekapan penghantaran, ia juga memperkenalkan kerumitan untuk pengguna yang berkongsi apl atau memasangnya daripada sumber alternatif. Memahami cara AAB berfungsi, cara ia menjana APK berpecah dan alatan yang tersedia untuk menukar antara format memberi anda perkara yang anda perlukan untuk memilih format yang betul dan menukar antaranya dengan yakin.

Pembangun mencapai AAB untuk mengoptimumkan cara apl dihantar; kebanyakan pengguna setiap hari hanya menemuinya apabila mereka cuba memasang sesuatu pada peranti tanpa akses Gedung Play. Walau apa pun, perkara yang perlu diingat adalah mudah: AAB ialah format penerbitan, bukan format pemasangan, dan terdapat alat yang merapatkan jurang antara kedua-duanya.

Kejuruteraan & Didokumentasikan oleh Mst Shaefale Pemaju Utama & Arkitek Pakej Android • Disahkan pada Android 12–15

Mst Shaefale mengekalkan penggabungan XAPK/APKS pihak pelanggan, penghurai manifes binari dan alat tandatangan APK v1+v2 di xapktoapk.com. Lihat arahan atau perubahan OS yang sudah lapuk? Hantar nota editorial.