Membuat app bundle yang diaktifkan secara instan

Anda membuat pengalaman Google Play Instan dengan menyertakannya sebagai bagian dari Android App Bundle. Paket tersebut dikenal sebagai app bundle yang diaktifkan secara instan. Dokumen ini menunjukkan cara menyiapkan lingkungan pengembangan untuk app bundle yang diaktifkan secara instan, serta cara mengonfigurasi, mem-build, menguji, dan memublikasikan app bundle yang diaktifkan secara instan.

Jika Anda sudah memiliki project aplikasi instan yang menggunakan plugin fitur yang tidak digunakan lagi (com.android.feature), pelajari cara memigrasikan aplikasi instan untuk mendukung Android App Bundle.

Menyiapkan lingkungan pengembangan

Untuk memberikan pengalaman instan dalam app bundle, Anda memerlukan akses ke Google Play Instant Development SDK. Anda dapat menginstal SDK menggunakan salah satu metode berikut:

  • Menginstal Android Studio 3.6 atau versi yang lebih baru. Setelah membuka Android Studio, download SDK Pengembangan Google Play Instant dari tab SDK Tools di SDK Manager.
  • Menginstal dari command line:

    cd path/to/android/sdk/tools/bin && \
      ./sdkmanager 'extras;google;instantapps'
    

Selain itu, jika Anda ingin menguji pengalaman instan secara lokal, dapatkan akses ke perangkat fisik atau virtual.

Mempelajari kondisi eksekusi yang diperlukan

Untuk keamanan tambahan, Google Play Instan menjalankan app bundle yang diaktifkan secara instan dalam jenis sandbox SELinux khusus. Sandbox ini mengizinkan subset izin, serta jenis interaksi yang terbatas dengan aplikasi lain. Bagian berikut menjelaskan karakteristik sandbox ini secara lebih mendetail.

Izin dan operasi yang didukung

App bundle yang diaktifkan secara instan hanya dapat menggunakan izin dari daftar berikut:

Menangani izin umum yang tidak didukung

Berikut adalah daftar izin umum yang tidak didukung yang harus Anda hapus dari aplikasi dan rekomendasi jalur migrasi untuk setiap izinnya:

  • ACCESS_WIFI_STATE: Gunakan ACCESS_NETWORK_STATE, yang akan memberikan informasi yang mirip dengan ACCESS_WIFI_STATE.
  • BILLING: Izin ini tidak digunakan lagi. Gunakan Library Layanan Penagihan Google Play, yang tidak lagi memerlukan izin com.android.vending.BILLING.
  • READ/WRITE_EXTERNAL_STORAGE: Aplikasi instan tidak memiliki akses ke penyimpanan eksternal; gunakan penyimpanan internal sebagai gantinya.
  • com.google.android.c2dm.permission.RECEIVE dan permission.C2D_MESSAGE: C2DM tidak digunakan lagi. Migrasikan ke Firebase Cloud Messaging (FCM). FCM tidak memerlukan izin tambahan untuk berjalan.

Selain itu, app bundle yang diaktifkan secara instan tidak dapat melakukan hal berikut:

Mengakses aplikasi terinstal

Saat mengembangkan pengalaman instan, perlu diingat bahwa aplikasi tidak dapat berinteraksi dengan aplikasi terinstal di suatu perangkat kecuali jika salah satu dari kondisi berikut benar:

  • Satu atau beberapa aktivitas dalam aplikasi terinstal telah menetapkan elemen android:visibleToInstantApps-nya ke true - Elemen ini tersedia untuk aplikasi yang menjalankan Android 8.0 (API level 26) atau versi yang lebih tinggi.
  • Aplikasi terinstal berisi filter intent yang menyertakan CATEGORY_BROWSABLE.
  • Pengalaman instan mengirimkan intent menggunakan tindakan ACTION_SEND, ACTION_SENDTO, atau ACTION_SEND_MULTIPLE.

Mengonfigurasikan project untuk pengalaman instan

Agar kompatibel dengan Google Play Instan, Anda harus mengonfigurasi beberapa aspek app bundle yang diaktifkan secara instan dengan cermat. Bagian berikut akan menjelaskan pertimbangan ini.

Mendeklarasikan dependensi project

Untuk menggunakan API Google Play Instan di aplikasi Anda, sertakan deklarasi berikut dalam file konfigurasi build.gradle modul aplikasi Anda:

Groovy

