Kullanımdan kaldırılan Android Gradle eklentisini kullanmaya devam ediyorsanız
(com.android.feature
) Android Hazır Uygulama modülleriniz için şunları yapmanız gerekiyor:
temel uygulama eklentisini kullanmaya geçiş (com.android.application
) ve
Dinamik Özellik eklentisi (com.android.dynamic-feature
).
Android Gradle eklentisi 3.3.0 ve sonraki sürümlerde temel uygulama eklentisi kullanıma sunuyoruz. Yani, temel uygulama modülü şartları yerine getirdiğinizde otomatik olarak avantajdan yararlanabilirsiniz. Ardından, kullanıcıların isteğe bağlı olarak indirebileceği ek özellikler ve hazır uygulama deneyimleri oluşturun. Bu kurulum, hem yüklü hem de hazır uygulama deneyimini tek bir cihazdan desteklemek ve tek bir yerden elde edilen gelirle Android App Bundle'lar.
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 |
---|---|---|
Temel kodları, kaynakları ve işlevleri içeren modül en iyi uygulamaları paylaşacağız. | com.android.feature (baseFeature = true ile)
|
com.android.application
Not: Bu modülde, tüm manifest ve Uygulamanızı Android olarak derlemek ve paketlemek için gereken imzalama bilgileri App Bundle veya APK. |
Kullanıcıların isteğe bağlı olarak indirebileceği ek, modüler özellikler | com.android.feature |
com.android.dynamic-feature (
dist:instant="true" ve
dist:onDemand="false" parametresi için) |
Yalnızca yüklü sürümün kullanabildiği bir özellik için kod ve kaynak en iyi yoludur. | com.android.application |
com.android.dynamic-feature (
dist:instant="false" dist:onDemand="false"
inceleyin) |
Bu sayfada, yeni bir uygulama oluşturmak için mevcut hazır uygulama projenizi hazır sürüm etkin Android App Bundle. Ayrıca projenizin nasıl oluşturulduğu, test edileceği hazır sürüm etkin bir Android App Bundle yayınlayarak.
Uygulamanız için yeni hazır uygulama deneyimleri oluşturuyorsanız Hazır özellikli bir özellik modülü oluşturun.
Değişiklikleri anlama
Projenizi bunun yerine Dynamic Feature eklentisini kullanmak için taşıdığınızda Android App Bundle, uygulama geliştirme ve yayınlama için yeni bir yöntem sunar. optimize edilmiş APK'ların uygulamanıza dağıtılmasını önemli ölçüde basitleştiren yardımcı olur.
Uygulama paketleri, uygulamanızın tüm derlenmiş kodlarını paketleyerek dağıtımı basitleştirir ve kaynakların yüklenmesi, ancak APK oluşturma ve oturum açma işlemlerini Google Play'e erteler. Google Play’in yeni uygulama sunum modeli, Her kullanıcının cihazı için optimize edilmiş APK'lar oluşturmak ve yayınlamak için uygulama paketi indirmeleri için yalnızca çalıştırmaları gereken kod ve kaynakları indirirler. en iyi şekilde yararlanabilirsiniz. Artık birden fazla APK'yı desteklemek için oluşturmanız, imzalamanız ve yönetmeniz gerekmiyor kullanıcılar daha küçük ve daha optimize edilmiş indirmeler elde ediyor.
Artık desteği sonlandırılan özellik eklentisi kullanılırken hazır uygulama derleme gerekli paylaşılan kodu ve kaynakları içeren bir temel özellik modülü oluşturma hazır uygulama modülünüz de dahil olmak üzere tüm modülleriniz için geçerlidir. Kodunuzun geri kalanı , her iki modelde de giriş noktaları içeren, temel olmayan birden fazla özellik modülüne dahil edildi. kullanıma sunuyoruz. Uygulamanızın yüklü sürümünde projenin bir parçası olan ayrı bir uygulama modülü olabilirdi. yalnızca yüklü uygulamanız için gereken etkinlikler.
Uygulamanızı Android App Bundle'ları destekleyecek şekilde taşıdığınızda uygulama modülünüz ana modülün rolünü geri kazanır ve ek yüklü veya özellik modülleri gibi hazır uygulama deneyimleri. Yani projeniz artık hazır sürüm etkin bir temel modüle sahip standart bir uygulama projesine çok benziyor ve ek, modüler hazır uygulama deneyimleri ekleme olanağı.
Mevcut hazır uygulama projenizi taşımak ve Android App Bundle'ın daha iyi optimize edilmiş dağıtım modeli için bölümüne göz atın.
Temel özellik modülünü bir uygulama modülüne dönüştürün
Önce temel özellik modülünün build.gradle
dosyasını düzenlemeden önce
aşağıdaki şekilde ana uygulama modülüne dönüştürebilirsiniz:
baseFeature true
satırını silin.feature
veyaapplication
bağımlılığını kullanan tüm bağımlılıkları kaldırın. yapılandırmanın üç yolu vardır.Eski
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, yüklediğiniz diğer tüm derleme komut dosyası yapılandırmalarıyla birlikte taşıyın önceki modellerden biriyle temel uygulama modülünüzde olmasıcom.android.feature
modülünecom.android.application
modülü eklendi. Biraz örnekler aşağıda gösterilmiştir. Spesifikasyonunuza bağlı olarak bu adım içinbuild.gradle
kurulumu yapıldığında,android
öğesini kopyalayıp yapıştırmak daha kolay olabilir önceki uygulama modülünden yeni uygulamayabuild.gradle
bloğu modülününbuild.gradle
dosyasına sahip olmalıdır. Ancak bunu yaparken dikkatli olmalısınız. öyle.Eski
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" ) } } }
Uygun paketi ekleyerek özellik modülünü hazır sürüm etkin olarak işaretleyin dağıtım etiketlerini aşağıda gösterildiği gibi manifeste gönderin.
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution"> <dist:module dist:instant="true" /> ... </manifest>
Eklentiyi değiştirerek özellik modülünü temel uygulama modülüne dönüştürün
com.android.application
öğesine yazın:Eski
// 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 zamanı özellik modülüne dönüştürün
Eski uygulama modülünde kodunuz veya kaynağınız yoksa çünkü bir önceki bölümde izlediğiniz adımlar dönüşüm verilerinizi özellik modülünü uygulamanızın temel uygulama modülüne ekleyin.
Ancak eski uygulama modülünde, uygulamanızın uygulamanızı yükledikleri sırada kullanıcılara sunulmasını istediğiniz işlevleri, Uygulama modülünü bir özellik modülüne dönüştürmek için bu bölümdeki adımları uygulayın.
Özellik modülü oluşturmak, eklenti türünü
com.android.application
- com.android.dynamic-feature
ve birkaç
aşağıdaki gibi diğer build.gradle
değişiklikleri:
com.android.application
olan eklenti türünü şu şekilde değiştirin:com.android.dynamic-feature
.Eski
// 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, yapıyı başka bir yere taşıdığınızdan emin olun
com.android.application
eklentisi tarafından istenen yapılandırmalarıapplicationId
veyaproguardFiles
kuralları gibi temel uygulama modülü.Modülü "installed_feature" gibi bir adla değiştirin şu şekilde:
- Görünüm >’ü seçerek Proje bölmesini açın Araç Pencereleri > Proje'yi seçin.
- Özellik modülünü sağ tıklayın ve Yeniden düzenle > Yeniden adlandır'ı tıklayın.
- Açılan iletişim kutusunda Modülü yeniden adlandır'ı seçin ve Tamam'ı tıklayın.
- Modülün yeni adını girin ve Tamam'ı tıklayın.
3. adıma benzer şekilde, önceki adımda oluşturduğunuz yeni uygulama modülünü yeniden adlandırın. “uygulama” gibi bir bölümle değiştirin.
Özellikteki "uygulama" modülüne uygulama bağımlılığı ekleme modülünün
build.gradle
dosyasına göre yapılır.Eski
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.gradle
dosyasına ekleyin.Eski
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 özellik modülünü şu şekilde işaretleyin: uygun paket dağıtım etiketlerini manifest'ini kullanabilirsiniz.
<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 özellikli özellik modüllerine dönüştürün
Uygulamanızın ek işlevini birden fazla özelliğe modüler hale getirdiyseniz söz konusu modülleri dönüştürmek için bu bölümdeki adımları özellikli özellik modüllerine dönüştürmenizi sağlar.
Projenizdeki kalan her özellik modülü için aşağıdaki adımları uygulayarak bunları hazır sürüm etkin özelliklere dönüştürür:
build.gradle
dosyasındaki eklenti türünü şu şekilde değiştirin:com.android.dynamic-feature
, aşağıda gösterildiği gibi:Eski
// 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 ekleyerek her bir özellik modülünü anında etkin olarak işaretleyin ekleyin.
<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ü yeni uygulama modülünün
build.gradle
dosyasına ekleyin Burada,installed_feature
özelliğini özellik modülleri listesine eklediniz.Eski
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 }
Hazır özellikli yeni uygulama paketi oluşturun, test edin ve yayınlayın
Bu sayfadaki adımları tamamladıktan sonra projenizde hem Android App Bundle'ı hem de Android App Bundle'ı kullanarak uygulamanızın yüklü ve hazır sürümünü Google Play Console'a yükleyip ve yüklü kanallar için ayrı ayrı çıkarın. Ek olarak uygulama optimize edilmiş APK'lar sunma avantajından yararlanmış olursunuz. her kullanıcının cihaz yapılandırması için geçerlidir, böylece kullanıcılar sadece kodu indirir ve diğer kaynakları da kullanabilirsiniz. Yani, artık inşa etmek, imza atmak, Ayrıca farklı cihazları desteklemek için birden fazla APK'yı yönetmemiz ve kullanıcıların gittikçe küçülmesi, indirme artışı elde edebilirsiniz.
Hazır özellikli uygulama paketinizi oluşturup test etmeye başlamak için Uygulama paketini oluşturun.