Pratinjau Developer Android 11 kedua kini tersedia, uji dan sampaikan masukan Anda.

Mengurangi ukuran aplikasi instan

Google Play Instan memberikan pengalaman native yang kaya dengan mengetuk link web. Pengguna dapat mencoba aplikasi tanpa menginstal terlebih dahulu, sehingga menciptakan tingkat dan kualitas interaksi yang lebih tinggi. Akan tetapi, agar aplikasi instan dapat dimuat secepat halaman web seluler biasa, Anda perlu menciptakan aplikasi instan yang terstruktur baik dan efisien. Semakin kecil biner aplikasi instan, semakin cepat aplikasi instan dimuat dan semakin lancar pengalaman pengguna.

Dokumen ini menyampaikan praktik terbaik untuk mengelola struktur dan ukuran biner aplikasi agar memungkinkan pengalaman aplikasi instan yang lancar. Anda juga dapat menerapkan praktik yang sama ini untuk menguntungkan aplikasi yang dapat diinstal.

Faktor ulang menjadi beberapa modul fitur

Peningkatan terbesar pada ukuran biner aplikasi terjadi saat Anda memfaktor ulang aplikasi menjadi beberapa modul fitur. Mulai dengan modul fitur dasar, lalu ekstrak alur kerja yang temanya terkait menjadi modul fiturnya sendiri. Tetapkan aktivitas awal dan URL unik ke tiap modul agar pengguna dapat berhasil menyelesaikan alur kerja modul.

Saat Anda membuat modul fitur, pertahankan agar modul fitur dasar tetap sekecil mungkin. Secara khusus perhatikan bagian-bagian aplikasi yang memerlukan akses ke library dependen. Jika hanya satu modul menggunakan library yang disediakan, impor library tersebut dalam modul fitur itu sendiri, bukan modul fitur dasar. Perlu diingat bahwa, untuk merilis aplikasi bagi modul fitur tertentu, ukuran total modul fitur tersebut dan modul fitur dasar harus kurang dari 4 MB.

Praktik terbaik

Saat memfaktor ulang aplikasi, ingat praktik terbaik berikut:

Gunakan codebase yang sama untuk kedua jenis aplikasi
Anda dapat menyederhanakan proses pengelolaan project dengan menggunakan codebase modular yang sama untuk membuat aplikasi yang diinstal dan aplikasi instan.
Desain untuk beberapa modul fitur
Meski aplikasi hanya memiliki satu alur kerja dan hanya memerlukan satu modul fitur untuk sekarang, sebaiknya desain untuk beberapa modul fitur. Dengan demikian, Anda dapat menambahkan modul yang sudah ada ke aplikasi tanpa memengaruhi ukuran modul fitur asal.
Jangan berfokus pada batas ukuran modul fitur di awal
Batas ukuran modul fitur tidak berlaku untuk biner yang dibuat secara lokal. Anda juga dapat merilis aplikasi instan melalui track uji internal, yang menerapkan batas 10 MB pada ukuran modul fitur. Hanya track alfa dan produksi yang menerapkan batas 4 MB.

Update resource aplikasi

Beberapa aplikasi, terutama aplikasi yang memiliki histori codebase yang lebih lama, berisi resource yang tidak digunakan lagi oleh biner aplikasi. Saat mencari cara untuk membuat modul aplikasi lebih kecil, pertimbangkan sumber-sumber umum kode yang tidak diperlukan berikut.

Kurangi ukuran file gambar

Anda dapat mengurangi secara signifikan ukuran total resource yang dapat digambar pada aplikasi dengan menggunakan format file WebP dan bukan PNG. Google Play Instan menyediakan dukungan lengkap untuk WebP, termasuk transparansi dan kompresi lossless, sehingga kualitas gambar tetap sama.

Jika memungkinkan, hapus semua persyaratan kompatibilitas mundur untuk menggunakan gambar PNG lainnya. Jika gambar PNG harus digunakan, tempatkan dalam modul yang digunakan untuk membuat dan menginstal aplikasi.

Hapus bahasa ekstra

Jika aplikasi mendukung beberapa bahasa, kurangi resource yang dilokalkan sebanyak mungkin. Langkah ini sangat berguna untuk diselesaikan jika Anda menggunakan library "app compat", seperti android.support.v7.appcompat. Library ini mencakup pesan dalam banyak bahasa, beberapa di antaranya mungkin tidak didukung oleh aplikasi.

Untuk mempelajari lebih lanjut, lihat cara menghapus resource alternatif yang tidak digunakan, terutama bahasa yang tidak digunakan.

Hapus file ekstra

Aplikasi mungkin tidak lagi menggunakan beberapa resource yang telah diimpor ke project. Guna membantu menghapus resource ini, Android Studio memiliki pemeriksaan Lint untuk situasi khusus ini. Untuk menggunakan alat ini, selesaikan langkah-langkah berikut:

  1. Tekan Control+Alt+Shift+I (Command+Alt+Shift+I di Mac OS).
  2. Pada dialog yang muncul, ketik "unused resources".
  3. Pilih opsi Resource yang tidak digunakan untuk memulai proses pemeriksaan penggunaan resource.

Jika resource besar tetap ada di aplikasi, pertimbangkan apakah memungkinkan untuk membuka paketnya dari aplikasi dan mendownloadnya sebagai file yang berdiri sendiri setelah pengguna mulai berinteraksi dengan aplikasi. Penundaan pemuatan gambar semacam ini biasanya memerlukan perubahan kode, tetapi dapat secara substansial mengurangi ukuran file instan dengan hanya mendownload resource yang secara eksplisit diminta oleh pengguna.

Hapus llibrary yang tidak digunakan

Seiring bertambahnya cakupan aplikasi, aplikasi dapat berisi dependensi dalam jumlah yang mengejutkan, terutama salah satu jenis berikut:

  • Library native: Library yang berisi kode native yang tidak pernah dijalankan oleh aplikasi.
  • Dependensi transitif: Library yang diandalkan oleh library yang diimpor oleh aplikasi.

Android Studio memiliki beberapa alat yang berguna untuk mengidentifikasi dependensi yang tidak terkait dalam project aplikasi:

Library eksternal

Tampilan Project Android Studio mencakup bagian Library Eksternal.

Bagian ini berisi setiap library yang digunakan oleh aplikasi, termasuk kode native dan semua dependensi transitif. Dalam tampilan ini, cari library yang tidak digunakan atau duplikat yang tidak diperlukan oleh aplikasi.

Penganalisis APK

Anda dapat menggunakan alat Penganalisis APK untuk membandingkan build yang berbeda, termasuk build aplikasi instan.

Setelah Anda menentukan lilbrary mana yang tidak diperlukan oleh aplikasi, keluarkan library tersebut dengan menambahkan baris yang serupa dengan berikut ke file build Gradle:

<feature_module>/build.gradle

dependencies {
        implementation('some-important-but-large-library') {
            exclude group: 'com.example.imgtools', module: 'native'
        }
    }
    

Untuk informasi selengkapnya tentang cara mengurangi ukuran impor total dependensi aplikasi, lihat panduan Gradle untuk Pengelolaan Dependensi.