implementation "com.google.android.gms:play-services-instantapps:17.0.0"

Kotlin

implementation("com.google.android.gms:play-services-instantapps:17.0.0")

Menentukan kode versi yang benar

Kode versi dari pengalaman instan aplikasi Anda harus kurang dari kode versi aplikasi yang dapat diinstal. Harapannya adalah pengguna beralih dari pengalaman Google Play Instan ke pengalaman mendownload dan menginstal aplikasi ke perangkat mereka. Framework Android menganggap transisi ini sebagai update aplikasi.

Untuk memastikan bahwa Anda mengikuti skema pembuatan versi yang diharapkan pengguna, ikuti salah satu strategi berikut:

  • Mulai ulang kode versi untuk pengalaman Google Play Instan dari 1.
  • Naikkan kode versi APK yang dapat diinstal dengan angka yang besar, misalnya 1000, untuk memastikan bahwa ada cukup ruang untuk kenaikan nomor versi pengalaman instan Anda.

Anda dapat mengembangkan aplikasi instan dan aplikasi yang dapat diinstal dalam dua project Android Studio yang terpisah. Namun, jika Anda melakukannya, Anda harus melakukan hal berikut untuk memublikasikan aplikasi di Google Play:

  1. Gunakan nama paket yang sama pada kedua project Android Studio.
  2. Di Konsol Google Play, upload kedua varian ke aplikasi yang sama.

Untuk mengetahui detail mengenai menetapkan versi aplikasi, lihat Membuat versi aplikasi.

Mengupdate versi sandbox target

File AndroidManifest.xml aplikasi instan Anda perlu diupdate untuk menargetkan lingkungan sandbox yang didukung oleh Google Play Instan. Anda dapat menyelesaikan update ini dengan menambahkan atribut android:targetSandboxVersion ke elemen <manifest> aplikasi, seperti yang ditunjukkan dalam cuplikan kode berikut:

<manifest
   xmlns:android="http://schemas.android.com/apk/res/android"
  ...
   android:targetSandboxVersion="2" ...>

Untuk mengetahui informasi selengkapnya, lihat dokumentasi tentang atribut targetSandboxVersion.

Mendeklarasikan modul aplikasi yang diaktifkan secara instan

Anda dapat mendeklarasikan bahwa app bundle Anda mendukung pengalaman instan dengan salah satu metode berikut:

  • Jika sudah memiliki app bundle yang hanya berisi modul dasar, Anda dapat mengaktifkan app bundle secara instan seperti berikut ini:

    1. Buka panel Project dengan memilih Tampilan > Jendela Alat > Project dari panel menu.
    2. Klik kanan modul dasar, biasanya bernama 'app', lalu pilih Refactor > Enable Instant Apps Support.
    3. Pada dialog yang muncul, pilih modul dasar dari menu dropdown.
    4. Klik OK.

    Android Studio menambahkan deklarasi berikut ke manifes modul:

    <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
        <dist:module dist:instant="true" />
        ...
    </manifest>
    
  • Jika Anda memiliki app bundle yang sudah ada dan berisi beberapa modul, Anda dapat Membuat modul fitur yang diaktifkan secara instan. Proses ini juga mengaktifkan modul dasar aplikasi secara instan sehingga Anda memiliki opsi untuk mendukung beberapa titik masuk instan dalam aplikasi Anda.

Menambahkan dukungan untuk login

Jika pengalaman instan Anda mengizinkan pengguna untuk login, app bundle yang diaktifkan secara instan harus mendukung Smart Lock untuk Sandi di Android. Jika Anda mem-build game "Instant play", sebaiknya gunakan login dengan Layanan Game Google Play.

Mendukung lingkungan eksekusi

