Menambahkan dukungan untuk akses instan

Langkah-langkah untuk menyiapkan aplikasi agar berjalan di Google Play Instan, seperti yang dijelaskan dalam Membuat aplikasi instan pertama, juga berlaku untuk game. Panduan ini menekankan beberapa langkah penyiapan khusus untuk game.

Anda dapat mengembangkan game untuk Google Play Instan menggunakan Unity (dengan atau tanpa plugin Unity Google Play Instan), Cocos2D, Android Studio, atau mesin kustom milik sendiri.

Panduan ini mengasumsikan Anda sudah mengetahui jenis pengalaman game yang ingin Anda berikan. Untuk melihat ide-ide dan praktik terbaik dalam membuat game berkualitas tinggi, baca Praktik terbaik UX untuk game di Google Play Instan.

Selain itu, sebelum memublikasikan game yang dapat berjalan di Google Play Instan, periksa Checklist persyaratan teknis.

Aktivitas yang mencakup filter intent berikut akan menjadi titik entri untuk pengalaman Google Play Instan:

<activity android:name=".GameActivity">
   <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
</activity>

Aktivitas ini diluncurkan saat pengguna mengetuk tombol Coba Sekarang di Play Store atau tombol Langsung main di aplikasi Google Play Game. Anda juga dapat meluncurkan aktivitas ini secara langsung menggunakan API deep link.

Menentukan kode versi yang benar

Kode versi pengalaman instan game harus lebih kecil daripada kode versi game yang memerlukan penginstalan. Cara pembuatan versi aplikasi seperti ini memungkinkan pemain beralih dari pengalaman Google Play Instan ke mendownload dan menginstal game pada perangkat mereka. Framework Android menganggap transisi ini sebagai update aplikasi.

Untuk memastikan Anda mengikuti rekomendasi skema pembuatan versi ini, ikuti salah satu strategi berikut:

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

Anda dapat mengembangkan game instan dan game yang memerlukan penginstalan dalam dua project Android Studio yang terpisah. Namun, jika melakukannya, Anda harus melakukan hal berikut untuk memublikasikan game 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 tentang cara menetapkan versi game, lihat Membuat versi aplikasi Anda.

Mendukung lingkungan eksekusi

Seperti aplikasi lain, game di Google Play Instan berjalan dalam sandbox yang terbatas di perangkat. Untuk mendukung lingkungan eksekusi ini, selesaikan langkah-langkah yang ditunjukkan di bagian berikut.

Memilih tidak menggunakan traffic cleartext

Game di Google Play Instan tidak mendukung traffic HTTP. Jika game menargetkan Android 9 (API level 28) atau yang lebih baru, Android akan menonaktifkan dukungan cleartext dalam game secara default.

Namun, jika game menargetkan Android 8.1 (API level 27) atau yang lebih lama, Anda harus membuat file Konfigurasi Keamanan Jaringan. Dalam file ini, tetapkan cleartextTrafficPermitted ke nilai false, seperti yang ditunjukkan dalam cuplikan kode berikut:

res/xml/network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="false">
        <domain includeSubdomains="true">secure.example.com</domain>
    </domain-config>
</network-security-config>

Mengupdate versi sandbox target

Update file AndroidManifest.xml game instan agar menargetkan lingkungan sandbox yang didukung oleh Google Play Instan. Anda dapat menyelesaikan update ini dengan menambahkan atribut android:targetSandboxVersion ke elemen <manifest> game, 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.

Jangan mengandalkan keberadaan cache atau data aplikasi

Pengalaman instan 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 akan dihapus dari penyimpanan internal. Oleh karena itu, sebaiknya sinkronkan data pengguna secara berkala dengan server game agar progres pengguna dapat dipertahankan.

Mengurangi ukuran aplikasi Anda

Tidak seperti jenis aplikasi lainnya, game di Google Play Instan memiliki batas ukuran download, yaitu 15 MB. Untuk membuat game seukuran ini, Anda perlu memfaktorkan ulang logika game. Bagian ini menjelaskan beberapa alat dan teknik untuk membantu mengoptimalkan ukuran game.

Alat

Daftar alat berikut dapat membantu Anda menentukan faktor yang berkontribusi terhadap ukuran game:

  • APK Analyzer: Memberikan tampilan menyeluruh konten APK yang dikompilasi. Dengan tampilan ini, Anda dapat menentukan jumlah byte yang dikontribusikan setiap elemen pada ukuran keseluruhan. Gunakan alat ini untuk memeriksa dengan cepat ukuran resource, aset, logika, dan library native yang digunakan game.
  • Bloaty McBloatface: Menampilkan profil ukuran file biner.
  • Android GPU Inspector: Melihat pengaruh pengurangan ukuran tekstur pada ukuran file tanpa mengompilasi ulang game.

