Temel modülü yapılandırın

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 Gradle android.splits bloğundaki özellikleri yoksayar. Tüm kullanıcılarınıza uygulama paketinizin desteklediği yapılandırma APK'ları türlerini kullanmak yerine android.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