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 berarti Anda dapat memodularisasi sebuah fitur sebagai modul fitur, tetapi tidak mengaktifkan opsi lanjutan agar fitur tersebut tersedia saat pengguna menginstal aplikasi Anda.

Selain itu, modul fitur yang dikonfigurasi untuk dikirim saat penginstalan memiliki opsi untuk di-uninstal di lain waktu jika tidak diperlukan lagi. Untuk itu, modul ini perlu disetel sebagai dapat dihapus.

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 baru. 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. Di bagian Configure your new module, selesaikan langkah-langkah berikut:
    1. Dari menu dropdown, 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 Level API minimum 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 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 serupa dengan yang ada di modul aplikasi standar.

Membuat modul yang dikirim saat penginstalan dapat dihapus

Mungkin bermanfaat jika membuat modul fitur untuk dikirim saat penginstalan yang memiliki opsi untuk di-uninstal di lain waktu jika tidak diperlukan lagi. Misalnya, untuk mengurangi ukuran aplikasi yang terinstal, Anda dapat memodularisasi konten yang diperlukan untuk pelatihan atau orientasi, lalu meng-uninstal modul fitur menggunakan Play Core API setelah pengguna disiapkan untuk menggunakan aplikasi Anda.

Modul saat penginstalan tidak dapat dihapus secara default. Untuk menandai modul sebagai dapat dihapus dan memungkinkannya di-uninstal, tambahkan tag removable, lalu setel nilainya ke true:

<dist:module ... >
  <dist:delivery>
      <dist:install-time>
          <dist:removable dist:value="true"/>
      </dist:install-time>
  </dist:delivery>
</dist:module>