Teknik

Berikut adalah daftar teknik yang dapat digunakan untuk mengurangi ukuran game:

  • Ekstrak beberapa logika game dan tempatkan di satu atau beberapa modul fitur, yang tidak dihitung dalam batas ukuran.
  • Kurangi resolusi tekstur game.
  • Pertimbangkan untuk menggunakan format WebP, terutama jika Anda menggunakan tekstur yang tidak dikompresi di GPU. Format WebP membuat gambar dengan kualitas yang sama dengan JPEG, tetapi berukuran 15% hingga 30% lebih kecil. Walaupun perlu waktu lebih lama untuk mendekompresi gambar WebP, waktu dekompresi ini masih jauh lebih singkat dibandingkan dengan waktu download tekstur game Anda. Google juga telah mengintegrasikan format ini ke mesin game open source.
  • Kompresi atau gunakan kembali suara dan musik.
  • Gunakan berbagai flag kompilasi untuk membantu memperkecil file biner:
    • -fvisibility=hidden – Yang paling penting. Dalam cmake, Anda dapat menentukannya sebagai berikut:
      $ set_target_properties(your-target PROPERTIES CXX_VISIBILITY_PRESET hidden)
      
    • -Oz – Juga penting untuk mengurangi ukuran. Jika Anda mengompilasi APK menggunakan gcc, gunakan -Os sebagai gantinya.
    • -flto – Terkadang mengurangi ukuran file.
    • Flag linker – Gunakan --gc-sections bersama flag compiler, seperti -ffunction-sections dan -fdata-sections.
  • Gunakan Proguard untuk menyusutkan kode dan resource.
  • Gunakan Gradle 4.4 atau yang lebih baru untuk menghasilkan file DEX yang lebih kecil.
  • Terapkan pengiriman aset melalui cloud.

Memisahkan game besar menjadi beberapa APK

Terkadang sulit mengoptimalkan pengalaman Google Play Instan untuk mengepaskan game dalam satu APK berukuran 15 MB, meskipun Anda sudah menerapkan rekomendasi untuk mengurangi ukuran APK. Untuk mengatasi tantangan ini, Anda dapat memisahkan game menjadi beberapa APK. Pada awalnya, pemain mendownload APK dasar yang utama, lalu saat mereka bermain, APK terpisah sisanya akan tersedia untuk game di latar belakang.

Misalnya, APK dasar dapat mencakup mesin game inti dan aset yang diperlukan untuk menampilkan layar pemuatan. Saat diluncurkan, APK dasar akan menampilkan layar pemuatan dan akan langsung meminta APK terpisah lainnya yang berisi data game dan level. Setelah APK terpisah tersedia, APK dasar akan memuat asetnya ke dalam mesin game dan menyediakan konten yang diperlukan pemain untuk memulai game.

Menggunakan praktik terbaik UX

Setelah mengonfigurasi game agar mendukung pengalaman instan, tambahkan logika yang ditunjukkan di bagian berikut untuk memberikan pengalaman pengguna yang baik.

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.

Memeriksa apakah game menjalankan pengalaman instan

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

Dengan melakukan pemeriksaan ini, Anda dapat menentukan apakah aplikasi perlu berjalan dalam lingkungan eksekusi terbatas atau dapat memanfaatkan fitur platform.

Menampilkan perintah penginstalan

Jika Anda telah membuat pengalaman uji coba Google Play Instan, di saat tertentu game akan meminta pemain untuk menginstal versi lengkap ke perangkatnya. Untuk melakukannya, gunakan metode showInstallPrompt() di Google API untuk Android.

Untuk mempelajari lebih lanjut cara dan waktu untuk meminta pemain melakukan penginstalan, lihat Praktik terbaik UX untuk game di Google Play Instan.

Mentransfer data ke pengalaman yang diinstal

Jika pemain menyukai pengalaman uji coba, mereka mungkin memutuskan untuk menginstal game versi lengkap. Untuk memberikan pengalaman pengguna yang baik, progres pemain harus ditransfer dari pengalaman instan ke game versi lengkap.

Jika game Anda menentukan targetSandboxVersion dari 2, progres pemain akan ditransfer secara otomatis ke versi lengkap game Anda. Jika tidak, data terkait progres pemain harus ditransfer secara manual. Untuk melakukannya, gunakan Cookie API - aplikasi contoh

Referensi lainnya

Pelajari Google Play Instan lebih lanjut dari referensi tambahan berikut:

Codelab: Membuat Aplikasi Instan Pertama Anda
Menambahkan dukungan Google Play Instan dalam aplikasi yang ada.
Codelab: Membuat Aplikasi Instan Multi-Fitur
Memodularisasi aplikasi multi-fitur.