Agar kompatibel dengan sandbox SELinux yang menjalankan pengalaman instan, perhatikan hal-hal berikut saat membuat app bundle yang diaktifkan secara instan:

  • Jangan bagikan nilai myUid(), yang merupakan UID yang ditetapkan oleh kernel proses aplikasi Anda.
  • Jika aplikasi Anda menargetkan Android 8.1 (API level 27) atau lebih rendah, buat file Konfigurasi Keamanan Jaringan, dan tetapkan cleartextTrafficPermitted ke false. Pengalaman instan tidak mendukung traffic HTTP. Untuk aplikasi yang menargetkan Android 9 atau yang lebih tinggi, traffic cleartext dinonaktifkan secara default.
  • Pengalaman instan Anda tetap didownload di perangkat pengguna hingga cache pengalaman instan dihapus, yang terjadi dalam salah satu situasi berikut:

    • Cache pengalaman instan akan dibersihkan sebagai sampah memori karena perangkat kekurangan memori yang tersedia.
    • Pengguna memulai ulang perangkat mereka.

    Jika salah satu proses terjadi, pengguna harus mendownload ulang pengalaman instan agar dapat berinteraksi dengannya.

  • Jika ruang penyimpanan sistem hampir habis, ada kemungkinan data pengguna pengalaman instan Anda dihapus dari penyimpanan internal. Oleh karena itu, sebaiknya sinkronkan data pengguna secara berkala dengan server aplikasi agar progres pengguna tetap terjaga.

Menambahkan logika untuk alur kerja pengalaman instan

Setelah mengonfigurasi app bundle agar mendukung pengalaman instan, tambahkan logika yang ditunjukkan di bagian berikut.

Memeriksa apakah aplikasi menjalankan pengalaman instan

Jika beberapa logika aplikasi Anda bergantung pada apakah pengguna terlibat dalam pengalaman instan Anda atau tidak, panggil metode isInstantApp(). Metode ini akan menampilkan true jika proses yang sedang berjalan adalah pengalaman instan.

Menampilkan perintah penginstalan

Jika Anda mem-build versi uji coba aplikasi atau game, Google Play Instan memungkinkan Anda menampilkan permintaan dalam pengalaman instan Anda, yang mengajak pengguna menginstal pengalaman versi penuh di perangkat mereka. Untuk menampilkan permintaan ini, gunakan metode InstantApps.showInstallPrompt(), seperti yang ditampilkan pada cuplikan kode berikut:

Kotlin

class MyInstantExperienceActivity : AppCompatActivity {
    // ...
    private fun showInstallPrompt() {
        val postInstall = Intent(Intent.ACTION_MAIN)
                .addCategory(Intent.CATEGORY_DEFAULT)
                .setPackage(your-installed-experience-package-name)

        // The request code is passed to startActivityForResult().
        InstantApps.showInstallPrompt(this@MyInstantExperienceActivity,
                postInstall, request-code, /* referrer= */ null)
    }
}

Java

public class MyInstantExperienceActivity extends AppCompatActivity {
    // ...
    private void showInstallPrompt() {
        Intent postInstall = new Intent(Intent.ACTION_MAIN)
                .addCategory(Intent.CATEGORY_DEFAULT)
                .setPackage(your-installed-experience-package-name);

        // The request code is passed to startActivityForResult().
        InstantApps.showInstallPrompt(MyInstantExperienceActivity.this,
                postInstall, request-code, /* referrer= */ null);
    }
}

Mentransfer data ke pengalaman yang diinstal

Jika pengguna menyukai pengalaman instan Anda, mereka mungkin memutuskan untuk menginstal aplikasi Anda. Untuk memberikan pengalaman pengguna yang baik, sangat disarankan untuk mentransfer data pengguna dari pengalaman instan ke versi lengkap aplikasi Anda.

Jika pengguna menggunakan perangkat yang menjalankan Android 8.0 (API level 26) atau yang lebih tinggi, dan jika aplikasi Anda menentukan targetSandboxVersion dari 2, data pengguna akan ditransfer secara otomatis ke versi lengkap aplikasi Anda. Jika tidak, Anda harus mentransfer data tersebut secara manual. Untuk melakukannya, gunakan salah satu API berikut:

  • Untuk pengguna yang menggunakan perangkat yang menjalankan Android 8.0 (API level 26) dan yang lebih tinggi, gunakan Cookie API - aplikasi contoh
  • Jika pengguna dapat berinteraksi dengan pengalaman Anda di perangkat yang menjalankan Android 7.1 (API level 25) dan yang lebih rendah, tambahkan dukungan untuk Storage API - aplikasi contoh

Mem-build app bundle

Anda dapat menggunakan Android Studio atau antarmuka command line untuk mem-build app bundle yang diaktifkan secara instan.

Android Studio

Dengan Android Studio, Anda dapat mem-build app bundle dengan memilih Build > Build Bundle / APK > Build Bundle. Untuk mengetahui informasi selengkapnya tentang proses build project, lihat Mem-build project.

Antarmuka command line

Anda juga dapat mem-build app bundle dari command line menggunakan Gradle.

