Bergabunglah bersama kami di ⁠#Android11: The Beta Launch Show pada tanggal 3 Juni!

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 tersebut dengan salah satu metode berikut:

  • Menginstal Android Studio 3.6 atau versi yang lebih baru. Setelah membuka Android Studio, download Google Play Instant Development SDK 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 ini adalah daftar izin umum yang tidak didukung yang harus Anda hapus dari aplikasi dan jalur migrasi yang disarankan 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: Menggunakan penyimpanan internal sebagai gantinya. Jika aplikasi harus menulis ke penyimpanan eksternal, gunakan direktori khusus aplikasi di penyimpanan eksternal. Aplikasi tidak perlu meminta izin untuk menulis ke direktori ini.
  • 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 dijalankan.

Selain itu, app bundle dengan dukungan akses instan tidak dapat melakukan hal berikut:

Akses ke aplikasi terinstal

Saat mengembangkan pengalaman instan, perlu diingat bahwa aplikasi tidak dapat berinteraksi dengan aplikasi terinstal di suatu perangkat kecuali jika salah satu dari hal 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 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 Anda 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 Google Play Instant API di aplikasi Anda, sertakan deklarasi berikut dalam file konfigurasi build.gradle modul aplikasi Anda:

    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. Ekspektasinya 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 di kedua project Android Studio.
  2. Di Konsol Google Play, upload kedua varian ke aplikasi yang sama.

Untuk detail selengkapnya mengenai menetapkan versi aplikasi, lihat Membuat versi aplikasi Anda.

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 Anda, seperti yang ditunjukkan dalam cuplikan kode berikut:

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

Untuk 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 Anda sudah memiliki app bundle yang hanya berisi modul dasar, Anda dapat mengaktifkan secara instan app bundle sebagai berikut:

    1. Buka panel Project dengan memilih View > Tool Windows > Project dari panel menu.
    2. Klik kanan modul dasar Anda, biasanya dinamai '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 yang berisi beberapa modul, Anda dapat Membuat modul fitur dinamis yang diaktifkan secara instan. Proses ini juga mengaktifkan modul dasar aplikasi Anda secara instan, sehingga Anda memiliki opsi untuk mendukung beberapa titik masuk instan dalam aplikasi.

Menambahkan dukungan untuk login

Jika pengalaman instan Anda mengizinkan pengguna login, app bundle yang diaktifkan secara instan milik Anda 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 mendapatkan pembersihan sampah memori karena perangkat kekurangan memori yang tersedia.
    • Pengguna memulai ulang perangkat mereka.

    Jika salah satu proses terjadi, pengguna harus mendownload ulang pengalaman instan Anda 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 dipertahankan.

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, maka 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 membuat app bundle yang diaktifkan secara instan.

Android Studio

Dengan Android Studio, Anda dapat mem-build app bundle dengan memilih Build > Build Bundle(s) / APK(s) > Build Bundle(s). 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. Setelah melakukan build ini, lakukan pemeriksaan pengalaman instan dengan menjalankan perintah berikut:

    ia check app-artifact
    

Artefak aplikasi dapat berupa file ZIP, app bundle, atau daftar APK yang berisi minimal satu pengalaman instan.

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 Anda di komputer lokal dengan Android Studio, selesaikan langkah-langkah berikut:

  1. Jika Anda telah menginstal versi aplikasi di perangkat uji coba, 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 akan dimuat di perangkat uji yang Anda pilih.

Antarmuka command line

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

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

Track pengujian internal

Untuk menguji pengalaman instan aplikasi Anda 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 Anda 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 lebih lanjut, lihat artikel dukungan tentang cara Menyiapkan & meluncurkan rilis.
  3. Login ke akun penguji internal di perangkat, lalu luncurkan pengalaman instan Anda 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 dan upload app bundle ke Konsol Play.
  2. Di Konsol Play, buka Pengelolaan rilis > Aplikasi Instan Android, lalu navigasikan 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 Anda di subset negara dan wilayah pengguna yang 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 lebih lanjut cara membuat pengalaman instan dan Android App Bundle, 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 Anda.
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 mengelola app bundle dari kode dan resource aplikasi Anda.