Pakiet aplikacji różni się od pliku APK tym, że nie można go wdrożyć w urządzenia. Jest to format publikowania, który obejmuje wszystkie i zasobów w jednym artefaktie kompilacji. Po przesłaniu podpisanego pakietu aplikacji, Google Play ma wszystko, czego potrzebuje, by utworzyć i podpisać pliki APK aplikacji i udostępniać je użytkownikom.
Rozpocznij
Obsługa pakietów Android App Bundle nie wymaga dużego wysiłku dla większości projektów aplikacji.
Dzieje się tak, ponieważ moduł zawierający kod i zasoby dla aplikacji
APK to standardowy moduł aplikacji, który domyślnie pojawia się po
utworzyć nowy projekt aplikacji w Android Studio.
To oznacza, że moduł, który stosuje poniższą wtyczkę application
do swoich
Plik build.gradle
zawiera kod i zasoby funkcji podstawowej
Twojej aplikacji.
Odlotowe
// 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") }
Moduł podstawowy nie tylko zapewnia podstawową funkcjonalność aplikacji, udostępnia też wiele konfiguracji kompilacji i wpisów manifestu, które na cały projekt aplikacji.
Konfiguracja kompilacji modułu podstawowego
W większości dotychczasowych projektów aplikacji nie musisz niczego zmieniać w podstawowej bazie. konfiguracji kompilacji modułu. Jeśli jednak rozważasz dodanie modułów funkcji do projektu aplikacji lub jeśli aplikacja została już opublikowana za pomocą wielu plików APK, istnieją pewne aspekty konfiguracji kompilacji modułu podstawowego o których warto pamiętać.
Kod wersji i aktualizacje aplikacji
Dzięki pakietom Android App Bundle nie musisz już zarządzać kodów wersji wielu plików APK, które przesyłasz do Google Play. Zamiast tego: zarządzać tylko jednym kodem wersji w module podstawowym aplikacji, jak pokazano poniżej:
// 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"
}
}
Gdy prześlesz pakiet aplikacji, Google Play użyje kodu wersji w pliku podstawowego modułu do przypisania tego samego kodu wersji do wszystkich generowanych plików APK i tego pakietu. Oznacza to, że gdy urządzenie pobiera i zainstaluje aplikację, wszystkie Pliki APK tej aplikacji mają ten sam kod wersji.
Aby dodać do aplikacji nowy kod lub zasoby, musisz zaktualizować kod wersji w podstawowym module aplikacji i utwórz nowy, pełny pakiet aplikacji. Gdy prześlesz ten pakiet aplikacji do Google Play, zostanie wygenerowany nowy zestaw plików APK. na podstawie kodu wersji określonego przez moduł podstawowy. Jeśli następnie użytkownicy zaktualizuje ją, Google Play udostępnia jej zaktualizowane wersje wszystkich plików APK aktualnie zainstalowane na urządzeniu. Oznacza to, że wszystkie zainstalowane pliki APK są aktualizowane do nowego kodu wersji.
Inne rzeczy, które warto wziąć pod uwagę
- Podpisywanie aplikacji: jeśli umieszczasz informacje o podpisywaniu w plikach kompilacji, umieść go tylko w pliku konfiguracji kompilacji modułu podstawowego. Więcej informacji: Skonfiguruj Gradle, aby podpisać aplikację.
- Zmniejszanie kodu: jeśli chcesz
włącz zmniejszanie kodu na
całego projektu aplikacji (w tym jego modułów funkcji), musisz wykonać
więc z pliku build.gradle modułu podstawowego. Oznacza to, że możesz
umieszcza w module funkcji niestandardowe reguły ProGuard,
ale właściwość
minifyEnabled
w funkcji są ignorowane. - Blok
splits
jest ignorowany: podczas tworzenia pakietu aplikacji Gradle ignoruje właściwości w blokuandroid.splits
. Jeśli chcesz sterować które typy plików APK konfiguracji obsługuje pakiet aplikacji, zamiast używaćandroid.bundle
do Wyłącz typy konfiguracyjnych plików APK. - Obsługa wersji aplikacji: moduł podstawowy określa kod i wersję aplikacji. nazwę dla całego projektu aplikacji. Więcej informacji znajdziesz w sekcji o tym, jak zarządzać aktualizacjami aplikacji.
Ponowne włączanie i wyłączanie typów konfiguracyjnych plików APK
Domyślnie podczas tworzenia pakietu aplikacji obsługuje się generowanie konfiguracji
Pliki APK dla każdego zbioru zasobów językowych, zasobów gęstości ekranu i interfejsu ABI
biblioteki. Używając bloku android.bundle
w module podstawowym,
build.gradle
jak pokazano poniżej, możesz wyłączyć obsługę jednego lub wielu plików
typy konfiguracyjnych plików APK:
Odlotowe
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 } } }
Obsługa zmian językowych
Google Play określa na podstawie aplikacji, które zasoby językowe należy zainstalować o języku wybranym w ustawieniach urządzenia. Pomyśl o użytkowniku, który zmieni swój domyślny język systemu już po pobraniu aplikacji. Jeśli aplikacja obsługuje ten język, urządzenie wysyła żądanie i pobiera dodatkowe konfiguracyjne pliki APK dla tych zasobów językowych z Google Play.
W przypadku aplikacji z selektorem języka i dynamicznie
zmienić język aplikacji niezależnie od ustawienia języka na poziomie systemu,
musisz wprowadzić zmiany, aby uniknąć awarii z powodu brakujących zasobów. Oba modele
ustaw właściwość android.bundle.language.enableSplit
na false
lub rozważ
i zaimplementowaliśmy pobieranie języków na żądanie za pomocą biblioteki Play Core,
opisane w sekcji Pobieranie dodatkowych zasobów językowych