App bundle berbeda dengan APK karena Anda tidak dapat men-deploynya ke perangkat. Sebaliknya, ini adalah format publikasi yang menyertakan semua kode dan resource yang dikompilasi aplikasi Anda dalam satu artefak build. Jadi, setelah Anda mengupload app bundle yang ditandatangani, Google Play memiliki semua yang diperlukannya untuk membuat dan menandatangani APK aplikasi Anda, dan menayangkannya kepada pengguna.
Memulai
Sebagian besar project aplikasi tidak memerlukan banyak upaya untuk mendukung Android App Bundle.
Ini karena modul yang menyertakan kode dan resource untuk APK
dasar aplikasi Anda adalah modul aplikasi standar, yang didapatkan secara default saat Anda
membuat project aplikasi baru di Android Studio.
Artinya, modul yang menerapkan plugin application
di bawah ini ke
File build.gradle
menyediakan kode dan resource untuk fungsi dasar
aplikasi Anda.
Groovy
// The standard application plugin creates your app's base module. plugins { id 'com.android.application' }
Kotlin
plugins { // The standard application plugin creates your app's base module. id("com.android.application") }
Selain menyediakan fungsi inti untuk aplikasi Anda, modul dasar juga menyediakan banyak konfigurasi build dan entri manifes yang memengaruhi seluruh project aplikasi.
Konfigurasi build modul dasar
Untuk sebagian besar project aplikasi yang ada, Anda tidak perlu mengubah apa pun dalam konfigurasi build modul dasar. Namun, jika Anda mempertimbangkan untuk modul fitur ke project aplikasi Anda atau jika Anda sebelumnya merilis aplikasi menggunakan multi-APK, ada beberapa aspek pada konfigurasi build modul dasar yang harus Anda ingat.
Kode versi dan update aplikasi
Dengan Android App Bundle, Anda tidak perlu lagi mengelola kode versi untuk beberapa APK yang diupload ke Google Play. Anda cukup mengelola satu kode versi dalam modul dasar aplikasi, seperti yang ditunjukkan di bawah ini:
// In your base module build.gradle file
android {
defaultConfig {
…
// You specify your app’s version code only in the base module.
versionCode 5
versionName "1.0"
}
}
Setelah mengupload app bundle, Google Play akan menggunakan kode versi dalam modul dasar Anda untuk menetapkan kode versi yang sama pada semua APK yang dihasilkan dari bundle tersebut. Artinya, jika perangkat mendownload dan menginstal aplikasi Anda, semua APK terpisah untuk aplikasi tersebut akan memiliki kode versi yang sama.
Jika ingin mengupdate aplikasi dengan kode atau resource baru, Anda harus mengupdate kode versi di modul dasar aplikasi, dan mem-build app bundle baru yang lengkap. Ketika Anda mengupload app bundle tersebut ke Google Play, akan dihasilkan seperangkat APK baru berdasarkan kode versi yang ditentukan modul dasar. Selanjutnya, saat pengguna mengupdate aplikasi Anda, Google Play akan memberikan versi terbaru dari semua APK yang saat ini diinstal pada perangkat. Artinya, semua APK yang diinstal akan diupdate ke kode versi baru.
Pertimbangan lainnya
- Penandatanganan aplikasi: Jika Anda menyertakan informasi penandatanganan di file build, Anda hanya boleh menyertakannya dalam file konfigurasi build modul dasar. Untuk informasi selengkapnya, lihat Konfigurasikan Gradle untuk menandatangani aplikasi Anda.
- Penyingkatan kode: Jika Anda ingin
mengaktifkan penyingkatan kode untuk
seluruh project aplikasi (termasuk modul fitur), Anda harus melakukannya
dari file build.gradle modul dasar. Artinya, Anda dapat
menyertakan aturan ProGuard kustom dalam modul fitur,
tetapi
minifyEnabled
properti dalam konfigurasi build modul fitur diabaikan. - Blok
splits
diabaikan: Saat membuat app bundle, Gradle akan mengabaikan properti dalam blokandroid.splits
. Jika ingin mengontrol jenis APK konfigurasi yang didukung oleh app bundle Anda, gunakan sajaandroid.bundle
untuk menonaktifkan jenis APK konfigurasi. - Pembuatan versi aplikasi: Modul dasar menentukan kode dan nama versi untuk seluruh project aplikasi Anda. Untuk mengetahui informasi lebih lanjut, baca bagian tentang cara Mengelola update aplikasi.
Mengaktifkan ulang atau menonaktifkan jenis APK konfigurasi
Secara default, app bundle yang Anda buat mendukung pembuatan APK
konfigurasi untuk setiap kumpulan resource bahasa, resource kepadatan layar, dan library
ABI. Dengan menggunakan blok android.bundle
dalam file build.gradle
modul dasar, seperti yang ditunjukkan di bawah ini, Anda dapat menonaktifkan dukungan untuk satu atau beberapa
jenis APK konfigurasi:
Groovy
android { // When building Android App Bundles, the splits block is ignored. // You can remove it, unless you're going to continue to build multiple // APKs in parallel with the app bundle splits {...} // Instead, use the bundle block to control which types of configuration APKs // you want your app bundle to support. bundle { language { // This property is set to true by default. // You can specify `false` to turn off // generating configuration APKs for language resources. // These resources are instead packaged with each base and // feature APK. // Continue reading below to learn about situations when an app // might change setting to `false`, otherwise consider leaving // the default on for more optimized downloads. enableSplit = false } density { // This property is set to true by default. enableSplit = true } abi { // This property is set to true by default. enableSplit = true } } }
Kotlin
android { // When building Android App Bundles, the splits block is ignored. // You can remove it, unless you're going to continue to build multiple // APKs in parallel with the app bundle splits {...} // Instead, use the bundle block to control which types of configuration APKs // you want your app bundle to support. bundle { language { // This property is set to true by default. // You can specify `false` to turn off // generating configuration APKs for language resources. // These resources are instead packaged with each base and // feature APK. // Continue reading below to learn about situations when an app // might change setting to `false`, otherwise consider leaving // the default on for more optimized downloads. enableSplit = false } density { // This property is set to true by default. enableSplit = true } abi { // This property is set to true by default. enableSplit = true } } }
Menangani perubahan bahasa
Google Play menentukan resource bahasa yang akan diinstal dengan aplikasi berbasis pada pilihan bahasa di setelan perangkat pengguna. Pertimbangkan pengguna yang mengubah bahasa sistem defaultnya setelah mendownload aplikasi Anda. Jika aplikasi Anda mendukung bahasa tersebut, perangkat akan meminta dan mendownload APK konfigurasi untuk resource bahasa tersebut dari Google Play.
Untuk aplikasi yang menawarkan pemilih bahasa di dalam aplikasi dan secara dinamis
mengubah bahasa aplikasi, terlepas dari setelan bahasa tingkat sistem,
Anda harus membuat beberapa perubahan untuk mencegah
error karena sumber daya yang hilang. Keduanya
tetapkan properti android.bundle.language.enableSplit
ke false
, atau pertimbangkan
menerapkan download bahasa on-demand menggunakan library Play Core sebagai
yang dijelaskan dalam Mendownload resource bahasa tambahan