Uygulama paketi, bir APK'ya dağıtamayacağınız bir APK'dır. olanak tanır. Daha ziyade, uygulamanızın tüm derlenmiş bilgilerini içeren bir yayınlama biçimidir kod ve kaynakları tek bir derleme yapısında toplayabilirsiniz. Bu nedenle, içeren bir uygulama paketi kullanıyorsanız Google Play'in sizin için gereken her şeyi belirleyip kullanıcılara sunabilirsiniz.
Başlayın
Çoğu uygulama projesi, Android App Bundle'ı desteklemek için çok fazla çaba gerektirmez.
Bunun nedeni, uygulamanızın tabanı için kod ve kaynakları içeren modülün
APK standart uygulama modülüdür. APK'yı yüklediğinizde varsayılan olarak
Android Studio'da yeni bir uygulama projesi oluşturun.
Yani aşağıdaki application
eklentisini kendi
build.gradle
dosyası, temel işlev için kod ve kaynakları sağlar
en iyi yoludur.
Eski
// The standard application plugin creates your app's base module. plugins { id 'com.android.application' }
Kotlin
plugins { // The standard application plugin creates your app's base module. id("com.android.application") }
Temel modül, uygulamanızın temel işlevini yerine getirmenin yanı sıra sağlayan birçok derleme yapılandırması ve manifest girişi sağlar. tüm uygulama projenizi etkiler.
Temel modül derleme yapılandırması
Mevcut çoğu uygulama projesi için temelinizde herhangi bir değişiklik yapmanız gerekmez modülünün derleme yapılandırması. Ancak herhangi bir web sitesi için uygulama projenize eklemeniz veya uygulamanızı daha önce temel modülün derleme yapılandırmasının bazı yönleri vardır. göz önünde bulundurmanız gereken birkaç nokta vardır.
Sürüm kodu ve uygulama güncellemeleri
Android App Bundle ile artık yönetmek zorunda değilsiniz birden fazla APK'nın sürüm kodlarını oluşturabilirsiniz. Bunun yerine Uygulamanızın temel modülünde, aşağıda gösterildiği gibi yalnızca bir sürüm kodunu yönetin:
// In your base module build.gradle file
android {
defaultConfig {
…
// You specify your app’s version code only in the base module.
versionCode 5
versionName "1.0"
}
}
Uygulama paketinizi yükledikten sonra, Google Play ürettiği tüm APK'lara aynı sürüm kodunu atamak için temel modül çok kolaylaşır. Yani bir cihaz uygulamanızı indirip yüklediğinde ise Bu uygulamanın APK'ları aynı sürüm kodunu paylaşır.
Uygulamanızı yeni kod veya kaynaklarla güncellemek istediğinizde uygulamanızın temel modülündeki sürüm kodunu girip yeni, tam bir uygulama paketi oluşturun. Bu uygulama paketini Google Play'e yüklediğinizde yeni bir APK grubu oluşturulur temel modülün belirttiği sürüm koduna dayanır. Daha sonra, kullanıcılar uygulamanızı güncellediğinizde, Google Play onlara tüm APK'ların güncellenmiş sürümlerini sunar Cihazda yüklü olarak. Yani yüklenen tüm APK'lar yeni sürüm kodunu kontrol edin.
Dikkat edilmesi gereken diğer noktalar
- Uygulama imzalama: Derleme dosyalarınıza imzalama bilgilerini eklerseniz bunu yalnızca temel modülün derleme yapılandırma dosyasına eklemeniz gerekir. Daha fazla bilgi için bkz. Uygulamanızı imzalamak için Gradle'ı yapılandırın.
- Kod küçültme:
için kod küçültmeyi etkinleştirin
(özellik modülleri de dahil olmak üzere) tüm uygulama projesini
Temel modülün build.gradle dosyasından oluşturun. Yani, projenizin kapsamını
bir özellik modülüne özel ProGuard kuralları ekleyebilir,
ancak özellikteki
minifyEnabled
özelliği modül derleme yapılandırmaları yoksayılır. splits
bloğu yok sayılır: Uygulama paketi oluştururken Gradleandroid.splits
bloğundaki özellikleri yoksayar. Tüm kullanıcılarınıza uygulama paketinizin desteklediği yapılandırma APK'ları türlerini kullanmak yerineandroid.bundle
- yapılandırma APK'sı türlerini devre dışı bırakın.- Uygulama sürümü oluşturma: Temel modül, sürüm kodunu ve sürümü belirler adı kullanabilirsiniz. Daha fazla bilgi için Uygulama güncellemelerini yönetme hakkında daha fazla bilgi edinin.
Yapılandırma APK'sı türlerini yeniden etkinleştirme veya devre dışı bırakma
Uygulama paketi derlediğinizde varsayılan olarak yapılandırma oluşturmayı destekler
Her dil kaynağı, ekran yoğunluğu kaynağı ve ABI grubu için APK'lar
kitaplıklar. Temel modülünüzdeki android.bundle
bloğunu kullanma
build.gradle
dosyasında, aşağıda gösterildiği gibi bir veya daha fazla uygulama için desteği devre dışı bırakabilirsiniz
yapılandırma APK'larının türleri:
Eski
android { // When building Android App Bundles, the splits block is ignored. // You can remove it, unless you're going to continue to build multiple // APKs in parallel with the app bundle splits {...} // Instead, use the bundle block to control which types of configuration APKs // you want your app bundle to support. bundle { language { // This property is set to true by default. // You can specify `false` to turn off // generating configuration APKs for language resources. // These resources are instead packaged with each base and // feature APK. // Continue reading below to learn about situations when an app // might change setting to `false`, otherwise consider leaving // the default on for more optimized downloads. enableSplit = false } density { // This property is set to true by default. enableSplit = true } abi { // This property is set to true by default. enableSplit = true } } }
Kotlin
android { // When building Android App Bundles, the splits block is ignored. // You can remove it, unless you're going to continue to build multiple // APKs in parallel with the app bundle splits {...} // Instead, use the bundle block to control which types of configuration APKs // you want your app bundle to support. bundle { language { // This property is set to true by default. // You can specify `false` to turn off // generating configuration APKs for language resources. // These resources are instead packaged with each base and // feature APK. // Continue reading below to learn about situations when an app // might change setting to `false`, otherwise consider leaving // the default on for more optimized downloads. enableSplit = false } density { // This property is set to true by default. enableSplit = true } abi { // This property is set to true by default. enableSplit = true } } }
Dil değişikliklerini işleme
Google Play, uygulamaya göre hangi dil kaynaklarının yükleneceğini belirler kullanıcının cihaz ayarlarındaki dil seçimine dokunun. Şu özelliklere sahip bir kullanıcı düşünün: uygulamanızı indirdikten sonra varsayılan sistem dilini değiştirir. Uygulamanız bu dili destekliyorsa cihaz, sizden başka dil de yapılandırma APK'larını yükleyebilirsiniz.
Uygulama içinde bir dil seçici sunan ve dinamik olarak
Sistem düzeyindeki dil ayarından bağımsız olarak uygulamanın dilini değiştirebilirsiniz.
eksik kaynaklardan kaynaklanan kilitlenmeleri önlemek için bazı değişiklikler yapmanız gerekiyor. İkisinden biri
android.bundle.language.enableSplit
özelliğini false
olarak ayarlayın veya
Play Core kitaplığını kullanarak isteğe bağlı dil indirmelerini
Ek dil kaynaklarını indirme başlıklı makalede açıklanmıştır