Anında erişim için destek ekleyin

Uygulamaları Google Play Instant'ta çalışacak şekilde ayarlama adımları (İlk hazır uygulamanızı oluşturma bölümünde açıklandığı gibi) oyunlar için de geçerlidir. Bu kılavuzda, oyunlara özel bazı kurulum adımları açıklanmaktadır.

Google Play Instant için oyunlar geliştirebilmek için Unity (Google Play Instant Unity eklentisi ile veya bu kullanılmadan), Cocos2D, Android Studio veya kendi özel motorunuzu kullanabilirsiniz.

Bu kılavuzda, sunmak istediğiniz oyun deneyimi türünü zaten bildiğiniz varsayılmaktadır. Yüksek kaliteli oyunlar geliştirmeyle ilgili fikirleri ve en iyi uygulamaları görmek istiyorsanız Google Play Instant'taki oyunlar için kullanıcı deneyimiyle ilgili en iyi uygulamaları okuyun.

Ayrıca, Google Play Instant'ta çalışabilen bir oyunu yayınlamadan önce Teknik gereksinimler listesini gözden geçirmeniz gerekir.

Aşağıdaki intent filtresini içeren bir etkinlik Google Play Instant deneyimi için giriş noktası olur:

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

Bu etkinlik, kullanıcı Play Store'daki Şimdi Dene düğmesine veya Google Play Games uygulamasındaki Anında oyna düğmesine dokunduğunda başlatılır. Bu etkinliği doğrudan derin bağlantı API'sini kullanarak da başlatabilirsiniz.

Doğru sürüm kodlarını tanımlayın

Oyununuzun hazır uygulama deneyiminin sürüm kodu, yüklenebilir oyunun sürüm kodundan kısa olmalıdır. Uygulamanızın bu şekilde güncellenmesi, oyuncuların Google Play Instant deneyiminden oyunu kendi cihazlarına indirip yüklemesine olanak tanır. Android çerçevesi bu geçişi bir uygulama güncellemesi olarak kabul eder.

Önerilen sürüm oluşturma şemasını uyguladığınızdan emin olmak için aşağıdaki stratejilerden birini uygulayın:

  • Google Play Instant deneyimi için sürüm kodlarını 1'de yeniden başlatın.
  • Hazır uygulama deneyiminizin sürüm numarasının artması için yeterli alan bulunduğundan emin olmak amacıyla yüklenebilir uygulamanın sürüm kodunu 1.000 gibi büyük bir sayıyla artırın.

Hazır oyununuzu ve yüklenebilir oyununuzu iki ayrı Android Studio projesinde geliştirmeniz sorun yaratmaz. Ancak bunu yaparsanız oyununuzu Google Play'de yayınlamak için aşağıdakileri yapmanız gerekir:

  1. Her iki Android Studio projesinde de aynı paket adını kullanın.
  2. Google Play Console'da her iki varyantı da aynı uygulamaya yükleyin.

Oyununuzun sürümünü ayarlama hakkında daha fazla bilgi için Uygulamanıza sürüm oluşturma konusuna bakın.

Yürütme ortamını destekleme

Diğer uygulamalar gibi Google Play Instant'taki oyunlar da cihazdaki sınırlı bir korumalı alanda çalışır. Bu yürütme ortamını desteklemek için aşağıdaki bölümlerde gösterilen adımları tamamlayın.

Açık metin trafiğini devre dışı bırakma

Google Play Instant'taki oyunlar HTTP trafiğini desteklemez. Oyununuz Android 9 (API düzeyi 28) veya sonraki sürümleri hedefliyorsa Android, oyununuzdaki şifresiz metin desteğini varsayılan olarak devre dışı bırakır.

Ancak oyununuz Android 8.1 (API düzeyi 27) veya önceki sürümleri hedefliyorsa bir Network Security Config dosyası oluşturmanız gerekir. Bu dosyada, aşağıdaki kod snippet'inde gösterildiği gibi cleartextTrafficPermitted öğesini false olarak ayarlayın:

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>

Hedef korumalı alan sürümünü güncelleme

Hazır oyununuzun AndroidManifest.xml dosyasını, Google Play Instant'ın desteklediği korumalı alan ortamını hedefleyecek şekilde güncelleyin. Bu güncellemeyi, aşağıdaki kod snippet'inde gösterildiği gibi oyunlarınızın <manifest> öğesine android:targetSandboxVersion özelliğini ekleyerek tamamlayabilirsiniz:

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

