Mengonfigurasi pengiriman saat penginstalan

Modul fitur memungkinkan Anda memisahkan fitur dan resource tertentu dari modul dasar aplikasi dan menyertakannya dalam app bundle. Kemudian, Anda dapat menyesuaikan opsi pengiriman untuk mengontrol kapan dan bagaimana perangkat yang menjalankan Android 5.0 (API level 21) atau lebih tinggi mendownload fitur aplikasi Anda.

Perlu diingat bahwa jenis modularisasi ini membutuhkan lebih banyak upaya dan mungkin pemfaktoran ulang kode aplikasi yang sudah ada, jadi pertimbangkan dengan hati-hati fitur aplikasi yang paling diuntungkan dari segi ketersediaannya bagi pengguna on demand.

Jika ingin memodularisasi fitur aplikasi secara bertahap dari waktu ke waktu, tanpa mengubah perilaku aplikasi atau menyesuaikan opsi pengiriman lanjutan, Anda dapat melakukannya dengan membuat modul fitur yang dikonfigurasi untuk dikirim saat aplikasi diinstal. Itu berari Anda dapat memodularisasi sebuah fitur sebagai modul fitur, tetapi tidak mengaktifkan opsi lanjutan agar fitur tersebut tersedia saat pengguna menginstal aplikasi Anda.

Selain itu, ada baiknya Anda membuat modul fitur yang dikonfigurasi untuk dikirim saat penginstalan aplikasi, karena Anda memiliki opsi untuk meng-uninstal fitur tersebut di lain waktu jika tidak diperlukan lagi. Misalnya, untuk mengurangi ukuran terinstal di aplikasi, Anda dapat memodularisasi konten yang diperlukan untuk pelatihan atau orientasi, lalu meng-uninstal modul fitur setelah pengguna siap menggunakan aplikasi Anda.

Bagian ini menjelaskan cara membuat modul fitur untuk dikirim saat penginstalan. Sebelum memulai, pastikan Anda menggunakan Android Studio 3.5 atau lebih tinggi dan Android Gradle Plugin 3.5.0 atau lebih tinggi.

Mengonfigurasi modul baru untuk pengiriman waktu penginstalan

Cara termudah untuk membuat modul fitur baru adalah dengan menggunakan Android Studio 3.5 atau yang lebih tinggi. Karena modul fitur memiliki dependensi melekat pada modul aplikasi dasar, Anda hanya dapat menambahkannya ke project aplikasi yang sudah ada.

Untuk menambahkan modul fitur ke project aplikasi Anda menggunakan Android Studio, lakukan langkah-langkah berikut:

  1. Buka project aplikasi Anda di IDE jika belum melakukannya.
  2. Dari panel menu, pilih File > New > New Module
  3. Pada dialog Create New Module, pilih Dynamic Feature Module, lalu klik Next.
  4. Pada bagian Configure your new module, lakukan langkah-langkah berikut:
    1. Dari menu drop down, pilih Base application module untuk project aplikasi Anda.
    2. Tentukan Module name. IDE menggunakan nama ini untuk mengidentifikasi modul sebagai subproject Gradle dalam file setelan Gradle Anda. Jika Anda membuat app bundle, Gradle akan menggunakan elemen terakhir dari nama subproject untuk memasukkan atribut <manifest split> dalam manifes modul fitur.
    3. Tentukan package name modul. Secara default, Android Studio menyarankan nama paket dengan menggabungkan nama paket root modul dasar dan nama modul yang Anda tentukan di langkah sebelumnya.
    4. Pilih Minimum API level yang Anda inginkan untuk didukung modul. Nilai ini harus sesuai dengan yang ada di modul dasar.
  5. Klik Next.
  6. Pada bagian Module Download Options, lakukan langkah-langkah berikut:

    1. Tentukan Module title dengan panjang maksimum 50 karakter. Modul dasar aplikasi Anda harus menyertakan judul modul sebagai resource string, yang dapat Anda terjemahkan. Saat membuat modul menggunakan Android Studio, IDE akan menambahkan resource string ke modul dasar dan memasukkan entri berikut dalam manifes modul fitur:

      <dist:module
          ...
          dist:title="@string/feature_title">
      </dist:module>
      
    2. Di menu drop-down pada bagian Install-time inclusion, pilih Include module at install-time. Android Studio memasukkan kode berikut ke dalam manifes modul untuk merefleksikan pilihan Anda:

      <dist:module ... >
        <dist:delivery>
            <dist:install-time />
        </dist:delivery>
      </dist:module>
      

      Jika Anda ingin mempelajari cara membuat modul fitur yang dapat Anda download setelah menginstal aplikasi, baca mengonfigurasi pengiriman on demand.

    3. Centang kotak di sebelah Fusing jika Anda ingin modul ini tersedia untuk perangkat yang menjalankan Android 4.4 (API level 20) atau yang lebih rendah dan termasuk dalam multi-APK. Itu berarti Anda dapat menghilangkannya dari perangkat yang tidak mendukung download dan penginstalan APK terpisah. Android Studio memasukkan kode berikut ke dalam manifes modul untuk merefleksikan pilihan Anda:

      <dist:module ...>
          <dist:fusing dist:include="true | false" />
      </dist:module>
      
  7. Klik Finish.

