bundletool
to podstawowe narzędzie, z którego korzysta Android Studio, czyli Android Gradle.
i Google Play do utworzenia pakietu Android App Bundle. bundletool
może przekonwertować pakiet aplikacji na różne pliki APK wdrażane na urządzeniach.
Pakiety Android SDK (ASB) i ich pliki APK są tworzone za pomocą bundletool
. Jest
są także dostępne jako narzędzie wiersza poleceń, dzięki czemu możesz tworzyć pakiety aplikacji
Pakiet SDK tworzy pakiet SDK i odtwarza kompilację po stronie serwera aplikacji Google Play
Pliki APK lub plik
Pliki APK pakietu SDK z obsługą środowiska wykonawczego.
Pobierz język bundletool
Jeśli jeszcze nie masz tego za sobą, pobierz bundletool
z
Repozytorium GitHub.
Tworzenie i testowanie pakietu aplikacji
Możesz użyć Android Studio lub narzędzia wiersza poleceń bundletool
, aby utworzyć
Android App Bundle, a następnie przetestuj generowanie plików APK z tego pakietu.
Utwórz pakiet aplikacji
Użyj Android Studio i wtyczki Android do obsługi Gradle, aby
skompiluj i podpisz pakiet Android App Bundle.
Jeśli jednak użycie IDE nie jest możliwe – na przykład używasz
lub ciągły serwer kompilacji.
stworzenie pakietu aplikacji z poziomu wiersza poleceń
i podpisz ją za pomocą
jarsigner
.
Więcej informacji o tworzeniu pakietów aplikacji za pomocą bundletool
:
zobacz
Utwórz pakiet aplikacji za pomocą narzędzia bundletool
Generowanie zestawu plików APK z pakietu aplikacji
Po utworzeniu pakietu Android App Bundle sprawdź, jak Google Play używa go do generowania plików APK i określania ich działania po wdrożeniu na urządzeniu.
Pakiet aplikacji możesz przetestować na 2 sposoby:
- Użyj narzędzia wiersza poleceń
bundletool
lokalnie. - Przesyłanie pakietu do Konsoli Play w Google Play za pomocą ścieżki testów.
Z tej sekcji dowiesz się, jak za pomocą bundletool
przetestować pakiet aplikacji lokalnie.
Gdy bundletool
generuje pliki APK z pakietu aplikacji, zawiera wygenerowany plik APK
pliki APK w kontenerze nazywanym archiwum zestawu plików APK, który korzysta z pliku .apks
. Aby wygenerować plik APK ustawiony dla wszystkich konfiguracji urządzeń, Twoja aplikacja
z pakietu aplikacji, użyj polecenia bundletool build-apks
jako
wyświetlono:
bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
Jeśli chcesz wdrożyć pliki APK na urządzeniu, musisz też dołączyć do pliku
zgodnie z poniższym poleceniem. Jeśli nie określisz
informacje o podpisywaniu, bundletool
próbuje podpisać Twoje pliki APK przy użyciu klucza debugowania
dla Ciebie.
bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks --ks=/MyApp/keystore.jks --ks-pass=file:/MyApp/keystore.pwd --ks-key-alias=MyKeyAlias --key-pass=file:/MyApp/key.pwd
W tabeli poniżej opisujemy różne flagi i opcje, które możesz ustawić podczas
używając polecenia bundletool build-apks
:
Tabela 1. Opcje
Polecenie bundletool build-apks
Zgłoś | Opis |
---|---|
--bundle=path |
(Wymagane) Określa ścieżkę do pakietu aplikacji. które udało Ci się utworzyć w Android Studio. Więcej informacji: Utwórz projekt. |
--output=path |
(Wymagane) Określa nazwę danych wyjściowych.
.apks , który zawiera wszystkie artefakty pakietu APK
. Aby przetestować artefakty w tym pliku na urządzeniu, wykonaj czynności opisane w
sekcję z informacjami o wdrażaniu plików APK
z połączonym urządzeniem.
|
--overwrite |
Zastępuje dowolny istniejący plik wyjściowy kodem
ścieżkę określoną za pomocą opcji --output . Jeśli
nie uwzględnia tej flagi, a plik wyjściowy już istnieje, otrzymasz
błąd kompilacji.
|
--aapt2=path |
Określa niestandardową ścieżkę do AAPT2.
Domyślnie bundletool zawiera własną wersję AAPT2.
|
--ks=path |
(Opcjonalnie) Określa ścieżkę do magazynu kluczy wdrożenia, który jest używany do
i podpisać pliki APK. Jeśli nie podasz tej flagi,
bundletool próbuje podpisać Twoje pliki APK za pomocą podpisywania debugowania
.
|
--ks-pass=pass:password lub --ks-pass=file:/path/to/file |
Określa hasło do magazynu kluczy. Jeśli
wpisz hasło zwykłym tekstem, zastosuj je za pomocą funkcji pass: .
Jeśli przekazujesz ścieżkę do pliku zawierającego hasło, zostaną sklasyfikowane
go w usłudze file: . Jeśli określisz magazyn kluczy za pomocą atrybutu
flagę --ks bez określania --ks-pass ,
bundletool prosi o podanie hasła przy użyciu wiersza poleceń.
|
--ks-key-alias=alias |
Określa alias klucza podpisywania, który chcesz stosować i ich używanie. |
--key-pass=pass:password lub --key-pass=file:/path/to/file |
Określa hasło klucza podpisywania. Jeśli
wpisz hasło zwykłym tekstem, zastosuj je za pomocą funkcji pass: .
Jeśli przekazujesz ścieżkę do pliku zawierającego hasło, zostaną sklasyfikowane
go w usłudze file: . Jeśli to hasło jest identyczne z tym hasłem dla magazynu kluczy, możesz pominąć tę flagę. |
--connected-device |
Instruuje bundletool do utworzenia plików APK kierowanych na
konfiguracji połączonego urządzenia. Jeśli nie podasz tej flagi,
bundletool generuje pliki APK dla wszystkich konfiguracji urządzeń
obsługiwanych przez aplikacje.
|
--device-id=serial-number |
Jeśli masz więcej niż 1 połączone urządzenie, za pomocą tej flagi określ identyfikator seryjny urządzenia, na którym chcesz wdrożyć aplikację. |
--device-spec=spec_json |
Dostarcza ścieżkę do
Plik .json określający żądaną konfigurację urządzenia
na które mają być kierowane reklamy. Więcej informacji znajdziesz w sekcji
Generowanie i używanie pliku JSON specyfikacji urządzenia
.
|
--mode=universal |
Ustawia tryb na universal . Użyj tej opcji, jeśli chcesz,
bundletool , aby utworzyć jeden plik APK zawierający wszystkie
kod i zasoby aplikacji w taki sposób, aby pakiet APK był zgodny ze wszystkimi
konfiguracji urządzeń obsługiwanych przez aplikację.
Uwaga: Pamiętaj, że te pliki APK są większe niż pliki zoptymalizowane dla konkretnej konfiguracji urządzenia. Są one jednak można udostępniać testerom wewnętrznym, którzy na przykład chcesz przetestować aplikację na różnych konfiguracjach urządzeń. |
--local-testing
|
Umożliwia testowanie pakietu aplikacji lokalnie.
Testy lokalne umożliwiają przeprowadzanie szybkich, iteracyjnych cykli testowania bez konieczności
aby przesłać je na serwery Google Play.
Oto przykład, jak przetestować instalację modułu za pomocą
flaga |
Wdrażanie plików APK na połączonym urządzeniu
Gdy wygenerujesz zestaw plików APK, bundletool
może wdrożyć odpowiednie
kombinacji plików APK z tego zestawu na połączone urządzenie.
Na przykład jeśli masz połączone urządzenie z Androidem 5.0 (poziom interfejsu API 21)
lub nowszy, bundletool
przekazuje podstawowy plik APK, pliki APK modułu funkcji i
plików APK konfiguracji wymaganych do uruchomienia aplikacji na danym urządzeniu. Ewentualnie, jeśli
na połączonym urządzeniu jest zainstalowany Android 4.4 (poziom interfejsu API 20) lub niższy;
bundletool
szuka zgodnego wielu plików APK, które można wdrożyć na urządzeniu.
Aby wdrożyć aplikację z zestawu plików APK, użyj polecenia install-apks
i podaj
ścieżki pliku APK ustawionej za pomocą parametru
flagę --apks=/path/to/apks
jako
w tym poleceniu. Jeśli masz podłączonych kilka urządzeń,
określ urządzenie docelowe, dodając
flaga --device-id=serial-id
.
bundletool install-apks --apks=/MyApp/my_app.apks
Generowanie zestawu plików APK przeznaczonych na konkretne urządzenia
Jeśli nie chcesz tworzyć zestawu plików APK dla wszystkich konfiguracji urządzeń,
możesz tworzyć pliki APK kierowane wyłącznie na konfigurację
przy użyciu opcji --connected-device
, jak pokazano w poniższym poleceniu.
Jeśli masz podłączonych kilka urządzeń, określ urządzenie docelowe, dodając parametr
flaga --device-id=serial-id
.
bundletool build-apks --connected-device --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
Generowanie i używanie plików JSON specyfikacji urządzenia
bundletool
może wygenerować zestaw plików APK przeznaczony na urządzenie
konfiguracji określonej w pliku JSON. Aby najpierw wygenerować plik JSON dla
podłączonego urządzenia, uruchom to polecenie:
bundletool get-device-spec --output=/tmp/device-spec.json
bundletool
utworzy w katalogu narzędzia plik JSON dla Twojego urządzenia. Ty
można przekazać plik do bundletool
, by wygenerować zestaw plików APK,
kierować wyłącznie na konfigurację opisaną w tym pliku JSON w następujący sposób:
bundletool build-apks --device-spec=/MyApp/pixel2.json --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
Ręczne tworzenie pliku JSON specyfikacji urządzenia
Jeśli nie masz dostępu do urządzenia, na które chcesz utworzyć ustawiony plik APK – na przykład jeśli chcesz wypróbować aplikację na urządzeniu, na którym nie masz dostępu. możesz ręcznie utworzyć plik JSON w następującym formacie:
{
"supportedAbis": ["arm64-v8a", "armeabi-v7a"],
"supportedLocales": ["en", "fr"],
"screenDensity": 640,
"sdkVersion": 27
}
Następnie możesz przekazać ten plik JSON do polecenia bundle extract-apks
zgodnie z opisem
w poprzedniej sekcji.
Wyodrębnianie plików APK przeznaczonych na konkretne urządzenie z istniejącego zestawu plików APK
Jeśli masz już zestaw plików APK i chcesz z niego wyodrębnić podzbiór plików APK
kierowane na określoną konfigurację urządzenia, możesz użyć extract-apks
i określ specyfikację urządzenia w formacie JSON w następujący sposób:
bundletool extract-apks --apks=/MyApp/my_existing_APK_set.apks --output-dir=/MyApp/my_pixel2_APK_set.apks --device-spec=/MyApp/bundletool/pixel2.json
Pomiar szacowanych rozmiarów plików APK do pobrania w zestawie APK
Do pomiaru szacunkowych rozmiarów pobieranych plików APK w ustawionym pliku APK
ma być skompresowana po sieci, użyj polecenia get-size total
:
bundletool get-size total --apks=/MyApp/my_app.apks
Działanie polecenia get-size total
możesz zmienić za pomocą
następujące flagi:
Tabela 2. Opcje
Polecenie get-size total
Zgłoś | Opis |
---|---|
--apks=path |
(Wymagane) Określa ścieżkę do istniejącego pliku zestawu APK. których rozmiar pobierania jest mierzony. |
--device-spec=path |
Określa ścieżkę do pliku specyfikacji urządzenia (z
get-device-spec lub utworzonego ręcznie).
Aby ocenić zbiór konfiguracji, możesz podać częściową ścieżkę.
|
--dimensions=dimensions
| Określa wymiary używane do obliczania szacunkowych rozmiarów. Akceptuje
rozdzielana przecinkami lista: SDK , ABI ,
SCREEN_DENSITY i LANGUAGE . Aby mierzyć
wszystkich wymiarów, wybierz ALL .
|
--instant |
Mierzy rozmiar pobieranych plików APK z obsługą wersji błyskawicznej, a nie
plików APK z możliwością zainstalowania. Domyślnie bundletool mierzy:
rozmiar pobieranych plików APK z możliwością zainstalowania.
|
--modules=modules |
Określa rozdzieloną przecinkami listę modułów w zestawie APK do rozważenia.
w pomiarze. Polecenie bundletool automatycznie
obejmuje wszystkie moduły zależne dla określonego zbioru, Domyślnie atrybut
mierzy rozmiar pobierania wszystkich modułów zainstalowanych podczas
po pierwszym pobraniu.
|
Tworzenie pakietu aplikacji za pomocą zależności pakietu SDK (funkcja eksperymentalna)
Możesz utworzyć pakiet Android App Bundle, korzystając z zależności Android SDK Bundle (ASB) z wiersza poleceń i podpisz go jarsigner.
Każdy moduł pakietu aplikacji zawiera plik Module Protocol Buffer (.pb
):
runtime_enabled_sdk_config.pb
Ten plik zawiera listę pakietów SDK
od modułu pakietu aplikacji. Aby zobaczyć pełną definicję tego pliku,
zobacz
runtime_enabled_sdk_config.proto
.
Aby utworzyć pakiet aplikacji o zależności pakietu SDK, wykonaj czynności z sekcji dotyczącej
utwórz pakiet aplikacji za pomocą narzędzia bundletool i dodaj polecenie
runtime_enabled_sdk_config.pb
do pliku ZIP każdego modułu aplikacji
ze skompilowanym kodem i zasobami.
Niektóre ważne pola w pliku runtime_enabled_sdk_config.pb
:
Skrót certyfikatu: skrót SHA-256 certyfikatu dla klucza. używany do podpisywania plików APK pakietu SDK. Odpowiada to certyfikatowi w
SdkMetadata.pb
w formacie archiwum Android SDK.Resources Package ID (Identyfikator pakietu zasobów): identyfikator wszystkich zasobów w tym pakiecie SDK. są zmapowane podczas generowania plików APK na potrzeby umieszczenia pakietu SDK w aplikacji. Zapewnia to zgodność wsteczną.
Pakiet SDK może występować tylko w jednym module. Jeśli wiele modułów jest zależnych od tego samego SDK, należy usunąć duplikaty tej zależności i przenieść ją do modułu podstawowego. Poszczególne moduły nie mogą zależeć od różnych wersji pakietu SDK.
Generowanie plików APK z pakietu aplikacji o zależności pakietu SDK (funkcja eksperymentalna)
Aby wygenerować pliki APK z pakietu aplikacji, wykonaj czynności opisane w sekcji dotyczącej
generując zestaw plików APK z pakietu aplikacji
albo w sekcji na temat
generowanie zestawu plików APK przeznaczonych na konkretne urządzenia
i udostępnić polecenie bundletool build-apks
w pakietach SDK,
w zależności od aplikacji. Te pakiety SDK można udostępniać w formacie SDK lub jako pakiet SDK.
Format archiwum.
Możesz dostarczać pakiety SDK jako pakiety SDK, dodając flagę --sdk-bundles
jako
następujące:
bundletool build-apks --bundle=app.aab --sdk-bundles=sdk1.asb,sdk2.asb \ --output=app.apks
Pakiety SDK możesz przesyłać jako archiwa SDK, dodając flagę --sdk-archives
,
w następujący sposób:
bundletool build-apks --bundle=app.aab --sdk-archives=sdk1.asar,sdk2.asar \ --output=app.apks
Generuj pliki APK z pakietu aplikacji zależnego od pakietu SDK w przypadku urządzeń nieobsługujących biblioteki SDK
Urządzenia starsze niż Android 13 nie obsługują instalowania ani uruchamiania bibliotek SDK
w środowisku wykonawczym pakietu SDK. Pakiet Bundletool ukrywa złożoność wsteczną i
generuje wiele wariantów pakietu APK z tego samego pakietu aplikacji,
uruchom polecenie bundletool build-apks
z opcją --sdk-bundles
lub --sdk-archives
.
Te różne warianty są kierowane na urządzenia o różnych możliwościach:
- Istnieje wariant przeznaczony dla nowszych urządzeń, w których pakiet SDK jest zainstalowany jako osobny z aplikacji, a pliki APK aplikacji nie zawierają żadnych treści z pakietu SDK.
- Istnieją co najmniej 1 wariant dla starszych urządzeń, do których dodano pliki APK SDK. do pakietu APK aplikacji ustawionego jako dodatkowe pakiety APK. Pliki APK pakietu SDK należą do aplikacji pakietu SDK. W tym przypadku środowisko wykonawcze SDK jest emulowane w środowisku wykonawczym aplikacji w urządzenia.
Podobnie jak w przypadku generowania plików APK dla pakietów aplikacji bez zależności od SDK,
bundletool extract-apks
i bundletool install-apks
zwracają przefiltrowany zbiór wartości
Pliki APK z najlepszej wersji dla połączonego urządzenia lub danego urządzenia
config.
Zaawansowane zastosowania, które interesują tylko generowanie podziałów plików APK
z archiwum pakietu SDK dla określonej aplikacji na starsze urządzenia, użyj
bundletool build-sdk-apks-for-app
w następujący sposób:
bundletool build-sdk-apks-for-app --app-properties=app-properties.json \ --sdk-archive=sdk.asar --output=sdk.apks
Plik app-properties
powinien zawierać pola opisane w
runtime_enabled_sdk_config.proto
. Oto co app-properties
wygląda tak:
{
"package_name": "com.my.app",
"version_code": 1234,
"min_sdk_version": 21,
"resources_package_id": 0x7e
}
Polecenie bundletool build-sdk-apks-for-app
generuje podzbiór aplikacji
Pliki APK odpowiadające zawartości pakietu SDK w nazwie pakietu aplikacji. Dostępne opcje
łączyć te pliki APK z innymi plikami APK zawierającymi treść aplikacji. Jeśli na przykład
tworzy się je osobno i stopniowo, a potem instaluje się razem na urządzeniu.
który nie obsługuje środowiska wykonawczego SDK.
Tworzenie i testowanie pakietu SDK (funkcja eksperymentalna)
Za pomocą bundletool
możesz utworzyć system ASB i przetestować generowanie
pliki wymagane do instalacji i dystrybucji.
Utwórz pakiet SDK
Plik ASB możesz utworzyć i podpisać z poziomu wiersza poleceń za pomocą jarsigner.
Aby utworzyć pakiet SDK, wykonaj te czynności:
Wygeneruj plik manifestu i zasoby pakietu SDK w formacie proto wykonując te same czynności co w przypadku pakietów aplikacji.
Zapakuj skompilowany kod i zasoby pakietu SDK do podstawowego pliku ZIP, tak samo jak w przypadku modułu aplikacji.
Wygeneruj plik
SdkModulesConfig.pb.json
iSdkBundleConfig.pb.json
zgodny z formatem opisanym w Specyfikacja pakietu Android SDK.Utwórz swój system ASB przy użyciu polecenia
bundletool build-sdk-bundle
zgodnie z następujące:
bundletool build-sdk-bundle --sdk-bundle-config=SdkBundleConfig.pb.json \ --sdk-modules-config=SdkModulesConfig.pb.json \ --modules=base.zip --output=sdk.asb
W tabeli poniżej opisujemy różne flagi i opcje, które możesz ustawić podczas
za pomocą polecenia bundletool build-sdk-bundle
.
Tabela 3. Opcje
Polecenie bundletool build-sdk-bundle
Zgłoś | Opis |
---|---|
--modules |
(Wymagane) Plik modułu, z którego ma utworzyć ostateczną wersję ASB od. |
--output |
(Wymagane) Ścieżka do miejsca, w którym ma zostać utworzony punkt ASB. |
--sdk-modules-config |
(Wymagane) Ścieżka do pliku JSON opisującego konfigurację. modułów SDK. Aby dowiedzieć się, jak sformatować plik JSON, zobacz Specyfikacja pakietu Android SDK. |
--sdk-bundle-config |
Ścieżka do pliku JSON opisującego konfigurację pakietu SDK. Aby dowiedzieć się, jak sformatować plik JSON, zobacz Specyfikacja pakietu Android SDK. |
--metadata-file |
Plik, w którym mają zostać uwzględnione metadane dla ASB.
Format wartości flagi to
<bundle-path>:<physical-file> ,
gdzie <bundle-path> oznacza lokalizację pliku w
Katalog metadanych pakietu SDK, a <physical-file> to
w istniejącym pliku, który zawiera nieprzetworzone dane, które mają być przechowywane. Flaga może być np.
powtórzenia.
|
--overwrite |
Jeśli ta opcja jest skonfigurowana, zastępuje wszystkie wcześniejsze dane wyjściowe. |
Generowanie plików APK z pakietu SDK
Po utworzeniu pakietu SDK możesz przetestować go lokalnie przez
plików APK za pomocą polecenia bundletool build-sdk-apks
, jak widać w tabeli
ten kod:
bundletool build-sdk-apks --sdk-bundle=sdk.asb --output=sdk.apks
Gdy bundletool
generuje pliki APK z pakietu SDK, narzędzie zawiera komponent
Pakiety APK w kontenerze nazywanym archiwum zestawu plików APK, który korzysta z pliku .apks
. bundletool
generuje 1 samodzielny plik APK z pakietu SDK
która kieruje reklamy na wszystkie konfiguracje urządzeń.
Jeśli chcesz wdrożyć ASB na urządzeniu, musisz też dodać kod aplikacji informacje o podpisie, które widzisz w tym poleceniu:
bundletool build-sdk-apks --sdk-bundle=sdk.asb --output=sdk.apks \ --ks=keystore.jks \ --ks-pass=file:/keystore.pwd \ --ks-key-alias=KeyAlias \ --key-pass=file:/key.pwd
W tabeli poniżej opisujemy różne flagi i opcje, które możesz ustawić podczas
za pomocą polecenia bundletool build-sdk-apks
.
Tabela 4. Opcje
Polecenie bundletool build-sdk-apks
Zgłoś | Opis |
---|---|
--sdk-bundle |
(Wymagane) Ścieżka do pakietu SDK. Musi mieć rozszerzenie
.asb
|
--output |
(Wymagane) Domyślnie ścieżka, w której plik APK ma być archiwizowany.
do utworzenia. Ewentualnie, jeśli używasz
--output-format=DIRECTORY ,
to ścieżka do katalogu, w którym mają być przechowywane wygenerowane pliki APK.
|
--ks |
Ścieżka do magazynu kluczy, którego chcesz użyć do podpisania plików APK. |
--ks-key-alias |
Alias klucza, który ma być używany w magazynie kluczy do podpisywania plików APK. |
--key-pass |
Hasło klucza w magazynie kluczy, które będzie używane do podpisania wygenerowanego plików APK. Jeśli przekazujesz hasło w postaci zwykłego tekstu, musisz dodać prefiks do wartości
dzięki Jeśli ta flaga nie jest ustawiona, magazyn kluczy podjęto próbę wprowadzenia hasła. Jeśli to nie pomoże, w terminalu wiersza poleceń pojawi się prośba o wpisanie hasło. |
--ks-pass |
Hasło magazynu kluczy, które ma być używane do podpisywania wygenerowanych plików APK. Jeśli przekazujesz hasło w postaci zwykłego tekstu, musisz dodać prefiks do wartości
dzięki Jeśli ta flaga nie jest ustawiona, parametr terminal w wierszu poleceń wymaga podania hasła. |
--aapt2 |
Ścieżka do pliku binarnego AAPT2, którego chcesz użyć. |
--output-format |
Format wyjściowy wygenerowanych plików APK. Domyślnie ta opcja to
APK_SET , który przesyła pliki APK do archiwum zestawu plików APK,
Utworzono. Jeśli ma wartość DIRECTORY , pliki APK są przesyłane do pliku
w katalogu określonym przez --output . |
--verbose |
Jeśli jest ustawione, powoduje wydrukowanie dodatkowych informacji o wykonaniu polecenia w standardowy strumień wyjścia. |
--version-code |
Kod wersji pakietu SDK. To jest kod wersji używany przez platformę Androida aby zainstalować pakiet APK, a nie wersję pakietu SDK. Jako wartość tej opcji można ustawić: dowolną wartość. Jeśli nie jest skonfigurowana, stosowana jest domyślna wartość 0. |
--overwrite |
Jeśli ta opcja jest skonfigurowana, zastępuje wszystkie wcześniejsze dane wyjściowe. |
Wdrażanie, wyodrębnianie i mierzenie rozmiaru plików APK z pakietem SDK
Możesz wykonać te same czynności co w przypadku wdrażania aplikacji pliki APK na połączone urządzenie, wyodrębnianie danych dla konkretnego urządzenia; pliki APK z istniejącego zestawu plików APK i mierzyć szacowane wartości rozmiarów pobierania plików APK w zestawie plików APK.
Generowanie archiwum SDK z pakietu SDK
Po przesłaniu pliku ASB do kanału dystrybucji przez
np. Google Play, interfejs ASB jest przekształcany w pakiet SDK na Androida
Archiwizuj (.asar
) na potrzeby dystrybucji wśród deweloperów aplikacji za pomocą Maven. Więcej
informacji na temat formatu można znaleźć w sekcji dotyczącej
Specyfikacja formatu archiwum SDK.
Po utworzeniu ASB możesz przetestować
Zarchiwizuj pakiet Android SDK lokalnie za pomocą polecenia bundletool build-sdk-asar
, jak
w tym kodzie:
bundletool build-sdk-asar --sdk-bundle=sdk.asb --output=sdk.asar \ --apk-signing-key-certificate=keycert.txt
W tabeli poniżej opisujemy różne flagi i opcje, które możesz ustawić podczas
za pomocą polecenia bundletool build-sdk-asar
.
Tabela 5. Opcje
Polecenie bundletool build-sdk-asar
Zgłoś | Opis |
---|---|
--apk-signing-key-certificate |
(Wymagane) Ścieżka do certyfikatu podpisywania pliku APK pakietu SDK. To jest
certyfikat odpowiadający kluczowi użytemu do podpisania plików APK w
build-sdk-apks .
|
--output |
(Wymagane) Ścieżka, w której ma znajdować się plik .asar .
Utworzono.
|
--sdk-bundle |
(Wymagane) Ścieżka do pakietu SDK. Musi mieć rozszerzenie
.asb
|
--overwrite |
Jeśli ta opcja jest skonfigurowana, zastępuje wszystkie wcześniejsze dane wyjściowe. |
Formaty SDK z obsługą środowiska wykonawczego (funkcja eksperymentalna)
Pakiety SDK z obsługą środowiska wykonawczego wprowadzają 2 formaty plików na Androida:
- Pakiet Android SDK (
.asb
) używany do publikowania pakietu SDK z włączonym środowiskiem wykonawczym do sklepów z aplikacjami. - Archiwum Android SDK Archive (
.asar
) używane do rozpowszechniania pakiet SDK z włączonym środowiskiem wykonawczym w Maven.
Format pakietu Android SDK
Pakiet SDK to format publikowania pakietów SDK używanych w czasie działania aplikacji. Zawiera wszystkie kod i zasoby pakietu SDK, w tym kod z bibliotek pakietu SDK; zależy od tego, Nie zawiera kodu ani zasobów innych aplikacji działających w środowisku wykonawczym Pakiety SDK, od których zależy ten pakiet SDK.
Android SDK Bundle (ASB) to podpisany plik ZIP z rozszerzeniem
.asb
Kod i zasoby pakietu SDK są w nim zorganizowane podobnie jak
który znajduje się w pakiecie APK. Plik ASB zawiera też kilka plików konfiguracji, które pomagają
wygenerować pliki APK z możliwością zainstalowania.
![](https://developer.android.com/static/studio/images/command-line/asb-format.png?authuser=19&hl=pl)
Na poniższej liście opisujemy niektóre pliki ASB w bardziej szczegóły:
SdkBundleConfig.pb
: plik konfiguracji w formacie proto, zawierający lista pakietów SDK używanych w czasie działania aplikacji, od których zależy działanie Twojego pakietu SDK. Aby uzyskać pełną definicję znajdziesz wsdk_bundle_config.proto
.modules.resm
: plik ZIP zawierający wszystkie dane potrzebne do wygenerowania pliki APK z pakietu SDK.SdkModulesConfig.pb
: plik konfiguracji w formacie proto. Ten plik zawiera nazwę pakietu SDK, wersję i nazwę klasy punktu wejścia pakietu SDK dla platforma (SandboxedSdkProvider
). Pełną definicję znajdziesz tutajsdk_modules_config.proto
.base/
: pojedynczy moduł zawierający kod i zasoby SDK.manifest/
: plik manifestu pakietu SDK w formacie proto.dex/
: skompilowany kod w formacie DEX. Można podać wiele plików DEX.res/
,lib/
,assets/
: te katalogi są identyczne z katalogami w typowy plik APK. Ścieżki w tych katalogach są zachowywane podczas generowania Pliki APK pakietu SDK.root/
: w tym katalogu są przechowywane pliki, które zostaną później przeniesione do katalogu głównego pakietów APK. Mogą one na przykład obejmować zasoby oparte na Javie, które Twój pakiet SDK wczytuje się za pomocąClass.getResource()
. Ścieżki w tym katalogu również są zachowywane.
BUNDLE-METADATA
: w tym katalogu znajdują się pliki metadanych zawierające przydatne w przypadku narzędzi lub sklepów z aplikacjami. Takie pliki metadanych mogą uwzględnij mapowania ProGuard i pełną listę plików DEX Twojego pakietu SDK. Pliki z tego katalogu nie są spakowane do plików APK pakietu SDK.
Format archiwum Android SDK
Android SDK Archive to format dystrybucji pakietu SDK używanego w czasie działania aplikacji na
Maven. Jest to plik ZIP z rozszerzeniem .asar
. Plik
zawiera wszystkie informacje potrzebne narzędziom do tworzenia aplikacji
pakietu Android App Bundle, który zależy od pakietu SDK używanego w czasie działania aplikacji.
![](https://developer.android.com/static/studio/images/command-line/asar-format.png?authuser=19&hl=pl)
Na tej liście opisujemy niektóre pliki Android SDK Archive w szczegóły:
SdkMetadata.pb
: plik konfiguracji w formacie proto zawierający Nazwa i wersja pakietu SDK oraz skrót certyfikatu dla klucza używanego do podpisywania Pliki APK wygenerowane dla tego pakietu SDK. Pełną definicję znajdziesz tutajsdk_metadata.proto
.modules.resm
: plik ZIP zawierający wszystkie dane potrzebne do wygenerowania pliki APK z pakietu SDK. Jest taki sam jak plik.resm
w Pakiet Android SDK.AndroidManifest.xml
: plik manifestu pakietu SDK w formacie tekstowym XML.
Dodatkowe materiały
Aby dowiedzieć się więcej o korzystaniu z usługi bundletool
, obejrzyj
Pakiety aplikacji: testowanie pakietów za pomocą narzędzia bundletool i Konsoli Play.