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

Mengonversi game yang sudah ada ke aplikasi instan

Langkah-langkah untuk menyiapkan aplikasi agar berjalan di Google Play Instan, seperti yang dijelaskan dalam Membuat aplikasi instan pertama Anda, 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 Anda.

Panduan ini mengansumsikan bahwa Anda sudah tahu jenis pengalaman bermain yang ingin Anda berikan. Jika Anda ingin melihat ide-ide dan praktik terbaik untuk 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, Anda harus meninjau Checklist persyaratan teknis.

Aktivitas yang menyertakan filter intent berikut akan menjadi titik masuk 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 aplikasi Play Store atau Play Game. Anda juga dapat meluncurkan aktivitas ini secara langsung menggunakan API deep link.

Jika Anda ingin pemain mengakses game menggunakan URL yang Anda miliki, Anda juga dapat menambahkan link aplikasi. Namun, jika menambahkan link aplikasi ini, Anda juga perlu menambahkan URL default yang sesuai dengan salah satu URL link aplikasi tersebut.

Cuplikan kode berikut menunjukkan contoh kombinasi link aplikasi dan URL default:

<activity
       android:name=".GameActivity" ... >

       <!-- App links (HTTP and HTTPS) -->
       <intent-filter android:autoVerify="true">
           <action android:name="android.intent.action.VIEW" />

           <category android:name="android.intent.category.BROWSABLE" />
           <category android:name="android.intent.category.DEFAULT" />

           <data android:scheme="http" />
           <data android:scheme="https" />
           <data android:host="example.com" />
           <data android:pathPrefix="/instant" />
       </intent-filter>

       <!-- Default URL -->
       <meta-data
           android:name="default-url"
           android:value="https://example.com/instant" />
    </activity>
    

Kode versi

Kode versi aplikasi instan game Anda harus lebih kecil dari kode versi game yang dapat diinstal. Harapannya adalah agar pemain dapat beralih dari pengalaman Google Play Instan ke proses download dan penginstalan game pada perangkat mereka. Framework Android menganggap transisi ini sebagai update aplikasi.

Untuk memastikan bahwa Anda mengikuti skema pembuatan versi ini, Anda dapat menggunakan salah satu strategi berikut:

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

Untuk detail selengkapnya tentang penyetelan versi aplikasi Anda, lihat Membuat versi aplikasi Anda.

Versi sandbox target

Seperti aplikasi lain, game di Google Play Instan berjalan pada perangkat dalam sandbox terbatas. File AndroidManifest.xml aplikasi instan perlu diupdate untuk menargetkan sandbox ini. Anda dapat menyelesaikan update ini dengan menambahkan atribut android:targetSandboxVersion ke elemen <manifest>, seperti yang ditampilkan pada cuplikan kode berikut:

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

Jika Anda menggunakan Gradle 3.0 atau versi lebih tinggi untuk membuat versi Android dari game Anda, terapkan plugin com.android.feature dan com.android.instantapps ke modul fitur. Kedua plugin ini akan secara otomatis menambahkan atribut yang diperlukan ke file manifes modul.

Untuk informasi selengkapnya, lihat dokumentasi pada atribut targetSandboxVersion.

Pengurangan ukuran APK

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

Fitur

Daftar fitur berikut dapat membantu Anda menentukan hal-hal yang berkontribusi terhadap ukuran game Anda:

  • Penganalisis APK: Menyediakan tampilan menyeluruh dari konten kompilasi APK. Dengan tampilan ini, Anda dapat menentukan jumlah byte yang diperlukan setiap elemen untuk berkontribusi ke ukuran keseluruhan. Gunakan fitur ini untuk memeriksa ukuran resource, aset, logika, dan library native dengan cepat yang digunakan game Anda.
  • Bloaty McBloatface: Menampilkan profil ukuran file biner.
  • GAPID: Melihat efek ukuran file setelah mengurangi ukuran tekstur tanpa mengompilasi ulang game Anda.

Teknik

Berikut adalah daftar teknik yang dapat Anda gunakan untuk mengurangi ukuran game Anda:

  • Kurangi resolusi tekstur game Anda.
  • Pertimbangkan untuk menggunakan format WebP, terutama jika Anda menggunakan tekstur yang tidak dikompresi di GPU. Format WebP membuat gambar dengan kualitas yang sama seperti gambar JPEG tetapi ukurannya lebih kecil 15% hingga 30%. Meskipun tetap perlu waktu lama untuk melakukan dekompresi gambar WebP, waktu dekompresi ini masih jauh lebih singkat daripada waktu download tekstur game Anda.

    Google juga telah mengintegrasikan format tersebut ke mesin game open source.

  • Hanya gunakan subset suara yang tersedia di game yang dapat diinstal.

  • Gunakan berbagai tanda kompilasi untuk membantu memperkecil file biner Anda:

    • -fvisibility=hidden – Adalah yang paling penting. Di cmake, Anda dapat menentukannya seperti berikut:
      $ set_target_properties(your-target PROPERTIES CXX_VISIBILITY_PRESET hidden)
          
    • -Oz – Juga penting untuk mengurangi ukuran. Jika Anda mengompilasi dengan gcc, gunakan -Os.
    • -flto – Terkadang mengurangi ukuran file.
    • Tanda linker – Gunakan --gc-sections bersama dengan tanda compiler, seperti -ffunction-sections dan -fdata-sections.
  • Gunakan Proguard untuk menciutkan kode dan resource Anda.

  • Gunakan Gradle 4.4 atau versi lebih tinggi untuk menghasilkan file DEX yang lebih kecil.

Menjalankan Core Split Install API

Terkadang sulit untuk mengoptimalkan pengalaman Google Play Instan agar game Anda pas dalam satu APK berukuran 10 MB, meskipun setelah menerapkan rekomendasi untuk mengurangi ukuran APK. Untuk mengatasi tantangan tersebut, Anda dapat membagi game ke dalam beberapa APK. Pemain akan mulai dengan mendownload file utama, APK dasar; saat mereka bermain, APK terpisah yang tersisa akan didownload di latar belakang.

Misalnya, APK dasar dapat berisi mesin game inti dan aset yang diperlukan untuk menampilkan layar pemuatan. Saat APK dasar diluncurkan, layar pemuatan akan ditampilkan dan APK dasar akan langsung meminta APK terpisah tambahan yang berisi data game dan level. Setelah APK terpisah tersedia, asetnya dapat dimuat ke dalam mesin game dan memberikan konten yang dibutuhkan kepada pemain untuk memulai game.

Permintaan penginstalan

Di titik tertentu sepanjang pengalaman Google Play Instan, game tersebut akan meminta pemain untuk menginstal versi lengkap ke perangkat mereka. Untuk melakukannya, gunakan metode showInstallPrompt() di Google API untuk Android.

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

Referensi lainnya

Pelajari lebih lanjut tentang Google Play Instan dari referensi tambahan berikut:

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