Menyiapkan Build Rilis
Bundel aplikasi dan pengecilan ukuran.
Menyiapkan Build Rilis adalah pelajaran Android Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Android Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Android Academy mencakup 4 pelajaran total.
Dari Debug ke Rilis
Setiap hari Anda menjalankan build debug dari Android Studio. Namun Google Play memerlukan build release: lebih kecil, lebih cepat, dan tidak ditandai sebagai dapat di-debug.
Build rilis berbeda dalam tiga hal utama: build ini ditandatangani dengan kunci rilis Anda, memiliki debuggable false, dan biasanya dipangkas untuk menghapus kode serta resource yang tidak digunakan.
Dalam pelajaran ini, Anda akan menyiapkan build rilis yang benar dan menghasilkan file yang diinginkan Google Play: Android App Bundle (.aab).
Jenis Build di Gradle
Gradle secara default mendefinisikan dua jenis build: debug dan release. Anda mengonfigurasinya di build.gradle.kts modul Anda.
Blok release adalah tempat Anda mengaktifkan pengoptimalan. Perhatikan isMinifyEnabled dan isShrinkResources di bawah ini — keduanya adalah sakelar yang membuat aplikasi Anda lebih kecil.
android {
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
}AAB vs APK
Google Play mengharuskan Android App Bundle (.aab), bukan .apk biasa.
- .apk berisi kode dan resource untuk setiap perangkat — semua kepadatan layar, semua arsitektur CPU, dan semua bahasa.
- .aab diunggah ke Play, lalu Play membuat APK kecil yang dioptimalkan untuk perangkat setiap pengguna.
Hasilnya: pengguna mengunduh lebih sedikit data dan aplikasi Anda terpasang dengan ukuran lebih kecil. Anda tetap menggunakan APK untuk pengujian langsung di ponsel, tetapi memublikasikan AAB.
Apa Itu R8 / Pemangkasan?
Saat isMinifyEnabled = true, Android Studio menjalankan R8. R8 melakukan tiga pekerjaan dalam satu tahap:
- Pemangkasan — menghapus kelas dan metode yang tidak pernah dipanggil oleh aplikasi Anda.
- Pengaburan — mengganti nama kelas dan metode menjadi nama pendek seperti
a,b,cuntuk menghemat ruang dan menghambat rekayasa balik. - Pengoptimalan — menyisipkan dan menulis ulang kode agar berjalan lebih cepat.
Pemangkasan resource (isShrinkResources = true) juga menghapus drawable, tata letak, dan string yang tidak digunakan.
Aturan Keep dengan ProGuard
R8 terkadang menghapus atau mengganti nama kode yang hanya dirujuk melalui refleksi (misalnya oleh Gson, Retrofit, atau serialisasi). Lindungi kode tersebut dengan aturan keep di proguard-rules.pro.
Aturan keep memberi tahu R8: "jangan mengganti nama atau menghapus class ini."
# proguard-rules.pro
# Keep data classes used with Gson reflection
-keep class com.example.app.model.** { *; }
# Keep Retrofit interface methods
-keepattributes Signature
-keepattributes *Annotation*
# Keep Kotlin metadata used by libraries
-keep class kotlin.Metadata { *; }Memberi Versi pada Aplikasi
Setiap rilis memerlukan dua nilai versi di build.gradle.kts:
versionCode— bilangan bulat yang harus bertambah pada setiap pengunggahan. Play menggunakannya untuk mengetahui build mana yang lebih baru.versionName— string yang mudah dibaca manusia, seperti"1.4.0", yang ditampilkan kepada pengguna.
Jika Anda lupa menaikkan versionCode, Play akan menolak pengunggahan tersebut sebagai duplikat.
android {
defaultConfig {
applicationId = "com.example.app"
minSdk = 24
targetSdk = 35
versionCode = 12
versionName = "1.4.0"
}
}Membangun Bundle di Android Studio
Untuk membuat bundle rilis yang ditandatangani dari UI:
- Buka Build → Generate Signed Bundle / APK.
- Pilih Android App Bundle.
- Pilih (atau buat) keystore dan key Anda.
- Pilih varian build release.
Android Studio menjalankan R8, menandatangani bundle, lalu menempatkan .aab di app/release/. Satu-satunya file itulah yang Anda unggah ke Play.
Membangun dari Baris Perintah
Untuk CI/CD atau skrip, bangun bundle langsung dengan Gradle. Nama tugas mengikuti pola bundle<Variant>.
bundleRelease menghasilkan AAB. File tersebut berada di app/build/outputs/bundle/release/.
# Build a release App Bundle (.aab)
./gradlew bundleRelease
# Output:
# app/build/outputs/bundle/release/app-release.aab
# Build a release APK instead (for direct install/testing)
./gradlew assembleReleaseMemeriksa dan Menguji AAB
Anda tidak dapat memasang .aab langsung di ponsel. Untuk menguji APK yang sama persis dengan yang akan dibuat Play, gunakan bundletool dari Google.
Alat ini membuat APK khusus perangkat dari bundle Anda dan memasangnya di perangkat yang terhubung — cara yang paling mendekati pengunduhan nyata dari Play.
# Generate APKs from the bundle for the connected device
java -jar bundletool.jar build-apks \
--bundle=app-release.aab \
--output=app.apks \
--connected-device
# Install them on the device
java -jar bundletool.jar install-apks --apks=app.apksMenghapus Kode Debug dari Rilis
Build rilis seharusnya tidak mencatat data sensitif atau membiarkan fitur khusus debug tetap aktif. Gunakan BuildConfig.DEBUG untuk membedakan perilaku. Nilainya hanya true dalam build debug.
R8 bahkan dapat menghapus blok yang dilindungi oleh konstanta false, sehingga ukuran aplikasi juga berkurang.
fun setupLogging() {
if (BuildConfig.DEBUG) {
// Verbose logging only in debug builds
Log.d("App", "Debug logging enabled")
Timber.plant(Timber.DebugTree())
} else {
// Release: send to crash reporting only, no console spam
Timber.plant(CrashReportingTree())
}
}Daftar Periksa Kesiapan Rilis
Sebelum membangun bundle final, pastikan:
versionCodesudah dinaikkan danversionNamesudah diperbarui.isMinifyEnableddanisShrinkResourcesaktif untuk rilis.- Aturan keep sudah ditambahkan untuk semua library berbasis refleksi.
targetSdkmemenuhi persyaratan Play saat ini.- Tidak ada pencatatan khusus debug atau endpoint pengujian dalam kode rilis.
- Anda sudah menguji AAB melalui bundletool pada perangkat nyata.
Setelah semua pemeriksaan ini berhasil, .aab Anda siap diunggah.
Pemeriksaan Singkat
Anda menetapkan isMinifyEnabled = true, lalu aplikasi mengalami crash saat rilis dengan error "class not found" dari parser JSON, tetapi berfungsi dengan baik dalam debug. Apa penyebab yang paling mungkin?
Ringkasan: Menyiapkan Build Rilis
Sekarang Anda sudah tahu cara mengubah aplikasi debug menjadi build yang siap dipublikasikan:
- Play memerlukan .aab yang ditandatangani, lalu Play membuat APK untuk setiap perangkat dari bundle tersebut.
- Jenis build
releasemengaktifkan R8 melaluiisMinifyEnableddanisShrinkResourcesuntuk mengecilkan, mengaburkan, dan mengoptimalkan kode. - Aturan keep melindungi kode berbasis refleksi agar tidak dihapus.
- Selalu naikkan
versionCodedan perbaruiversionName. - Bangun dengan
./gradlew bundleReleasedan uji hasilnya dengan bundletool.
Berikutnya: cara kerja penandatanganan yang membuat build ini tepercaya.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Menyiapkan Build Rilis” gratis?
Ya — teks lengkap “Menyiapkan Build Rilis” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Android Academy, upgrade ke CoddyKit PRO. Kursus Android Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Menyiapkan Build Rilis”?
Bundel aplikasi dan pengecilan ukuran. Kamu berlatih Android Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Android Academy?
Tidak diperlukan pengalaman sebelumnya. Android Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Menyiapkan Build Rilis” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Android Academy ini?
Ya. Setiap pelajaran Android Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Menyiapkan Build Rilis
- Penandatanganan Aplikasi
- Play Console dan Listing
- Peluncuran Bertahap dan Pembaruan