Bagaimana Cara Konfigurasi Modul Dasar pada Android Studio?

Sebagian besar project aplikasi tidak membutuhkan banyak upaya untuk mendukung Pengiriman Dinamis. Hal ini disebabkan karena modul yang menyertakan kode dan resource untuk APK dasar aplikasi Anda adalah modul aplikasi standar, yang didapatkan secara default saat membuat project aplikasi baru di Android Studio. Artinya, modul yang menerapkan plugin aplikasi di bawah ini ke file build.gradle-nya menyediakan kode dan resource untuk fungsi dasar aplikasi Anda.
// The standard application plugin creates your app's base module.
    apply plugin: 'com.android.application'
    
Jika Anda ingin mengurangi ukuran download awal aplikasi Anda, penting untuk diingat bahwa semua kode dan resource yang disertakan dalam modul ini termasuk dalam APK dasar aplikasi Anda.
Selain menyediakan fungsionalitas inti untuk aplikasi Anda, modul dasar juga menyediakan banyak konfigurasi build dan entri manifes yang memengaruhi seluruh project aplikasi Anda. Misalnya, penandatanganan app bundle Anda ditentukan oleh informasi yang diberikan untuk modul dasar, dan pembuatan versi untuk semua APK aplikasi Anda ditetapkan pada atribut versionCode di manifes modul dasar Anda. Aspek penting modul dasar lainnya dijelaskan di bawah ini.

Manifes modul dasar

Manifes untuk modul dasar aplikasi Anda mirip dengan modul aplikasi lainnya. Harap diingat, ketika membuat APK basis aplikasi Anda, Google Play akan menggabungkan manifes untuk semua modul ke dalam APK dasar. Jadi, jika Anda mempertimbangkan penambahan modul fitur dinamis ke project aplikasi, ada beberapa aspek manifes APK dasar yang harus diperhatikan:
  • Karena selalu diinstal terlebih dahulu, APK dasar harus menyediakan titik masuk utama untuk aplikasi Anda. Artinya, APK dasar harus menyatakan aktivitas dengan filter intent berikut:
    <intent-filter>
             <action android:name="android.intent.action.MAIN" />
             <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        
  • Saat mendownload modul fitur dinamis on-demand, perangkat yang menjalankan Android 6.0 (API level 23) dan lebih rendah mewajibkan aplikasi untuk dimulai ulang sebelum menyelesaikan instalasi modul baru. Namun, jika ingin langsung dapat mengakses kode dan resource modul setelah didownload, Anda harus menyertakan dukungan untuk library SplitCompat di manifes Anda. Untuk mempelajari lebih lanjut, baca Kode akses dan resource dari modul yang didownload.
  • Demikian pula, pada perangkat yang menjalankan Android 6.0 (API level 23) dan lebih rendah, aplikasi harus dimulai ulang sebelum platform dapat menerapkan entri manifes yang baru. Jadi, jika Anda memerlukan izin atau layanan tertentu segera setelah modul fitur dinamis didownload, pertimbangkan untuk menyertakannya dalam manifes modul dasar Anda.
  • Android App Bundle mencakup dukungan untuk library native yang tidak dikompresi. Jadi, jika Anda menyertakan library native dalam aplikasi dan ingin mengurangi penggunaan disk, sertakan kode berikut dalam manifes modul dasar Anda:
    <application
            android:extractNativeLibs="false"
            ... >
        

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 penambahan modul fitur dinamis pada project aplikasi Anda, ada beberapa aspek konfigurasi build modul dasar yang perlu diperhatikan:
  • Penandatanganan aplikasi: Anda tidak perlu menyertakan informasi penandatanganan dalam file konfigurasi build, kecuali Anda ingin mem-build app bundle dari command line. Namun, jika menyertakan informasi penandatanganan, Anda harus memasukkannya hanya dalam file konfigurasi build modul dasar. Untuk informasi selengkapnya, baca Konfigurasi Gradle untuk menandatangani aplikasi Anda.
  • Penyusutan kode: Jika ingin mengaktifkan penyusutan kode untuk seluruh project aplikasi Anda (termasuk modul fitur dinamisnya), Anda harus melakukannya dari file build.gradle modul dasar. Artinya, Anda dapat menyertakan aturan ProGuard kustom dalam modul fitur dinamis, namun properti minifyEnabled dalam konfigurasi build modul fitur dinamis diabaikan.
  • Blok splits diabaikan: Saat mem-build app bundle, Gradle akan mengabaikan properti di blok android.splits. Jika ingin mengontrol jenis konfigurasi APK yang didukung app bundle Anda, gunakan android.bundle untuk menonaktifkan jenis APK konfigurasi.
  • Pembuatan versi aplikasi: Modul dasar menentukan kode dan nama versi untuk seluruh project aplikasi Anda. Untuk informasi lebih lanjut, baca bagian tentang cara Mengelola update aplikasi.

Mengaktifkan ulang atau menonaktifkan jenis APK konfigurasi

Secara default, saat Anda mem-build app bundle, paket ini mendukung pembuatan APK konfigurasi untuk setiap kumpulan resource bahasa, resource kepadatan layar, dan library ABI. Dengan menggunakan blok android.bundle di file build.gradle modul dasar Anda, seperti yang ditunjukkan di bawah ini, Anda dapat menonaktifkan dukungan untuk satu atau beberapa jenis APK konfigurasi:
android {
        // When building Android App Bundles, the splits block is ignored.
        splits {...}

        // Instead, use the bundle block to control which types of configuration APKs
        // you want your app bundle to support.
        bundle {
            language {
                // Specifies that the app bundle should not support
                // configuration APKs for language resources. These
                // resources are instead packaged with each base and
                // dynamic feature APK.
                enableSplit = false
            }
            density {
                // This property is set to true by default.
                enableSplit = true
            }
            abi {
                // This property is set to true by default.
                enableSplit = true
            }
        }
    }
    

Mengelola update aplikasi

Dengan Android App Bundle dan Pengiriman Dinamis, Anda tidak perlu lagi mengelola kode versi untuk beberapa APK yang diupload ke Google Play. Sebagai gantinya, 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 Anda, 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 Anda dengan kode atau resource baru, Anda harus mengupdate kode versi di modul dasar aplikasi, dan mem-build app bundle baru yang lengkap. Jika Anda mengunggah 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.

Mendownload APK konfigurasi tambahan


Satu pengecualian untuk aliran update yang dijelaskan di atas adalah ketika aplikasi yang diinstal membutuhkan APK konfigurasi tambahan. Pertimbangkan pengguna yang mengubah bahasa sistem defaultnya setelah mendownload aplikasi Anda. Jika aplikasi Anda mendukung bahasa tersebut, perangkat akan meminta dan mendownload APK konfigurasi tambahan untuk resource bahasa tersebut dari Google Play. Namun, jenis update untuk aplikasi ini tidak mengubah kode versinya, jadi perangkat hanya mendownload dan menginstal APK konfigurasi yang diperlukan.

sumber: https://developer.android.com/studio/projects/dynamic-delivery/configure-base

Komentar

Postingan Populer