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.
Android anlık uygulama modülleriniz için desteği sonlandırılan Feature Android Gradle eklentisini (com.android.feature) kullanmaya devam ediyorsanız temel uygulama eklentisini (com.android.application) ve dinamik özellik eklentisini (com.android.dynamic-feature) kullanmaya geçmeniz gerekir.
Android Gradle eklentisi 3.3.0 ve sonraki sürümlerde, temel uygulama eklentisi hazır uygulama deneyimleri için destek içerir. Yani, temel uygulama modülü anlık deneyim olma şartlarını karşılıyorsa bu avantajdan otomatik olarak yararlanabilirsiniz. Ardından, kullanıcıların Dynamic Feature eklentisini kullanarak anlık deneyimler olarak isteğe bağlı olarak indirebileceği ek özellikleri dahil edebilirsiniz. Bu kurulum, tek bir projeden hem yüklü hem de hazır uygulama deneyimini desteklemeyi kolaylaştırır ve Android App Bundle ile yayınlamanın avantajlarından yararlanmanıza olanak tanır.
Aşağıdaki tabloda, hangi eklentileri taşıyacağınız daha iyi açıklanmaktadır:
| Modülün açıklaması | Eski eklenti | Geçerli eklenti | 
|---|---|---|
| Yüklenen veya hazır uygulama deneyiminiz için temel kodu, kaynakları ve işlevleri içeren modül. | com.android.feature(baseFeature = trueile) | com.android.applicationNot: Bu modül, uygulamanızı Android App Bundle veya APK olarak oluşturup paketlemek için gereken tüm manifest ve imza bilgilerini içerir. | 
| Kullanıcıların isteğe bağlı olarak indirebileceği ek, modüler özellikler | com.android.feature | com.android.dynamic-feature(modülün manifest dosyasındadist:instant="true"vedist:onDemand="false"ile birlikte) | 
| Yalnızca uygulamanızın yüklü sürümünde kullanılabilen bir özelliğin kodu ve kaynağı. | com.android.application | com.android.dynamic-feature(modülün manifest dosyasındadist:instant="false"vedist:onDemand="false"ile birlikte) | 
Bu sayfada, mevcut hazır uygulama projenizi taşıyarak hazır uygulama özellikli bir Android App Bundle'ı nasıl oluşturacağınız gösterilmektedir. Ayrıca, hazır uygulama özelliği etkin bir Android App Bundle'ın nasıl oluşturulacağı, test edileceği ve yayınlanacağı da açıklanmaktadır.
Uygulamanız için yeni hazır uygulama deneyimleri oluşturuyorsanız bunun yerine Hazır uygulama özellikli bir özellik modülü oluşturma başlıklı makaleyi okuyun.
Değişiklikleri anlama
Projenizi Dynamic Feature eklentisini kullanacak şekilde taşıdığınızda, Android App Bundle, uygulamanızı oluşturup yayınlamanın yeni bir yolunu sunar. Bu yol, optimize edilmiş APK'ları kullanıcılarınıza dağıtmayı önemli ölçüde basitleştirir.
Uygulama paketleri, uygulamanızın derlenmiş kod ve kaynaklarının tamamını yükleme için paketleyerek dağıtımı basitleştirir ancak APK oluşturma ve imzalama işlemini Google Play'e bırakır. Google Play'in yeni uygulama yayınlama modeli, her kullanıcının cihaz yapılandırması için optimize edilmiş APK'lar oluşturmak ve yayınlamak üzere uygulama paketinizi kullanır. Böylece kullanıcılar, uygulamanızı çalıştırmak için gereken kod ve kaynakları indirir. Artık farklı cihazları desteklemek için birden fazla APK oluşturmanız, imzalamanız ve yönetmeniz gerekmez. Kullanıcılar ise daha küçük ve daha optimize edilmiş indirmeler elde eder.
Artık kullanımdan kaldırılan özellik eklentisi kullanılırken anlık uygulama oluşturmak için temel özellik modülü oluşturmak gerekiyordu. Bu modül, anlık uygulama modülünüz de dahil olmak üzere tüm modüllerinizin paylaşılan kodunu ve kaynaklarını içeriyordu. Kodunuzun geri kalanı, hazır uygulama deneyimlerinizin giriş noktalarını içeren birden fazla temel olmayan özellik modülüne dahil edildi. Uygulamanızın yüklü sürümü için projeniz, yalnızca yüklü uygulamanız için gereken kodu ve etkinlikleri içeren ayrı bir uygulama modülü içermiş olabilir.
Uygulamanızı Android App Bundle'ı destekleyecek şekilde taşıdığınızda uygulama modülünüz temel modül rolünü yeniden kazanır ve ek olarak yüklenen veya hazır sürüm deneyimlerini özellik modülleri olarak düzenlersiniz. Yani projeniz artık anında deneyim özelliği etkinleştirilmiş bir temel modül ve ek modüler anında deneyimler içerebilme özelliğiyle standart bir uygulama projesine daha çok benziyor.
Mevcut hazır uygulama projenizi taşımak ve Android App Bundle'ın daha optimize edilmiş dağıtım modelini kullanmak için aşağıdaki bölümlerde açıklanan adımları uygulayın.
Temel özellik modülünü uygulama modülüne dönüştürme
Temel özellik modülünü ana uygulama modülüne dönüştürmeden önce build.gradle dosyasını aşağıdaki şekilde düzenlemeniz gerekir:
- baseFeature truesatırını silin.
- featureveya- applicationbağımlılık yapılandırmalarını kullanan tüm bağımlılıkları kaldırın.- Groovy- dependencies { ... // delete any lines that look like // feature project(":foo") // feature project(":bar") // application project(":app") } - Kotlin- dependencies { ... // delete any lines that look like // feature(project(":foo")) // feature(project(":bar")) // application(project(":app")) } 
- applicationIdöğesini, temel uygulama modülünüzde olmasını beklediğiniz diğer tüm derleme komut dosyası yapılandırmalarıyla birlikte mevcut- com.android.applicationmodülünden- com.android.featuremodülüne taşıyın. Bazı örnekler aşağıda gösterilmiştir. Bu adımda, belirli- build.gradlekurulumunuza bağlı olarak, önceki uygulama modülündeki- build.gradlebloğunu kopyalayıp yeni uygulama modülünün- build.gradledosyasına yapıştırmak daha kolay olabilir.- androidAncak bu işlemi yaparken dikkatli olmanız gerekir.- Groovy- android { ... defaultConfig { // You need to move the application ID from the app module // to your feature module. applicationId "com.example.myapp" ... } // Some additional build configurations you might want to // copy from your current ‘app’ module may include ProGuard // rules and code shrinking settings. buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile( 'proguard-android-optimize.txt'), 'proguard-rules.pro' } } } - Kotlin- android { ... defaultConfig { // You need to move the application ID from the app module // to your feature module. applicationId = "com.example.myapp" ... } // Some additional build configurations you might want to // copy from your current ‘app’ module may include ProGuard // rules and code shrinking settings. buildTypes { getByName("release") { minifyEnabled = true proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } } 
- Aşağıda gösterildiği gibi, manifeste uygun paket dağıtım etiketlerini ekleyerek özellik modülünü anında etkinleştirilmiş olarak işaretleyin. - <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution"> <dist:module dist:instant="true" /> ... </manifest>
- Eklenti türünü - com.android.applicationolarak değiştirerek özellik modülünü temel uygulama modülünüze dönüştürün:- Groovy- // Replace "plugins { id 'com.android.feature' }" // with the following plugins { id 'com.android.application' } - Kotlin- // Replace "plugins { id("com.android.feature") }" // with the following plugins { id("com.android.application") } 
Eski uygulama modülünü yükleme sırasında özellik modülüne dönüştürme
Eski uygulama modülünde kod veya kaynak yoksa bu modülü silebilirsiniz. Çünkü önceki bölümde uyguladığınız adımlar, özellik modülünüzü uygulamanızın temel uygulama modülüne dönüştürmüştür.
Ancak eski uygulama modülünde, uygulamanızı yükleyen kullanıcıların kullanabilmesini istediğiniz işlevleri temsil eden kod ve kaynaklarınız varsa uygulama modülünü özellik modülüne dönüştürmek için bu bölümdeki adımları uygulayın.
Özellik modülü oluşturmak için eklenti türünü com.android.application'dan com.android.dynamic-feature'ye değiştirmenin yanı sıra aşağıdaki gibi birkaç build.gradle değişiklik yapmanız gerekir:
- Eklenti türünü - com.android.applicationolarak değiştirin.- com.android.dynamic-feature- Groovy- // Replace "plugins { id 'com.android.feature' }" // with the following: plugins { id 'com.android.dynamic-feature' } - Kotlin- // Replace "plugins { id("com.android.application") }" // with the following: plugins { id("com.android.dynamic-feature") } 
- Önceki bölümde açıklandığı gibi, - com.android.applicationeklentisi tarafından gerekli olan derleme yapılandırmalarını (ör.- applicationIdveya- proguardFileskuralları) temel uygulama modülüne taşıdığınızdan emin olun.
- Modülü aşağıdaki gibi "installed_feature" olarak yeniden adlandırın: - Menü çubuğundan Görünüm > Araç Pencereleri > Proje'yi seçerek Proje bölmesini açın.
- Özellik modülünü sağ tıklayın ve Yeniden düzenle > Yeniden adlandır'ı seçin.
- Açılan iletişim kutusunda Modülü yeniden adlandır'ı seçip Tamam'ı tıklayın.
- Modülün yeni adını girin ve Tamam'ı tıklayın.
 
- 3. adıma benzer şekilde, önceki bölümde oluşturduğunuz yeni uygulama modülünü "app" gibi bir adla yeniden adlandırın. 
- Özellik modülünün - build.gradledosyasında "app" modülüne bir uygulama bağımlılığı ekleyin (aşağıda gösterildiği gibi).- Groovy- dependencies { ... // In the feature module, add an implementation dependency // on the base app module. implementation project(":app") } - Kotlin- dependencies { ... // In the feature module, add an implementation dependency // on the base app module. implementation(project(":app")) } 
- Özelliği yeni uygulama modülünün - build.gradledosyasına ekleyin.- Groovy- android { ... // In the base app module, specify each feature module. dynamicFeatures = [":installed_feature"] } - Kotlin- android { ... // In the base app module, specify each feature module. dynamicFeatures.addAll(listOf(":installed_feature")) } 
- Özellik modülünün manifest dosyasında, manifest dosyasına uygun paket dağıtım etiketlerini ekleyerek özellik modülünü yüklenebilir bir modül olarak işaretleyin. - <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution"> <dist:module dist:instant="false" dist:onDemand="false" dist:title="@string/title_dynamic_feature"> <dist:fusing dist:include="true" /> </dist:module> ... </manifest>
Diğer özellik modüllerini hazır uygulama özellikli özellik modüllerine dönüştürme
Uygulamanızın ek işlevlerini birden fazla özellik modülüne ayırdıysanız bu modülleri anında etkinleştirilen özellik modüllerine dönüştürmek için bu bölümdeki adımları uygulamanız gerekir.
Projenizdeki kalan her özellik modülü için aşağıdaki adımları uygulayarak bunları anında etkinleştirilen özelliklere dönüştürün:
- build.gradledosyasındaki eklenti türünü aşağıda gösterildiği gibi- com.android.dynamic-featureolarak değiştirin:- Groovy- // Replace 'com.android.feature' with 'com.android.dynamic-feature' plugins { id 'com.android.dynamic-feature' } - Kotlin- // Replace "com.android.feature" with "com.android.dynamic-feature" plugins { id("com.android.dynamic-feature") } 
- Aşağıdakileri manifeste ekleyerek her bir özellik modülünü anında etkinleştirilmiş olarak işaretleyin. - <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution"> <dist:module dist:instant="true" dist:onDemand="false" dist:title="@string/title_dynamic_feature"> <dist:fusing dist:include="true" /> </dist:module> ... </manifest>
- Özellik modülünü, özellik modülleri listesine - build.gradleeklediğiniz yeni uygulama modülünün- build.gradledosyasına ekleyin.- installed_feature- Groovy- android { ... dynamicFeatures = [":installed_feature", ":feature_1", ":feature_2"] // or whichever name exists for the instant enabled feature module } - Kotlin- android { ... dynamicFeatures.addAll(listOf(":installed_feature", ":feature_1", ":feature_2")) // or whichever name exists for the instant enabled feature module } 
Yeni hazır uygulama özellikli uygulama paketi oluşturma, test etme ve yayınlama
Bu sayfadaki adımları tamamladıktan sonra projeniz, uygulamanızın hem yüklü hem de hazır sürümünü Google Play Console'da yayınlamak ve hazır ile yüklü kanallar için ayrı ayrı kullanıma sunmak üzere kullanabileceğiniz tek bir yapı (Android App Bundle) oluşturabilir. Ayrıca uygulama paketleri sayesinde, her kullanıcının cihaz yapılandırması için optimize edilmiş APK'lar yayınlama avantajından yararlanabilirsiniz. Böylece kullanıcılar, uygulamanızı çalıştırmak için gereken kod ve kaynakları indirir. Yani artık farklı cihazları desteklemek için birden fazla APK oluşturmanız, imzalamanız ve yönetmeniz gerekmez. Kullanıcılar ise daha küçük ve daha optimize edilmiş indirmeler elde eder.
Hazır sürüm özellikli uygulama paketinizi oluşturup test etmeye başlamak için Uygulama paketini oluşturma başlıklı makaleyi inceleyin.
