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 Anında 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.
Google Play Instant deneyimini Android App Bundle'ın bir parçası olarak oluşturursunuz. Bu tür bir paket, hazır uygulama özellikli uygulama paketi olarak bilinir. Bu belgede, hazır uygulama özellikli uygulama paketleri için geliştirme ortamınızı nasıl ayarlayacağınızın yanı sıra hazır uygulama özellikli bir uygulama paketini nasıl yapılandıracağınız, oluşturacağınız, test edeceğiniz ve yayınlayacağınız açıklanmaktadır.
Desteği sonlandırılan özellik eklentisini (com.android.feature
) kullanan mevcut bir hazır uygulama projeniz varsa Android App Bundle'ları desteklemek için hazır uygulamanızı nasıl taşıyacağınızı öğrenin.
Geliştirme ortamını kurma
Uygulama paketinde hazır uygulama deneyimi sunmak için Google Play Instant Development SDK'ya erişmeniz gerekir. SDK'yı aşağıdaki yöntemlerden birini kullanarak yükleyebilirsiniz:
- Android Studio 3.6 veya sonraki sürümlerini yükleyin. Android Studio'yu açtıktan sonra SDK Manager'daki SDK Tools sekmesinden Google Play Instant Development SDK'sını indirin.
Komut satırından yükleme:
cd path/to/android/sdk/tools/bin && \ ./sdkmanager 'extras;google;instantapps'
Ayrıca, hazır uygulama deneyiminizi yerel olarak test etmek istiyorsanız fiziksel veya sanal bir cihaza erişin.
Gerekli yürütme koşulları hakkında bilgi
Google Play Instant, ek güvenlik için hazır uygulama özellikli uygulama paketlerini özel bir SELinux korumalı alanında çalıştırır. Bu özel korumalı alan, izinlerin bir alt kümesine ve diğer uygulamalarla sınırlı etkileşim türlerine izin verir. Aşağıdaki bölümlerde bu korumalı alanın özellikleri daha ayrıntılı olarak açıklanmaktadır.
Desteklenen izinler ve işlemler
Hazır sürüm etkin uygulama paketleri yalnızca aşağıdaki listedeki izinleri kullanabilir:
ACCESS_COARSE_LOCATION
ACCESS_FINE_LOCATION
ACCESS_NETWORK_STATE
BILLING
– Play Faturalandırma Kitaplığı 1.0'dan itibaren kullanımdan kaldırılmıştır.CAMERA
INSTANT_APP_FOREGROUND_SERVICE
– Yalnızca Android 8.0 (API düzeyi 26) ve sonraki sürümlerde.INTERNET
READ_PHONE_NUMBERS
– Yalnızca Android 8.0 (API düzeyi 26) ve sonraki sürümlerde.RECORD_AUDIO
VIBRATE
WAKE_LOCK
Sık karşılaşılan desteklenmeyen izinleri işleme
Aşağıda, uygulamanızdan kaldırmanız gereken yaygın ve desteklenmeyen izinlerin listesi ile her biri için önerilen taşıma yolu verilmiştir:
ACCESS_WIFI_STATE
:ACCESS_WIFI_STATE
ile benzer bilgiler sağlayanACCESS_NETWORK_STATE
kullanın.BILLING
: Bu, desteği sonlandırılmış bir izindir. Artıkcom.android.vending.BILLING
iznini gerektirmeyen Google Play Faturalandırma Kitaplığı'nı kullanın.READ/WRITE_EXTERNAL_STORAGE
: Hazır uygulamalar, harici depolama alanına erişemez. Bunun yerine dahili depolama alanını kullanın.com.google.android.c2dm.permission.RECEIVE
vepermission.C2D_MESSAGE
: C2DM desteği sonlandırıldı. Firebase Cloud Messaging'e (FCM) geçiş yapın. FCM'nin çalışması için ek izin gerekmez.
Ayrıca, hazır sürüm etkin uygulama paketleri aşağıdaki işlemleri yapamaz:
- Arka plan hizmetlerini kullanın.
- Arka planda çalışırken bildirim gönder.
Yüklü uygulamalara erişim
Hazır uygulama deneyimi geliştirirken aşağıdaki koşullardan biri karşılanmadığı sürece deneyimin, cihazda yüklü uygulamalarla etkileşime giremeyeceğini unutmayın:
- Yüklü bir uygulamadaki bir veya daha fazla etkinlik,
android:visibleToInstantApps
öğesinitrue
olarak ayarlamış. Bu öğe, Android 8.0 (API düzeyi 26) veya sonraki sürümleri çalıştıran uygulamalarda kullanılabilir. - Yüklü bir uygulama,
CATEGORY_BROWSABLE
içeren bir amaç filtresi içeriyor. - Anlık deneyim,
ACTION_SEND
,ACTION_SENDTO
veyaACTION_SEND_MULTIPLE
işlemi kullanılarak bir amaç gönderiyor.
Projenizi hazır uygulama deneyimleri için yapılandırma
Google Play Instant ile uyumlu olmak için hazır uygulama özelliği etkin olan uygulama paketinizin çeşitli yönlerini dikkatli bir şekilde yapılandırmanız gerekir. Bu noktalar aşağıdaki bölümlerde açıklanmaktadır.
Proje bağımlılıklarını bildirme
Uygulamanızda Google Play Instant API'lerini kullanmak için uygulama modülünüzün build.gradle
yapılandırma dosyasına aşağıdaki bildirimi ekleyin:
Groovy
implementation "com.google.android.gms:play-services-instantapps:17.0.0"
Kotlin
implementation("com.google.android.gms:play-services-instantapps:17.0.0")
Doğru sürüm kodlarını tanımlayın
Uygulamanızın hazır uygulama deneyiminin sürüm kodu, yüklenebilir uygulamanın sürüm kodundan daha düşük olmalıdır. Kullanıcıların Google Play Instant deneyiminden uygulamayı indirip cihazlarına yüklemeye geçmesi beklenir. Android çerçevesi bu geçişi uygulama güncellemesi olarak değerlendirir.
Kullanıcıların beklediği 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üklenir APK'nın sürüm kodunu, hazır uygulama deneyiminizin sürüm numarasının artması için yeterli alan olduğundan emin olmak amacıyla 1000 gibi büyük bir sayıyla artırın.
Hazır uygulamanızı ve yüklenebilir uygulamanızı iki ayrı Android Studio projesinde geliştirmeniz sorun teşkil etmez. Ancak bu durumda, uygulamanızı 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.
Uygulamanızın sürümünü ayarlama hakkında daha fazla bilgi için Uygulamanıza sürüm oluşturma başlıklı makaleyi inceleyin.
Hedef korumalı alan sürümünü güncelleme
Anlık uygulamanızın AndroidManifest.xml
dosyası, Google Play Instant'ın desteklediği test ortamını hedefleyecek şekilde güncellenmelidir. Aşağıdaki kod snippet'inde gösterildiği gibi, uygulamanızın <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.
Hazır uygulama özellikli uygulama modüllerini bildirme
Aşağıdaki yöntemlerden birini kullanarak uygulama paketinizin hazır sürüm deneyimlerini desteklediğini belirtebilirsiniz:
Yalnızca temel modül içeren mevcut bir uygulama paketiniz varsa uygulama paketini aşağıdaki gibi hazır sürüm etkin hale getirebilirsiniz:
- Menü çubuğundan Görünüm > Araç Pencereleri > Proje'yi seçerek Proje panelini açın.
- Genellikle "app" olarak adlandırılan temel modülünüzü sağ tıklayın ve Refactor > Enable Instant Apps Support'u (Yeniden düzenle > Hazır Uygulama Desteğini Etkinleştir) seçin.
- Açılan iletişim kutusunda, açılır menüden temel modülünüzü seçin.
- Tamam'ı tıklayın.
Android Studio, modülün manifest dosyasına aşağıdaki beyanı ekler:
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution"> <dist:module dist:instant="true" /> ... </manifest>
Birden fazla modül içeren mevcut bir uygulama paketiniz varsa hazır özellikli bir özellik modülü oluşturabilirsiniz. Bu işlem, uygulamanızın temel modülünü de anında etkinleştirerek uygulamanızda birden fazla anlık giriş noktasını destekleme seçeneği sunar.
Oturum açma desteği ekleme
Hazır sürüm deneyiminiz kullanıcıların oturum açmasına izin veriyorsa hazır sürüm özellikli uygulama paketiniz Android'de Şifreler için Smart Lock'u desteklemelidir. "Anında oynama" oyunu geliştiriyorsanız bunun yerine Google Play Games Hizmetleri oturum açma özelliğini kullanmanız gerekir.
Yürütme ortamını destekleme
Hazır uygulama deneyimlerinin çalıştığı SELinux sanal ortamıyla uyumlu olmak için hazır sürüm özellikli uygulama paketinizi oluştururken aşağıdakileri göz önünde bulundurun:
- Uygulama sürecinizin çekirdek tarafından atanan UID'si olan
myUid()
değerini paylaşmayın. - Uygulamanız Android 8.1 (API düzeyi 27) veya önceki sürümleri hedefliyorsa Ağ Güvenliği Yapılandırması dosyası oluşturun ve
cleartextTrafficPermitted
değerinifalse
olarak ayarlayın. Hazır deneyimler, HTTP trafiğini desteklemez. Android 9 veya sonraki sürümleri hedefleyen uygulamalarda, şifrelenmemiş trafik varsayılan olarak devre dışıdır. 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 ilerlemesinin korunması için kullanıcı verilerinin uygulamanızın sunucusuyla düzenli olarak senkronize edilmesi önerilir.
Anlık deneyim iş akışları için mantık ekleme
Uygulama paketinizi hazır uygulama deneyimlerini destekleyecek şekilde yapılandırdıktan sonra aşağıdaki bölümlerde gösterilen mantığı ekleyin.
Uygulamanın anlık deneyim çalıştırıp çalıştırmadığını kontrol etme
Uygulamanızın mantığının bir kısmı, kullanıcının anlık deneyiminizle etkileşimde olup olmadığı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.
Yükleme istemi gösterme
Uygulamanızın veya oyununuzun deneme sürümünü oluşturuyorsanız Google Play Instant, anlık deneyiminizde kullanıcıları tam deneyimi cihazlarına yüklemeye davet eden bir istem görüntülemenize olanak tanır. Bu istemi göstermek için aşağıdaki kod snippet'inde gösterildiği gibi InstantApps.showInstallPrompt()
yöntemini kullanın:
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); } }
Yüklü bir deneyime veri aktarma
Kullanıcı, hazır uygulama deneyiminizi beğenirse uygulamanızı yüklemeye karar verebilir. İyi bir kullanıcı deneyimi sunmak için kullanıcının verilerinin hazır uygulama deneyiminizden uygulamanızın tam sürümüne aktarılması önemlidir.
Kullanıcı, Android 8.0 (API düzeyi 26) veya sonraki sürümleri çalıştıran bir cihaz kullanıyorsa ve uygulamanız targetSandboxVersion
2
belirtiyorsa kullanıcının verileri uygulamanızın tam sürümüne otomatik olarak aktarılır. Aksi takdirde, verileri manuel olarak aktarmanız gerekir. Bunu yapmak için aşağıdaki API'lerden birini kullanın:
- Android 8.0 (API düzeyi 26) ve sonraki sürümleri çalıştıran cihazları kullanan kullanıcılar için Cookie API'sini kullanın - örnek uygulama
- Kullanıcılar, Android 7.1 (API düzeyi 25) ve önceki sürümlerini çalıştıran cihazlarda deneyiminizle etkileşime girebiliyorsa Storage API desteği ekleyin - örnek uygulama
Uygulama paketini oluşturma
Anında kullanıma hazır uygulama paketinizi oluşturmak için Android Studio'yu veya komut satırı arayüzünü kullanabilirsiniz.
Android Studio
Android Studio'yu kullanarak Build > Build Bundle(s) / APK(s) > Build Bundle(s)'ı seçerek uygulama paketinizi oluşturabilirsiniz. Projenizi oluşturma hakkında daha fazla bilgi için Projenizi oluşturma başlıklı makaleyi inceleyin.
Komut satırı arayüzü
Gradle kullanarak komut satırından uygulama paketi oluşturabilirsiniz.
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.
Hazır sürüm deneyimini test etme
Anında uygulama özelliği etkinleştirilmiş uygulama paketinizi yayınlamadan önce, işlevselliği doğrulamak için aşağıdaki konumlardan birinde anında uygulama deneyimini test edebilirsiniz:
- Android Studio'yu kullanarak yerel bir cihaza yükleyin.
- Komut satırı arayüzünü kullanarak yerel bir cihaza yükleyin.
- Google Play Console'da dahili test kanalında yayınlayın.
Android Studio
Android Studio'yu kullanarak uygulamanızın hazır uygulama deneyimini yerel bir makinede test etmek için aşağıdaki adımları tamamlayın:
- Test cihazınızda uygulamanızın yüklü bir sürümü varsa bu sürümü kaldırın.
- Android Studio'da, Run/Debug Configurations dialog penceresinin General sekmesinde gösterilen yükleme seçeneklerinden Deploy as instant app onay kutusunu etkinleştirin.
- Menü çubuğunda Çalıştır > Çalıştır'ı seçin veya araç çubuğunda Çalıştır'ı
tıklayın, ardından uygulamanızın anlık deneyimlerini test etmek istediğiniz cihazı seçin. Uygulamanızın hazır uygulama deneyimi, seçtiğiniz test cihazına yüklenir.
Komut satırı arayüzü
Komut satırını kullanarak uygulamanızın anlık deneyimini yerel bir makinede test etmek için aşağıdaki adımları tamamlayın:
- Test cihazınızda uygulamanızın yüklü bir sürümü varsa bu sürümü kaldırın.
- Aşağıdaki komutu girerek hazır uygulamanızı test cihazınıza yan yükleyin ve çalıştırın:
ia run output-from-build-command
Dahili test kanalı
Uygulamanızın hazır uygulama deneyimini Play Store'dan veya web sitenizdeki bir banner'dan test etmek için uygulamayı Play Console'daki dahili test kanalında yayınlayın.
Uygulamanızı dahili test kanalında yayınlamak için aşağıdaki adımları tamamlayın:
- Uygulama paketinizi Play Console'a yükleme rehberindeki adımları uygulayarak uygulama paketinizi yükleyin.
- Yüklenen paketi dahili test kanalında yayınlanmaya hazırlayın. Daha fazla bilgi için Sürümleri hazırlama ve kullanıma sunma başlıklı destek makalesini inceleyin.
Bir cihazda dahili test kullanıcısı hesabıyla oturum açın, ardından hazır uygulama deneyiminizi aşağıdaki yüzeylerden birinde başlatın:
- Uygulamanızın Play Store girişindeki Şimdi Dene düğmesi.
- Uygulamanızın web sitesindeki bir banner'dan gelen bağlantı.
Uygulama paketini üretim kanalında yayınlayın
Anında uygulama özellikli uygulama paketinizi yayınlamak için aşağıdaki adımları tamamlayın:
- Henüz yapmadıysanız uygulama paketinizi yayınlama anahtarıyla imzalayın ve uygulama paketini Play Console'a yükleyin.
- Play Console'da Sürüm yönetimi > Android Anında Uygulamalar'ı açın, ardından anında uygulama üretim kanalına gidin.
- Kitaplıktan güncelle'yi ve ardından yüklediğiniz hazır uygulama özellikli uygulama paketini seçin.
Hazır uygulama deneyiminizi nerede yayınlayacağınızı seçme
Uygulamanızın hazır deneyimini, kullanıcıların uygulamanızı yükleyebildiği ülke ve bölgelerin bir alt kümesinde kullanıma sunabilirsiniz. Bu özellik, uygulamanızın hazır deneyimini belirli bir ülke ve bölge grubunda ikamet eden kullanıcılara tanıtmak istediğiniz durumlarda faydalıdır.
Ek kaynaklar
Hazır uygulama deneyimleri ve Android App Bundle oluşturma hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara göz atın:
- Video: Anında Uygulama Paketi Oluşturma
- Android Dev Summit 2018'deki bu oturumda, Android App Bundle'a hazır uygulama deneyimi eklemeyi öğrenin.
- Video: Android App Bundle ile daha küçük boyutlu uygulamalar yayınlama
- Uygulama paketlerinin, uygulamanızı daha hızlı geliştirmenize ve kullanıcılarınız için daha küçük APK'lar oluşturmanıza nasıl yardımcı olduğunu öğrenin.
- Codelab: İlk Android App Bundle'ınız
- Android App Bundle oluşturma ve bu pakete özellik ekleme ile ilgili adım adım açıklamalı kılavuz.
- Android App Bundle Biçimi
bundletool
komut satırı programının, uygulamanızın kod ve kaynaklarından uygulama paketi oluşturma hakkında daha fazla bilgi edinin.