Mendukung arsitektur 64-bit

Aplikasi yang dipublikasikan di Google Play harus mendukung arsitektur 64-bit. Menambahkan aplikasi versi 64-bit akan memperbaiki performa dan menyiapkan aplikasi untuk perangkat dengan hardware yang hanya mendukung arsitektur 64-bit. Pelajari dukungan 64-bit lebih lanjut.

Menguji pengalaman instan

Sebelum memublikasikan app bundle yang diaktifkan secara instan, Anda dapat menguji pengalaman instan dari salah satu lokasi berikut untuk memverifikasi fungsi:

Android Studio

Untuk menguji pengalaman instan aplikasi di komputer lokal dengan Android Studio, selesaikan langkah-langkah berikut:

  1. Jika Anda telah menginstal versi aplikasi di perangkat pengujian, uninstal aplikasi tersebut.
  2. Di Android Studio, dari opsi penginstalan yang muncul di tab General dari dialog Run/Debug Configurations, aktifkan kotak centang Deploy as instant app.
  3. Pilih Run > Run di panel menu, atau klik Run di toolbar, lalu pilih perangkat tempat Anda ingin menguji pengalaman instan aplikasi. Pengalaman instan aplikasi Anda dimuat di perangkat pengujian yang telah Anda pilih.

Antarmuka command line

Untuk menguji pengalaman instan aplikasi di komputer lokal dengan command line, lakukan langkah-langkah berikut:

  1. Jika Anda telah menginstal versi aplikasi di perangkat pengujian, uninstal aplikasi tersebut.
  2. Sideload dan jalankan aplikasi instan Anda di perangkat pengujian dengan memasukkan perintah berikut:
ia run output-from-build-command

Track pengujian internal

Untuk menguji pengalaman instan aplikasi dari Play Store atau banner di situs Anda, publikasikan aplikasi ke track pengujian internal di Konsol Play.

Untuk memublikasikan aplikasi ke track pengujian internal, lakukan langkah-langkah berikut:

  1. Upload app bundle dengan mengikuti langkah-langkah dalam panduan Mengupload app bundle ke Konsol Play.
  2. Siapkan bundle yang diupload untuk rilis ke track pengujian internal. Untuk mengetahui informasi selengkapnya, lihat artikel dukungan tentang cara Menyiapkan & meluncurkan rilis.
  3. Login ke akun penguji internal di perangkat, lalu luncurkan pengalaman instan dari salah satu menu berikut:

    • Tombol Coba Sekarang dari Listingan Play Store aplikasi Anda.
    • Link dari banner di situs aplikasi Anda.

Memublikasikan app bundle ke track produksi

Untuk memublikasikan app bundle yang diaktifkan secara instan, selesaikan langkah-langkah berikut:

  1. Jika belum, tanda tangani app bundle dengan kunci rilis, lalu upload app bundle ke Konsol Play.
  2. Di Konsol Play, buka Manajemen rilis > Aplikasi Instan Android, lalu arahkan ke track produksi aplikasi instan.
  3. Pilih Update dari Library, lalu pilih app bundle yang diaktifkan secara instan yang telah diupload.

Memilih tempat untuk memublikasikan pengalaman instan

Anda dapat meluncurkan pengalaman instan aplikasi di beberapa negara dan wilayah yang penggunanya dapat menginstal aplikasi Anda. Kemampuan ini berguna jika Anda ingin mempromosikan pengalaman instan aplikasi kepada pengguna yang tinggal di beberapa negara dan wilayah tertentu.

Referensi lainnya

Untuk mempelajari cara membuat pengalaman instan dan Android App Bundle lebih lanjut, lihat referensi berikut:

Video: Memaketkan Aplikasi secara Instan
Pelajari cara menambahkan pengalaman instan ke Android App Bundle di sesi ini dari Android Dev Summit '18.
Video: Memublikasikan aplikasi yang lebih kecil dengan Android App Bundle
Pelajari cara app bundle membantu Anda mengembangkan aplikasi lebih cepat dan membuat APK yang lebih kecil untuk pengguna.
Codelab: Android App Bundle Pertama Anda
Panduan langkah demi langkah untuk membuat Android App Bundle dan menambahkan fitur ke dalamnya.
Format Android App Bundle
Pelajari lebih lanjut cara program command line bundletool mengatur app bundle dari kode dan resource aplikasi Anda.