Android App Bundle'ın bir parçası olarak ekleyerek Google Play Instant deneyimi oluşturabilirsiniz. Böyle bir paket, hazır uygulama özellikli uygulama paketi olarak bilinir. Bu belgede, hazır özellikli uygulama paketleri için geliştirme ortamınızı nasıl kuracağınız ve hazır sürüm etkin uygulama paketi yapılandırma, derleme, test etme ve yayınlama gösterilmektedir.
Kullanımdan kaldırılan özellik eklentisini (com.android.feature
) kullanan bir hazır uygulama projeniz varsa hazır uygulamanızı Android App Bundle'ı destekleyecek şekilde nasıl taşıyacağınızı öğrenin.
Geliştirme ortamını ayarlama
Uygulama paketi içinde hazır uygulama deneyimi sağlamak için Google Play Instant Development SDK'sına erişiminiz olmalıdır. SDK'yı aşağıdaki yöntemlerden birini kullanarak yükleyebilirsiniz:
- Android Studio 3.6 veya sonraki bir sürümü yükleyin. Android Studio'yu açtıktan sonra SDK Yöneticisi'ndeki SDK Araçları sekmesinden Google Play Instant Geliştirme SDK'sını indirin.
Komut satırından yükleyin:
cd path/to/android/sdk/tools/bin && \ ./sdkmanager 'extras;google;instantapps'
Ayrıca, hazır uygulama deneyiminizi yerel olarak test etmek isterseniz fiziksel veya sanal bir cihaza erişin.
Gerekli yürütme koşulları hakkında bilgi
Google Play Instant, daha fazla güvenlik için hazır uygulama özellikli uygulama paketlerini özel bir SELinux korumalı alanında çalıştırır. Bu korumalı alan, bir izin alt kümesine ve diğer uygulamalarla sınırlı sayıda etkileşime 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 listede bulunan izinleri kullanabilir:
ACCESS_COARSE_LOCATION
ACCESS_FINE_LOCATION
ACCESS_NETWORK_STATE
BILLING
– Play Faturalandırma Kitaplığı 1.0 sürümü itibarıyla 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
Desteklenmeyen yaygın izinleri işleme
Aşağıda uygulamanızdan kaldırmanız gereken yaygın ve desteklenmeyen izinlerin bir listesi ve her biri için önerilen taşıma yolu verilmiştir:
ACCESS_WIFI_STATE
:ACCESS_WIFI_STATE
ile benzer bilgiler sağlaması gerekenACCESS_NETWORK_STATE
parametresini kullanın.BILLING
: Bu, kullanımdan kaldırılmış bir izindir. Artıkcom.android.vending.BILLING
izni gerektirmeyen Google Play Faturalandırma Kitaplığı'nı kullanın.READ/WRITE_EXTERNAL_STORAGE
: Hazır uygulamaların harici depolama alanına erişimi yoktur. Bunun yerine dahili depolama alanını kullanın.com.google.android.c2dm.permission.RECEIVE
vepermission.C2D_MESSAGE
: C2DM kullanımdan kaldırılmıştır. Firebase Cloud Messaging'e (FCM) geçiş yapın. FCM'nin çalışması için herhangi bir ek izin gerekmez.
Ayrıca, hazır sürüm etkin uygulama paketleri aşağıdakileri yapamaz:
- Arka plan hizmetlerini kullanabilirsiniz.
- Arka planda çalışırken bildirim gönderin.
Yüklü uygulamalara erişim
Hazır uygulama deneyimi geliştirirken, aşağıdaki koşullardan biri geçerli olmadığı sürece uygulamanın cihazdaki yüklü uygulamalarla etkileşimde bulunamayacağını 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 uygulamalar tarafından kullanılabilir. - Yüklü bir uygulamada
CATEGORY_BROWSABLE
içeren bir amaç filtresi bulunur. - Hazır uygulama deneyimi
ACTION_SEND
,ACTION_SENDTO
veyaACTION_SEND_MULTIPLE
işlemini kullanarak amaç gönderiyor.
Projenizi hazır deneyimler için yapılandırma
Google Play Instant ile uyumlu olmak için, hazır sürüm özellikli uygulama paketinizin çeşitli yönlerini dikkatlice yapılandırmanız gerekir. Bu hususlar aşağıdaki bölümlerde açıklanmıştır.
Proje bağımlılıklarını tanımlama
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 beyanı ekleyin:
Modern
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 kısa olmalıdır. Kullanıcıların Google Play Instant deneyiminden uygulamayı indirip cihazlarına yüklemeleri beklenir. Android çerçevesi bu geçişi bir uygulama güncellemesi olarak kabul eder.
Kullanıcıların beklediği sürüm şemasını izlediğinizden 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 APK'nın sürüm kodunu 1.000 gibi yüksek bir sayıyla artırın.
Hazır uygulamanızı ve yüklenebilir uygulamanızı iki ayrı Android Studio projesinde geliştirmeniz sorun yaratmaz. Ancak bunu yaparsanız, 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 konusuna bakın.
Hedef korumalı alan sürümünü güncelleme
Hazır uygulamanızın AndroidManifest.xml
dosyası, Google Play Instant'ın desteklediği korumalı alan ortamını hedefleyecek şekilde güncellenmelidir. Bu güncellemeyi, aşağıdaki kod snippet'inde gösterildiği gibi uygulamanı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.
Hazır sürüm etkin uygulama modüllerini bildirme
Aşağıdaki yöntemlerden birini kullanarak uygulama paketinizin hazır uygulama deneyimlerini desteklediğini belirtebilirsiniz:
Yalnızca temel modül içeren bir uygulama paketiniz varsa uygulama paketini aşağıdaki şekilde anında etkinleştirebilirsiniz:
- Menü çubuğundan Görünüm > Araç Pencereleri > Proje'yi seçerek Proje panelini açın.
- Genellikle "uygulama" adlı temel modülünüzü sağ tıklayın ve Yeniden düzenle > Hazır Uygulama Desteğini Etkinleştir'i seçin.
- Görüntülenen 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 bildirimi ekler:
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution"> <dist:module dist:instant="true" /> ... </manifest>
Birden fazla modül içeren bir uygulama paketiniz varsa Hazır uygulama özellikli bir özellik modülü oluşturabilirsiniz. Bu işlem ayrıca uygulamanızın temel modülünü anında etkinleştirerek uygulamanızda birden fazla hazır giriş noktasını destekleme seçeneği sunar.
Oturum açma desteği ekleme
Hazır uygulama deneyiminiz kullanıcıların oturum açmasına izin veriyorsa hazır özellikli uygulama paketinizin Android'de Şifreler için Smart Lock'u desteklemesi gerekir. "Anında oyna" oyun oluşturuyorsanız bunun yerine Google Play Oyun Hizmetleri ile oturum açmayı kullanmanız gerekir.
Yürütme ortamını destekleme
Hazır uygulama deneyimlerinin çalıştırıldığı SELinux korumalı alanıyla uyumlu olmak için hazır özellikli uygulama paketinizi oluştururken aşağıdakileri göz önünde bulundurun:
- Uygulama işleminizin çekirdek tarafından atanan UID değeri olan
myUid()
değerini paylaşmayın. - Uygulamanız Android 8.1 (API düzeyi 27) veya önceki sürümleri hedefliyorsa bir Network Security Config dosyası oluşturup
cleartextTrafficPermitted
değerinifalse
olarak ayarlayın. Hazır sürüm deneyimleri HTTP trafiğini desteklemez. Android 9 veya sonraki sürümleri hedefleyen uygulamalarda, düz metin trafiği varsayılan olarak devre dışıdır. 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 uygulamanızın sunucusuyla senkronize edilmesi önerilir.
Hazır uygulama deneyimi iş akışları için mantık ekleyin
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 hazır uygulama deneyimi ç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 bulunup bulunmadığına 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.
Yükleme istemi görüntüle
Uygulama veya oyununuzun deneme sürümünü oluşturuyorsanız Google Play Instant, kullanıcılarınızı cihazlarına tam deneyimi yüklemeye davet ederek anında deneyiminizde bir istem görüntülemenize olanak tanır. Bu istemi görüntülemek 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ü deneyime veri aktarın
Kullanıcı hazır uygulama deneyiminizden keyif alırsa uygulamanızı yüklemeye karar verebilir. İyi bir kullanıcı deneyimi sağlamak için kullanıcı 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 2
targetSandboxVersion
değerini belirtiyorsa kullanıcının verileri otomatik olarak uygulamanızın tam sürümüne 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ı kullananlar Cookie API - sample uygulama
- Kullanıcılar, Android 7.1 (API düzeyi 25) ve önceki sürümleri çalıştıran cihazlarda deneyiminizle etkileşimde bulunabiliyorsa Storage API için destek ekleyin (örnek uygulama)
Uygulama paketini oluşturun
Hazır uygulama özellikli uygulama paketinizi oluşturmak için Android Studio'yu veya komut satırı arayüzünü kullanabilirsiniz.
Android Studio
Android Studio'da Derleme > Derleme Paketler / APK'lar > Derleme Paketleri'ni seçerek uygulama paketinizi oluşturabilirsiniz. Projenizi derleme hakkında daha fazla bilgi için Projenizi oluşturma bölümüne bakın.
Komut satırı arayüzü
Ayrıca, Gradle'ı kullanarak uygulama paketini komut satırından da 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 yalnızca 64 bit donanıma sahip cihazlar için sizi hazırlar. 64 bit desteği hakkında daha fazla bilgi edinin.
Hazır uygulama deneyimini test edin
Hazır özellikli uygulama paketinizi yayınlamadan önce işlevselliğini doğrulamak için hazır uygulama deneyimini aşağıdaki konumlardan birinden test edebilirsiniz:
- Android Studio kullanarak yerel bir cihaza yükleyin.
- Komut satırı arayüzünü kullanarak yerel bir cihaza yükleyin.
- Google Play Console'daki dahili test kanalında yayınlayın.
Android Studio
Uygulamanızın hazır uygulama deneyimini Android Studio'yu kullanarak 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 kaldırın.
- Android Studio'da, Çalıştır/Hata Ayıklama Yapılandırmaları iletişim kutusunun Genel sekmesinde görünen yükleme seçeneklerinden Hazır uygulama olarak dağıt 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 hazır uygulama deneyimlerini test etmek istediğiniz cihazı seçin. Uygulamanızın hazır uygulama deneyimi, seçtiğiniz test cihazında yüklenir.
Komut satırı arayüzü
Uygulamanızın hazır uygulama deneyimini komut satırını kullanarak bir yerel 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 kaldırın.
- Aşağıdaki komutu girerek hazır uygulamanızı başka cihazdan yükleyip test cihazınızda ç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ına yayınlayın.
Uygulamanızı dahili test kanalına yayınlamak için aşağıdaki adımları tamamlayın:
- Uygulama paketinizi Play Console'a yükleme kılavuzundaki adımları uygulayarak uygulama paketinizi yükleyin.
- Yüklenen paketi, dahili test kanalında yayınlanacak şekilde hazırlayın. Daha fazla bilgi için Sürümleri hazırlama ve kullanıma sunma ile ilgili destek makalesini inceleyin.
Bir cihazda dahili test kullanıcısı hesabında oturum açın, ardından aşağıdaki yüzeylerden birinden hazır uygulama deneyiminizi başlatın:
- Uygulamanızın Play mağaza girişindeki Şimdi Dene düğmesi.
- Uygulamanızın web sitesindeki bir banner'dan bağlantı.
Uygulama paketini üretim kanalına yayınla
Hazır özellikli uygulama paketinizi yayınlamak için aşağıdaki adımları tamamlayın:
- Henüz yapmadıysanız uygulama paketinizi bir sürüm anahtarıyla imzalayın ve uygulama paketini Play Console'a yükleyin.
- Play Console'da Sürüm yönetimi > Android Hazır Uygulamalar'ı açın, ardından hazır uygulama üretimi kanalına gidin.
- Kitaplıktan güncelle'yi, ardından yüklediğiniz hazır sürüm etkin uygulama paketini seçin.
Hazır uygulama deneyiminizin nerede yayınlanacağını seçme
Kullanıcıların uygulamanızı yükleyebileceği ülke ve bölgelerin belirli bir alt kümesinde uygulamanızla ilgili bir hazır uygulama deneyimi oluşturmak mümkündür. Bu özellik, uygulamanızın hazır uygulama deneyimini belirli ülke ve bölgelerde ikamet eden kullanıcılara tanıtmak istediğiniz durumlarda yararlı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 bakın:
- Video: Uygulamayı Anında Paketleme
- Android Dev Summit '18 etkinliğiyle ilgili bu oturumu izleyerek Android App Bundle'a nasıl hazır uygulama deneyimi ekleyeceğinizi öğrenin.
- Video: Android App Bundle ile daha küçük boyutlu uygulamalar yayınlayın
- 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 buna özellik eklemeyle ilgili adım adım açıklamalı bir kılavuz.
- Android App Bundle Biçimi
bundletool
komut satırı programının, bir uygulama paketini uygulamanızın kodundan ve kaynaklarından nasıl düzenlediği hakkında daha fazla bilgi edinin.