Setelah Android Studio selesai membuat modul Anda, periksa sendiri kontennya dari panel Project (pilih View > Tool Windows > Project dari panel menu). Kode, resource, dan organisasi default harus sama dengan modul aplikasi standar.

Konfigurasi build modul fitur

Saat Anda membuat modul fitur baru menggunakan Android Studio, IDE akan menerapkan plugin Gradle berikut ke file modul build.gradle.

// The following applies the dynamic-feature plugin to your feature module.
// The plugin includes the Gradle tasks and properties required to configure and build
// an app bundle that includes your feature module.

apply plugin: 'com.android.dynamic-feature'

Banyak properti yang tersedia untuk plugin aplikasi standar juga tersedia untuk modul fitur. Bagian berikut ini menjelaskan properti yang boleh dan tidak boleh Anda sertakan dalam konfigurasi build modul fitur.

Yang tidak disertakan dalam konfigurasi build modul fitur

Karena setiap modul fitur bergantung pada modul dasar, modul fitur ini juga mewarisi konfigurasi tertentu. Jadi, Anda harus menghapus hal berikut dalam file build.gradle modul fitur:

  • Konfigurasi penandatanganan: App bundle ditandatangani menggunakan konfigurasi penandatanganan yang Anda tetapkan dalam modul dasar.
  • Properti minifyEnabled: Anda dapat mengaktifkan penyingkatan kode untuk seluruh project aplikasi hanya dari konfigurasi build modul dasar. Jadi, Anda harus menghapus properti ini dari modul fitur. Namun, Anda dapat menetapkan aturan ProGuard tambahan untuk setiap modul fitur.
  • versionCode dan versionName: Saat membuat app bundle, Gradle menggunakan informasi versi aplikasi yang disediakan modul dasar. Anda harus menghapus properti ini dari file build.gradle modul fitur Anda.

Menetapkan hubungan ke modul dasar

Saat membuat modul fitur, Android Studio akan membuatnya terlihat di modul dasar dengan menambahkan properti android.dynamicFeatures ke file build.gradle modul dasar, seperti yang ditunjukkan di bawah ini:

// In the base module’s build.gradle file.
android {
    ...
    // Specifies feature modules that have a dependency on
    // this base module.
    dynamicFeatures = [":dynamic_feature", ":dynamic_feature2"]
}

Selain itu, Android Studio menyertakan modul dasar sebagai dependensi modul fitur, seperti yang ditunjukkan di bawah ini:

// In the feature module’s build.gradle file:
...
dependencies {
    ...
    // Declares a dependency on the base module, ':app'.
    implementation project(':app')
}

Menentukan aturan ProGuard tambahan

Meski hanya konfigurasi build modul dasar yang dapat mengaktifkan penyingkatan kode untuk project aplikasi, Anda dapat memberikan aturan ProGuard khusus dengan setiap modul fitur menggunakan properti proguardFiles, seperti ditunjukkan di bawah ini.

android.buildTypes {
     release {
         // You must use the following property to specify additional ProGuard
         // rules for feature modules.
         proguardFiles 'proguard-rules-dynamic-features.pro'
     }
}

Perhatikan bahwa aturan ProGuard ini akan digabung dengan aturan dari modul lain (termasuk modul dasar) pada waktu build. Jadi, meskipun setiap modul fitur dapat menetapkan sekumpulan aturan baru, aturan tersebut berlaku untuk semua modul dalam project aplikasi.

Men-deploy aplikasi

Saat mengembangkan aplikasi yang menyertakan modul fitur, Anda dapat men-deploy aplikasi Anda ke perangkat yang terhubung seperti biasanya dengan memilih Run > Run dari panel menu (atau dengan mengeklik Run di toolbar).

Jika project aplikasi Anda menyertakan satu atau beberapa modul fitur, Anda dapat memilih fitur yang akan disertakan saat men-deploy aplikasi dengan mengubah konfigurasi run/debug yang ada sebagai berikut:

  1. Dari panel menu, pilih Run > Edit Configurations.
  2. Dari panel kiri dialog Run/Debug Configurations, pilih konfigurasi Android App yang Anda inginkan.
  3. Di bagian Dynamic features to deploy di tab General, centang kotak di samping setiap modul fitur yang ingin Anda sertakan saat men-deploy aplikasi.
  4. Klik OK.

Secara default, Android Studio tidak men-deploy aplikasi Anda menggunakan app bundle. Sebaliknya, IDE membuat dan menginstal APK ke perangkat Anda yang dioptimalkan untuk kecepatan deploy, bukan ukuran APK. Untuk mengonfigurasi Android Studio agar dapat membuat dan men-deploy APK dan pengalaman instan dari app bundle, modifikasi konfigurasi run/debug Anda.

Referensi lainnya

Untuk mempelajari lebih lanjut cara menggunakan modul fitur, lihat referensi berikut.

Entri blog

Video