Daha fazla bilgi için targetSandboxVersion özelliğiyle ilgili belgelere göz atın.

Bir önbelleğin veya uygulama verilerinin varlığına güvenmeyin

Hazır uygulama deneyiminiz, aşağıdaki durumlardan birinde gerçekleşen hazır uygulama deneyimi önbelleği temizlenene kadar kullanıcının cihazına indirilmiş olarak kalır:

  • Cihazın kullanılabilir belleği azaldığı için hazır uygulama deneyimi önbelleği çöp olarak toplanır.
  • Kullanıcı cihazını yeniden başlatır.

Her iki işlem de gerçekleşirse kullanıcının hazır uygulama deneyiminizi etkileşimde bulunabilmesi için yeniden indirmesi gerekir.

Sistemin depolama alanı çok azalıyorsa hazır uygulama deneyiminizin kullanıcı verileri dahili depolamadan kaldırılmış olabilir. Bu nedenle, kullanıcının ilerleme durumunun korunması için kullanıcı verilerinin düzenli aralıklarla oyununuzun sunucusuyla senkronize edilmesi önerilir.

Uygulamanızın boyutunu küçültün

Diğer uygulama türlerinin aksine Google Play Instant'taki oyunlar için indirme boyutu sınırı 15 MB'tır. Bu boyutta bir oyun oluşturmak için oyununuzun mantığını yeniden düzenlemeniz gerekebilir. Bu bölümde, oyununuzun boyutunu optimize etmenize yardımcı olacak bazı araçlar ve teknikler açıklanmaktadır.

Araçlar

Aşağıdaki araçlar listesi, oyununuzun boyutuna katkıda bulunan unsurları belirlemenize yardımcı olabilir:

  • APK Analiz Aracı: Derlenmiş bir APK'nın içeriklerinin bütünsel bir görünümünü sağlar. Bu görünümü kullanarak, her bir öğenin toplam boyuta katkıda bulunduğu bayt sayısını belirleyebilirsiniz. Oyununuzun kullandığı kaynakların, öğelerin, mantığın ve yerel kitaplıkların boyutunu hızlıca kontrol etmek için bu aracı kullanın.
  • Bloaty McBloatface: İkili dosyaların boyut profilini gösterir.
  • Android GPU Denetleyici: Oyununuzu yeniden derlemek zorunda kalmadan doku boyutunu küçültmenin dosya boyutu etkisini görün.

Teknikler

Aşağıda, oyununuzun boyutunu küçültmek için kullanabileceğiniz tekniklerin bir listesi verilmiştir:

  • Oyununuzun mantığının bir kısmını çıkartın ve boyut sınırına dahil edilmeyen bir veya daha fazla özellik modülüne yerleştirin.
  • Oyununuzun dokularının çözünürlüğünü azaltın.
  • Özellikle GPU'da sıkıştırılmamış dokular kullanıyorsanız WebP biçimini kullanmayı düşünün. WebP biçimi, JPEG resimleriyle aynı kalitede ancak% 15 ila% 30 daha küçük olan resimler oluşturur. WebP resimlerinin sıkıştırmasını açmak daha uzun sürse de bu sıkıştırma açma süresi, oyununuzun dokularının indirme süresinden önemli ölçüde kısadır. Google ayrıca bu biçimi açık kaynak oyun motoruna da entegre etti.
  • Sesleri ve müziği sıkıştırın veya yeniden kullanın.
  • İkili dosyanızı küçültmek için farklı derleme işaretleri kullanın:
    • -fvisibility=hidden – En önemlisi. cmake içinde bunu aşağıdaki şekilde belirtebilirsiniz:
      $ set_target_properties(your-target PROPERTIES CXX_VISIBILITY_PRESET hidden)
      
    • -Oz – Boyutu küçültmek için de önemlidir. gcc ile derleyecekseniz bunun yerine -Os kullanın.
    • -flto: Bazen dosya boyutunu küçültür.
    • Bağlayıcı işaretleri: --gc-sections'i -ffunction-sections ve -fdata-sections gibi derleyici işaretleriyle birlikte kullanın.
  • Kodunuzu ve kaynaklarınızı küçültmek için ProGuard'ı kullanın.
  • Daha küçük DEX dosyaları oluşturmak için Gradle 4.4 veya daha sonraki bir sürümünü kullanın.
  • Öğelerin bulutta yayınlanmasını uygulayın.

