0Pricing
Android Academy · Pelajaran

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, c untuk 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 assembleRelease

Memeriksa 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.apks

Menghapus 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:

  • versionCode sudah dinaikkan dan versionName sudah diperbarui.
  • isMinifyEnabled dan isShrinkResources aktif untuk rilis.
  • Aturan keep sudah ditambahkan untuk semua library berbasis refleksi.
  • targetSdk memenuhi 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 release mengaktifkan R8 melalui isMinifyEnabled dan isShrinkResources untuk mengecilkan, mengaburkan, dan mengoptimalkan kode.
  • Aturan keep melindungi kode berbasis refleksi agar tidak dihapus.
  • Selalu naikkan versionCode dan perbarui versionName.
  • Bangun dengan ./gradlew bundleRelease dan 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

  1. Menyiapkan Build Rilis
  2. Penandatanganan Aplikasi
  3. Play Console dan Listing
  4. Peluncuran Bertahap dan Pembaruan
← Kembali ke Android Academy