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 SDK Pengembangan Google Play Instant. Anda dapat menginstal SDK tersebut dengan 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:
ACCESS_COARSE_LOCATION
ACCESS_FINE_LOCATION
ACCESS_NETWORK_STATE
BILLING
- Tidak digunakan lagi sejak Library Layanan Penagihan Play 1.0.CAMERA
INSTANT_APP_FOREGROUND_SERVICE
– Hanya di Android 8.0 (API level 26) dan versi yang lebih baru.INTERNET
READ_PHONE_NUMBERS
– Hanya di Android 8.0 (API level 26) dan versi yang lebih baru.RECORD_AUDIO
VIBRATE
WAKE_LOCK
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
: GunakanACCESS_NETWORK_STATE
, yang akan memberikan informasi yang mirip denganACCESS_WIFI_STATE
.BILLING
: Izin ini tidak digunakan lagi. Gunakan Library Layanan Penagihan Google Play, yang tidak lagi memerlukan izincom.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
danpermission.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:
- Menggunakan layanan latar belakang.
- Mengirimkan notifikasi saat berjalan di latar belakang.
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 ketrue
- 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
, atauACTION_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:
- Gunakan nama paket yang sama pada kedua project Android Studio.
- 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:
- Buka panel Project dengan memilih Tampilan > Jendela Alat > Project dari panel menu.
- Klik kanan modul dasar, biasanya bernama 'app', lalu pilih Refactor > Enable Instant Apps Support.
- Pada dialog yang muncul, pilih modul dasar dari menu dropdown.
- 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
kefalse
. 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 dengan 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:
- Instal ke perangkat lokal menggunakan Android Studio.
- Instal ke perangkat lokal menggunakan antarmuka command line.
- Publikasikan ke track pengujian internal di Konsol Google Play.
Android Studio
Untuk menguji pengalaman instan aplikasi di komputer lokal dengan Android Studio, selesaikan langkah-langkah berikut:
- Jika Anda telah menginstal versi aplikasi di perangkat pengujian, uninstal aplikasi tersebut.
- Di Android Studio, dari opsi penginstalan yang muncul di tab General dari dialog Run/Debug Configurations, aktifkan kotak centang Deploy as instant app.
- Pilih Run > Run di panel menu, atau klik Run di toolbar, lalu pilih perangkat tempat Anda ingin menguji pengalaman instan aplikasi. Pengalaman instan aplikasi akan dimuat di perangkat pengujian yang Anda pilih.
Antarmuka command line
Untuk menguji pengalaman instan aplikasi di komputer lokal dengan command line, lakukan langkah-langkah berikut:
- Jika Anda telah menginstal versi aplikasi di perangkat pengujian, uninstal aplikasi tersebut.
- 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:
- Upload app bundle dengan mengikuti langkah-langkah dalam panduan Mengupload app bundle ke Konsol Play.
- Siapkan bundle yang diupload untuk rilis ke track pengujian internal. Untuk mengetahui informasi selengkapnya, lihat artikel dukungan tentang cara Menyiapkan & meluncurkan rilis.
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:
- Jika belum, tanda tangani app bundle dengan kunci rilis, lalu upload app bundle ke Konsol Play.
- Di Konsol Play, buka Manajemen rilis > Aplikasi Instan Android, lalu arahkan ke track produksi aplikasi instan.
- 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.
Resource 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 app bundle tersebut.
- Format Android App Bundle
- Pelajari cara program command line
bundletool
mengelola app bundle dari kode dan resource aplikasi Anda lebih lanjut.