Büyük bir oyunu birden fazla APK'ya bölme

APK boyutunu küçültme önerileri uygulandıktan sonra bile oyununuzu 15 MB'lık tek bir APK'ya sığdırmak için Google Play Instant deneyimini optimize etmek zor olabilir. Bu zorluğun üstesinden gelmek için oyununuzu birden fazla APK'ya bölebilirsiniz. Oyuncular birincil, temel APK'yı indirerek başlarlar. Oynadıkça geri kalan bölünmüş APK'lar arka planda oyun için kullanılabilir hale gelir.

Örneğin, temel APK, temel oyun motorunu ve yükleme ekranı görüntülemek için gereken öğeleri içerebilir. Temel APK başlatıldığında yükleme ekranını görüntüler ve hemen oyun ile seviye verilerini içeren ek bir bölünmüş APK ister. Bu bölünmüş APK kullanılabilir hale geldikten sonra, öğelerini oyun motoruna yükleyebilir ve oyuncuya oyuna başlamak için ihtiyaç duyduğu içeriği sağlayabilir.

Kullanıcı deneyimiyle ilgili en iyi uygulamalardan yararlanma

Oyununuzu hazır uygulama deneyimlerini destekleyecek şekilde yapılandırdıktan sonra, iyi bir kullanıcı deneyimi sağlamak için aşağıdaki bölümlerde gösterilen mantığı ekleyin.

64 bit mimarileri destekleme

Google Play'de yayınlanan uygulamaların 64 bit mimarileri desteklemesi gerekir. Uygulamanızın 64 bit sürümünü eklemek performans iyileştirmeleri sağlar ve yalnızca 64 bit donanıma sahip cihazlar için sizi hazırlar. 64 bit desteği hakkında daha fazla bilgi edinin.

Oyunda hazır uygulama deneyimi çalışıp çalışmadığını kontrol etme

Oyununuzun mantığının bir kısmı, kullanıcının anlık deneyiminize katılım gösterip göstermediğine bağlıysa isInstantApp() yöntemini çağırın. Mevcut işlem anlık bir deneyimse bu yöntem true değerini döndürür.

Bu kontrolü yaparak uygulamanızın sınırlı bir yürütme ortamında çalışması gerekip gerekmediğini veya platform özelliklerinden yararlanıp yararlanamayacağınızı belirleyebilirsiniz.

Yükleme istemi görüntüle

Deneme amaçlı bir Google Play Instant deneyimi oluşturduysanız bir noktada oyun, oyuncudan tam sürümü cihazına yüklemesini istemelidir. Bunu yapmak için Android için Google API'leri'ndeki showInstallPrompt() yöntemini kullanın.

Oynatıcıyı yüklemeyi nasıl ve ne zaman istemeniz gerektiği hakkında daha fazla bilgi için Google Play Instant'ta oyunlar için kullanıcı deneyimi en iyi uygulamaları bölümüne bakın.

Yüklü deneyime veri aktarın

Deneme deneyiminizden keyif alan bir oyuncu oyununuzun tam sürümünü yüklemeye karar verebilir. İyi bir kullanıcı deneyimi sağlamak için oyuncunun ilerlemesinin hazır uygulama deneyiminizden oyununuzun tam sürümüne aktarılması önemlidir.

Oyununuz 2 için targetSandboxVersion belirtiyorsa oyuncunun ilerleme durumu otomatik olarak oyununuzun tam sürümüne aktarılır. Aksi takdirde, oyuncunun ilerleme durumuyla ilgili verileri manuel olarak aktarmanız gerekir. Bunun için Cookie API'yi (örnek uygulama) kullanın.

Ek kaynaklar

Google Play Instant hakkında daha fazla bilgiyi şu ek kaynaklardan edinebilirsiniz:

Codelab: İlk Hazır Uygulamanızı Derleme
Mevcut bir uygulamaya Google Play Instant için destek ekleme
Codelab: Çok Özellikli Bir Hazır Uygulama Derleme
Çok özellikli bir uygulamayı modüler hale getirin.