Pada bulan Agustus 2021, Google membuat keputusan yang secara mendasar mengubah cara aplikasi Android didistribusikan: semua aplikasi baru yang dikirimkan ke Google Play Store harus menggunakan format Paket Aplikasi Android (AAB), bukan APK tradisional. Pergeseran ini berdampak pada pengembang, pengguna, dan seluruh ekosistem distribusi aplikasi pihak ketiga. Namun apa sebenarnya App Bundle itu, bagaimana cara kerjanya, dan mengapa Anda harus peduli?
Panduan ini mencakup segala hal mulai dari teknis internal format AAB hingga implikasi praktis bagi pengguna yang ingin berbagi aplikasi dengan teman atau menginstalnya di perangkat tanpa akses Play Store.
Apa itu Paket Aplikasi Android?
Android App Bundle adalah format publikasi yang berisi semua kode dan sumber daya aplikasi yang dikompilasi, namun menunda pembuatan APK akhir yang dapat diinstal ke Google Play. Anggap saja sebagai template utama yang digunakan oleh server Google untuk membuat paket khusus perangkat yang dioptimalkan dengan cepat.
Berbeda dengan APK yang merupakan paket siap dipasang, file AAB tidak dapat langsung diinstal pada perangkat. Ini adalah artefak build yang diunggah ke Play Store, tempat infrastruktur Google memprosesnya dan menghasilkan APK yang disesuaikan untuk setiap konfigurasi perangkat.
Ekstensi file adalah .aab, dan secara internal menggunakan format buffer protokol yang dikombinasikan dengan struktur mirip ZIP. Ini berisi bytecode DEX aplikasi, sumber daya, aset, pustaka asli, dan file metadata paket khusus yang memberi tahu Google Play cara membagi konten.
Mengapa App Bundle Diamanatkan Google
Motivasi utama di balik App Bundle adalah mengurangi ukuran unduhan aplikasi. Aplikasi Android pada umumnya harus mendukung berbagai kepadatan layar (mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi), beberapa arsitektur CPU (armeabi-v7a, arm64-v8a, x86, x86_64), dan berbagai bahasa. Dalam model APK tradisional, semua sumber daya ini digabungkan menjadi satu file, meskipun perangkat tertentu hanya memerlukan sebagian kecil dari sumber daya tersebut.
Pertimbangkan permainan yang menyertakan perpustakaan asli untuk empat arsitektur CPU dan tekstur untuk lima kepadatan layar. APK universal mungkin berukuran 200 MB, tetapi versi khusus perangkat yang hanya berisi arsitektur dan kepadatan yang relevan dapat berukuran 80 MB. Itu adalah pengurangan 60% dalam ukuran unduhan.
Google melaporkan bahwa aplikasi yang menggunakan App Bundle rata-rata 15% lebih kecil dibandingkan APK universal yang setara. Untuk aplikasi dan game berukuran besar, penghematannya bisa jauh lebih besar. Pengunduhan yang lebih kecil berarti penginstalan yang lebih cepat, konsumsi bandwidth yang lebih sedikit, dan lebih sedikit penginstalan yang ditinggalkan karena masalah ukuran.
Cara Kerja App Bundle Secara Internal
Struktur Bundel
File AAB disusun menjadi beberapa modul, dengan setiap modul berisi kode, sumber daya, dan asetnya sendiri. Struktur yang paling umum meliputi:
- Modul dasar: Berisi kode aplikasi inti dan sumber daya yang dibutuhkan setiap perangkat. Ini selalu diinstal.
- Pemisahan konfigurasi: Pisahkan bagian untuk sumber daya bahasa, sumber daya kepadatan layar, dan perpustakaan asli ABI (arsitektur CPU).
- Modul fitur dinamis: Modul opsional yang dapat diunduh sesuai permintaan setelah instalasi awal.
- Paket aset: Aset besar seperti level game atau media yang dapat dikirimkan pada waktu penginstalan, sesuai permintaan, atau di latar belakang.
Pisahkan Generasi APK
Saat pengguna mendownload aplikasi dari Play Store, server Google memeriksa konfigurasi perangkat dan menghasilkan serangkaian APK terpisah yang disesuaikan dengan perangkat spesifik tersebut. A typical installation might include:
- base.apk, Kode aplikasi inti dan sumber daya penting
- split_config.arm64_v8a.apk, Pustaka asli untuk CPU perangkat
- split_config.xxhdpi.apk, Sumber daya untuk kepadatan layar perangkat
- split_config.en.apk, Sumber daya bahasa untuk lokal pengguna
APK terpisah ini dipasang bersama sebagai satu aplikasi logis. Manajer paket Android memperlakukannya sebagai satu aplikasi, namun secara fisik merupakan file terpisah di perangkat. Ini adalah mekanisme yang memungkinkan penghematan ukuran.
Pengiriman Dinamis
Salah satu fitur paling canggih dari App Bundle adalah pengiriman dinamis. Pengembang dapat menandai fitur tertentu sebagai dapat diunduh sesuai permintaan. Misalnya, aplikasi pengeditan foto mungkin menyertakan filter lanjutan sebagai modul fitur dinamis. Pengguna yang tidak pernah menggunakan filter tersebut tidak akan pernah mendownloadnya, sehingga menghemat ruang penyimpanan.
Modul fitur dinamis didownload dan diinstal melalui perpustakaan Play Core saat runtime. Aplikasi dapat memeriksa apakah suatu modul telah diinstal dan meminta pengunduhannya bila diperlukan, sehingga pengguna merasakan fungsionalitas baru sebagai pengunduhan kecil dalam aplikasi, bukan penginstalan ulang penuh.
AAB vs APK: Perbedaan Utama
Memahami perbedaan antara format-format ini membantu memperjelas kapan masing-masing format tersebut sesuai:
- File APK Kemampuan pemasangan: dapat langsung diinstal di perangkat Android apa pun. File AAB tidak bisa langsung diinstall dan harus diproses terlebih dahulu.
- Ukuran: APK universal berisi sumber daya untuk semua konfigurasi. AAB memungkinkan pengiriman khusus perangkat, sehingga menghasilkan download yang lebih kecil.
- Penandatanganan: Dengan APK, pengembang menandatangani paket akhir yang dapat diinstal. Dengan AAB, developer menandatangani paket, dan Google menandatangani ulang APK yang dihasilkan menggunakan Play App Signing.
- APK Distribusi: dapat didistribusikan melalui saluran apa pun. AAB terutama dirancang untuk Play Store, meskipun alat seperti bundletool dapat menghasilkan APK dari AAB secara lokal.
- Kemampuan untuk dibagikan: Anda dapat dengan mudah berbagi file APK dengan orang lain. Berbagi aplikasi yang diinstal dari AAB memerlukan pengumpulan semua APK terpisah, yang lebih kompleks.
Kontroversi Penandatanganan
Salah satu aspek mandat AAB yang paling diperdebatkan adalah Mainkan Penandatanganan Aplikasi. Saat developer mengupload AAB, Google menyimpan kunci penandatanganan yang digunakan untuk menandatangani APK akhir yang dikirimkan ke pengguna. Artinya, Google secara teknis memiliki kemampuan untuk mengubah konten APK sebelum menandatangani dan mengirimkannya.
Google berpendapat hal ini perlu karena mereka perlu menandatangani APK terpisah yang mereka hasilkan. Pengembang mempertahankan kunci upload untuk mengautentikasi upload mereka, namun kunci penandatanganan aplikasi sebenarnya dikelola oleh infrastruktur Google.
Bagi sebagian besar pengembang, ini adalah trade-off yang masuk akal. Google menyediakan layanan pencadangan dan pemulihan kunci, dan risiko kehilangan kunci (yang akan mencegah pembaruan aplikasi secara permanen) dihilangkan. Namun, pengembang yang berfokus pada privasi dan pendukung sumber terbuka telah menyuarakan keprihatinan tentang sentralisasi kepercayaan ini.
Apa Artinya Bagi Pengguna yang Berbagi Aplikasi
Peralihan ke App Bundle memiliki implikasi signifikan bagi pengguna yang ingin berbagi aplikasi di luar Play Store:
Mengekstrak Aplikasi yang Terinstal
Saat Anda mengekstrak aplikasi yang diinstal dari AAB, Anda tidak mendapatkan satu pun file APK. Sebaliknya, Anda mendapatkan kumpulan APK terpisah. Pemisahan ini khusus untuk perangkat, artinya aplikasi yang diekstraksi dari ponsel dengan prosesor ARM64 dan layar xxhdpi tidak akan berfungsi pada perangkat dengan konfigurasi berbeda.
Format XAPK dan APKS
Untuk mengatasi tantangan berbagi APK terpisah, format container seperti XAPK dan APKS dibuat. Format ini menggabungkan semua APK yang terpisah menjadi satu file yang dapat diunduh. Saat Anda menemukan file XAPK, kemungkinan besar file tersebut berisi aplikasi yang awalnya didistribusikan sebagai App Bundle.
Konverter XAPKS ke APK kami dapat membantu Anda mengekstrak APK dasar dari format penampung ini. Namun, perlu diingat bahwa APK dasar saja mungkin tidak berisi semua sumber daya yang diperlukan agar aplikasi dapat berfungsi dengan benar di setiap perangkat, karena kepadatan dan sumber daya khusus ABI mungkin ada dalam APK terpisah.
Menggunakan bundletool
Google menyediakan alat sumber terbuka bernama bundletool yang dapat menghasilkan APK dari file AAB secara lokal. Pengembang dapat menggunakan ini untuk membuat APK universal untuk pengujian atau distribusi alternatif. Perintahnya terlihat seperti ini:
bundletool build-apks --bundle=app.aab --output=app.apks --mode=universal
Ini menghasilkan APK universal yang berisi semua sumber daya untuk semua konfigurasi. Ini akan lebih besar dari build khusus perangkat tetapi berfungsi pada perangkat apa pun. Ini adalah pendekatan yang digunakan oleh Konverter AAB ke APK kami.
Dampak pada App Store Alternatif
Mandat AAB terutama memengaruhi Google Play Store. Toko aplikasi alternatif dan saluran distribusi langsung masih dapat menerima file APK. Pengembang yang ingin mendistribusikan di luar Play dapat terus membuat APK universal bersama dengan upload AAB mereka.
Namun, beberapa pengembang hanya membuat AAB dan sepenuhnya mengandalkan Play untuk distribusinya. Artinya, aplikasi dari pengembang ini lebih sulit diperoleh di luar ekosistem Play Store. Repositori aplikasi pihak ketiga telah beradaptasi dengan menghosting koleksi APK terpisah (sebagai file XAPK atau APKS) atau dengan menggunakan bundletool untuk menghasilkan APK universal.
Modul Fitur Dinamis dalam Praktek
Modul fitur dinamis mewakili salah satu kemampuan paling menarik dari format App Bundle. Berikut beberapa kasus penggunaan di dunia nyata:
- Fitur kamera: Aplikasi mungkin menyertakan filter AR sebagai modul dinamis, hanya diunduh saat pengguna pertama kali mengakses fitur kamera.
- Paket bahasa: Data terjemahan untuk bahasa yang kurang umum dapat dikirimkan sesuai permintaan, bukan dipaketkan pada setiap instalasi.
- Level permainan: Games dapat memberikan konten tambahan seiring kemajuan pemain, sehingga unduhan awal tetap kecil.
- Alat profesional: Fitur-fitur canggih dalam aplikasi produktivitas hanya dapat diberikan kepada pengguna yang membutuhkannya.
Bagi pengguna, ini berarti ukuran pemasangan aplikasi mungkin bertambah seiring waktu seiring dengan pengunduhan modul dinamis. Ini juga berarti bahwa berbagi aplikasi semacam itu memerlukan penyertaan semua modul yang diunduh, sehingga semakin mempersulit proses ekstraksi.
Praktik Terbaik untuk Pengembang
Jika Anda mengembangkan aplikasi Android, berikut rekomendasi untuk bekerja dengan App Bundle secara efektif:
- Selalu uji dengan bundletool secara lokal sebelum diunggah ke Play. Buat APK khusus perangkat dan verifikasi bahwa APK berfungsi dengan benar.
- Gunakan jalur pengujian internal Konsol Play untuk memverifikasi bahwa APK terpisah dipasang dan berfungsi dengan benar di perangkat sebenarnya.
- Pertimbangkan untuk menyediakan APK universal untuk saluran distribusi alternatif jika basis pengguna Anda melampaui Play Store.
- Perhatikan batasan modul fitur dinamis. Fitur yang sering digunakan sebaiknya ada di modul dasar, bukan modul dinamis.
- Uji pada perangkat dengan konfigurasi berbeda untuk memastikan pemisahan konfigurasi dibuat dengan benar dan tidak ada sumber daya yang hilang.
- Jaga keamanan kunci unggahan Anda. Meskipun Google mengelola kunci penandatanganan aplikasi, kunci upload Anda mengautentikasi identitas Anda sebagai pengembang.
Masa Depan Distribusi Aplikasi
Format App Bundle terus berkembang. Google telah memperkenalkan fitur seperti Play Asset Delivery untuk aset game berukuran besar, SDK Runtime untuk SDK periklanan, dan peningkatan dukungan untuk konfigurasi Wear OS dan Android TV. Trennya mengarah pada pengiriman komponen aplikasi yang lebih terperinci dan sesuai permintaan.
Bagi pengguna, hal ini berarti konsep file aplikasi tunggal yang mandiri menjadi kurang umum untuk aplikasi Play Store. Memahami format seperti XAPK, APKS, dan alat yang tersedia untuk menggunakannya menjadi semakin penting bagi siapa saja yang mengelola aplikasi di luar alur standar Play Store.
Kapan Harus Mempertahankan AAB vs. Kapan Membuat APK Universal
Android App Bundle mewakili perubahan mendasar dalam cara aplikasi dikemas dan dikirimkan. Meskipun memberikan manfaat nyata dalam hal ukuran unduhan dan efisiensi pengiriman, hal ini juga menimbulkan kompleksitas bagi pengguna yang berbagi aplikasi atau menginstalnya dari sumber alternatif. Memahami cara kerja AAB, cara menghasilkan APK terpisah, dan alat apa saja yang tersedia untuk mengonversi antarformat memberi Anda apa yang Anda perlukan untuk memilih format yang tepat dan mengonversinya dengan percaya diri.
Pengembang memanfaatkan AAB untuk mengoptimalkan cara penyampaian aplikasi; sebagian besar pengguna sehari-hari hanya menemuinya ketika mereka mencoba memasang sesuatu di perangkat yang tidak memiliki akses Play Store. Apa pun yang terjadi, hal yang perlu diingat adalah sederhana: AAB adalah format penerbitan, bukan format instalasi, dan ada alat yang menjembatani kesenjangan di antara keduanya.