Uyarı: Google Play Instant artık kullanılamayacak. Aralık 2025'ten itibaren, Hazır Uygulamalar Google Play üzerinden yayınlanamayacak ve tüm Google Play Hizmetleri Instant API'leri artık çalışmayacak. Kullanıcılara artık Play tarafından herhangi bir mekanizma kullanılarak anlık uygulamalar sunulmayacak.
Bu değişikliği, geliştiricilerden gelen geri bildirimler ve Google Play Anında'nın kullanıma sunulmasından bu yana ekosistemi iyileştirmek için yaptığımız sürekli yatırımlar doğrultusunda yapıyoruz.
Kullanıcı sayısını artırmaya yönelik optimizasyona devam etmek için geliştiricilerin, kullanıcıları normal uygulamalarına veya oyunlarına yönlendirmelerini öneririz. Geliştiriciler, derin bağlantılar kullanarak kullanıcıları uygun durumlarda belirli yolculuklara veya özelliklere yönlendirebilir.
İlk hazır uygulamanızı oluşturma başlıklı makalede açıklandığı gibi, uygulamaların Google Play Instant'ta çalışacak şekilde ayarlanmasıyla ilgili adımlar oyunlar için de geçerlidir. Bu kılavuzda, oyunlara özgü bazı kurulum adımları vurgulanmaktadır.
Google Play Instant için Unity (Google Play Instant Unity eklentisi ile veya eklentisiz), Cocos2D, Android Studio ya da kendi özel motorunuzu kullanarak oyun geliştirebilirsiniz.
Bu rehberde, sunmak istediğiniz oyun deneyiminin türünü bildiğiniz varsayılmaktadır. Yüksek kaliteli oyunlar oluşturmaya yönelik fikirler ve en iyi uygulamalar görmek istiyorsanız Google Play Instant'taki oyunlarda kullanıcı deneyimiyle ilgili en iyi uygulamalar başlıklı makaleyi inceleyin.
Ayrıca, Google Play Instant'ta çalışabilen bir oyun yayınlamadan önce Teknik şartlar yapılacaklar listesini incelemeniz gerekir.
Giriş noktası belirtme
Aşağıdaki amaç filtresini içeren bir etkinlik, Google Play Instant deneyiminin 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'da Şimdi Dene düğmesine veya Google Play Games uygulamasında Anında oynama düğmesine dokunduğunda başlatılır. Bu etkinliği derin bağlantı API'sini kullanarak da doğrudan 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üçük olmalıdır. Uygulamanızı bu şekilde sürümlediğinizde oyuncular, Google Play Instant deneyiminden oyunun cihazlarına indirilip yüklenmesine geçebilir. Android çerçevesi bu geçişi uygulama güncellemesi olarak değerlendirir.
Önerilen sürüm oluşturma şemasını kullandığı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'den başlayarak yeniden başlatın.
- Yüklenebilir uygulamanın sürüm kodunu 1000 gibi büyük bir sayıyla artırarak hazır uygulama deneyiminizin sürüm numarasının artması için yeterli alan olduğundan emin olun.
Hazır oyununuzu ve yüklenebilir oyununuzu iki ayrı Android Studio projesinde geliştirmeniz sorun teşkil etmez. Ancak bu durumda, oyununuzu Google Play'de yayınlamak için aşağıdakileri yapmanız gerekir:
- Her iki Android Studio projesinde de aynı paket adını kullanın.
- 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 başlıklı makaleyi inceleyin.
Yürütme ortamını destekleme
Google Play Instant'taki oyunlar, diğer uygulamalar gibi cihazda sınırlı bir korumalı alan içinde çalışır. Bu yürütme ortamını desteklemek için aşağıdaki bölümlerde gösterilen adımları tamamlayın.
Şifrelenmemiş trafiği devre dışı bırakma
Google Play Instant'taki oyunlar HTTP trafiğini desteklemez. Oyununuz Android 9'u (API düzeyi 28) veya sonraki sürümleri hedefliyorsa Android, oyununuzda düz metin desteğini varsayılan olarak devre dışı bırakır.
Ancak oyununuz Android 8.1'i (API düzeyi 27) veya önceki sürümleri hedefliyorsa Ağ Güvenliği Yapılandırması 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
sandbox ortamını hedefleyecek şekilde güncelleyin. Aşağıdaki kod snippet'inde gösterildiği gibi, oyununuzun <manifest>
öğesine android:targetSandboxVersion
özelliğini ekleyerek bu güncellemeyi tamamlayabilirsiniz:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
...
android:targetSandboxVersion="2" ...>
Daha fazla bilgi için targetSandboxVersion
özelliğiyle ilgili dokümanları inceleyin.
Önbelleğin veya uygulama verilerinin varlığına güvenmeyin
Hazır uygulama deneyiminiz, hazır uygulama deneyimi önbelleği temizlenene kadar kullanıcının cihazında indirilir. Bu durum aşağıdaki koşullardan birinde gerçekleşir:
- Cihazda kullanılabilir bellek azaldığı için hazır uygulama deneyimi önbelleğinde çöp toplama işlemi yapılıyor.
- Kullanıcı cihazını yeniden başlatır.
Bu işlemlerden biri gerçekleşirse kullanıcının anlık deneyiminizle etkileşimde bulunabilmesi için deneyimi yeniden indirmesi gerekir.
Sistemde depolama alanı çok azaldıysa anlık deneyiminizin kullanıcı verileri dahili depolamadan kaldırılabilir. Bu nedenle, kullanıcının ilerleme durumunun korunması için kullanıcı verilerinin oyununuzun sunucusuyla düzenli olarak senkronize edilmesi önerilir.
Uygulamanızın boyutunu küçültme
Google Play Instant'taki oyunlar, diğer uygulama türlerinin aksine 15 MB indirme boyutu sınırına sahiptir. 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ç listesi, oyununuzun boyutuna neyin katkıda bulunduğunu belirlemenize yardımcı olabilir:
- APK Analizcisi: Derlenmiş bir APK'nın içeriği hakkında bütünsel bir görünüm sunar. Bu görünümü kullanarak her bir öğenin genel boyuta katkıda bulunduğu bayt sayısını belirleyebilirsiniz. Bu aracı kullanarak oyununuzun kullandığı kaynakların, öğelerin, mantığın ve yerel kitaplıkların boyutunu hızlıca kontrol edebilirsiniz.
- Bloaty McBloatface: İkili dosyaların boyut profilini gösterir.
- Android GPU Inspector: Oyununuzu yeniden derlemeniz gerekmeden doku boyutunu küçültmenin dosya boyutu üzerindeki etkisini görün.
Teknikler
Oyununuzun boyutunu küçültmek için kullanabileceğiniz tekniklerin listesini aşağıda bulabilirsiniz:
- Oyununuzun mantığının bir kısmını çıkarıp 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ü düşürün.
- Özellikle GPU'da sıkıştırılmamış dokular kullanıyorsanız WebP biçimini kullanmayı düşünebilirsiniz. WebP biçimi, JPEG resimleriyle aynı kalitede ancak% 15 ila% 30 daha küçük resimler oluşturur. WebP resimlerinin sıkıştırmasının açılması daha uzun sürse de bu sıkıştırma açma süresi, oyununuzun dokularının indirme süresinden önemli ölçüde daha kısadır. Google, bu biçimi açık kaynaklı bir oyun motoruna da entegre etti.
- Sesleri ve müzikleri sıkıştırma veya yeniden kullanma
- İkili dosyanızı küçültmek için farklı derleme işaretleri kullanın:
-fvisibility=hidden
– En önemli olan.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
kullanarak derleme yapıyorsanız bunun yerine-Os
kullanın.-flto
: Bazen dosya boyutunu küçültür.- Bağlayıcı işaretleri:
--gc-sections
işaretini,-ffunction-sections
ve-fdata-sections
gibi derleyici işaretleriyle birlikte kullanın.
- Proguard'ı kullanarak kodunuzu ve kaynaklarınızı küçültün.
- Daha küçük DEX dosyaları oluşturmak için Gradle 4.4 veya sonraki bir sürümünü kullanın.
- Öğelerin bulut üzerinden teslimini uygulayın.
Büyük bir oyunu birden fazla APK'ya bölme
APK boyutunu küçültme önerilerini uyguladıktan sonra bile Google Play Instant deneyimini, oyununuzun tek bir 15 MB'lık APK'ya sığacak şekilde 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şlar. Oyuncular oynadıkça kalan bölünmüş APK'lar arka planda oyuna sunulur.
Örneğin, temel APK, temel oyun motorunu ve yükleme ekranını göstermek için gereken öğeleri içerebilir. Temel APK başlatıldığında yükleme ekranı gösterilir ve oyun ile seviye verilerini içeren ek bir bölünmüş APK hemen istenir. Bu bölünmüş APK kullanıma sunulduktan 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 sizi yalnızca 64 bit donanıma sahip cihazlara hazırlar. 64 bit desteği hakkında daha fazla bilgi edinin.
Oyunun anlık deneyim özelliğini kullanıp kullanmadığını kontrol etme
Oyununuzun mantığının bir kısmı, kullanıcının anlık deneyiminizle etkileşimde olup olmamasına bağlıysa isInstantApp()
yöntemini çağırın. Bu yöntem, şu anda çalışan işlem bir anlık deneyimse true
değerini döndürür.
Bu kontrolü yaparak uygulamanızın sınırlı yürütme ortamında çalışması gerekip gerekmediğini veya platform özelliklerinden yararlanıp yararlanamayacağını belirleyebilirsiniz.
Yükleme istemi görüntüleme
Deneme amaçlı bir Google Play Instant deneyimi oluşturduysanız oyun, bir noktada 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.
Oyuncudan yükleme yapmasını ne zaman ve nasıl isteyeceğiniz hakkında daha fazla bilgi edinmek için Google Play Instant'taki oyunlarda kullanıcı deneyimiyle ilgili en iyi uygulamalar başlıklı makaleyi inceleyin.
Yüklü bir deneyime veri aktarma
Deneme deneyiminizden keyif alan oyuncular, oyununuzun tam sürümünü yüklemeye karar verebilir. İyi bir kullanıcı deneyimi sağlamak için oyuncunun ilerleme durumunun hazır deneyiminizden oyununuzun tam sürümüne aktarılması önemlidir.
Oyununuz 2
targetSandboxVersion
belirtiyorsa2
, oyuncunun ilerleme durumu oyununuzun tam sürümüne otomatik olarak aktarılır. Aksi takdirde, oyuncu ilerlemesiyle ilgili verileri manuel olarak aktarmanız gerekir. Bunu yapmak için çerez API'sini (örnek uygulama) kullanın.
Ek kaynaklar
Google Play Instant hakkında daha fazla bilgi edinmek için aşağıdaki ek kaynakları inceleyin:
- Codelab: İlk Hazır Uygulamanızı Oluşturma
- Mevcut bir uygulamaya Google Play Instant desteği ekleme
- Codelab: Çok Özellikli Bir Hazır Uygulama Oluşturma
- Çok özellikli bir uygulamayı modülerleştirme