bundletool
adalah alat dasar yang digunakan Android Studio, plugin
Android Gradle, dan Google Play untuk mem-build Android App Bundle. bundletool
dapat mengonversi app bundle menjadi berbagai APK yang di-deploy ke perangkat.
Android SDK Bundle (ASB) dan APK-nya dibuat dengan bundletool
. SDK ini juga
tersedia sebagai alat command line, sehingga Anda dapat mem-build app bundle dan
memaketkan SDK sendiri serta membuat kembali build sisi server Google Play untuk APK
aplikasi atau
APK SDK yang mendukung runtime.
Download bundletool
Jika belum, download bundletool
dari
repositori GitHub.
Mem-build dan menguji app bundle
Anda dapat menggunakan Android Studio atau alat command line bundletool
untuk mem-build
Android App Bundle, lalu menguji pembuatan APK dari app bundle ini.
Mem-build app bundle
Gunakan Android Studio dan plugin Android Gradle untuk
mem-build dan menandatangani Android App Bundle.
Namun, jika tidak dapat menggunakan IDE (misalnya, karena Anda menggunakan
server build berkelanjutan), Anda juga dapat
mem-build app bundle dari command line
dan menandatanganinya menggunakan
jarsigner
.
Untuk mengetahui informasi selengkapnya tentang mem-build app bundle dengan bundletool
,
lihat
Mem-build app bundle menggunakan bundletool.
Membuat satu rangkaian APK dari app bundle Anda
Setelah mem-build Android App Bundle, sebaiknya Anda menguji bagaimana Google Play menggunakannya untuk membuat APK dan bagaimana APK tersebut berperilaku saat di-deploy ke sebuah perangkat.
Ada dua cara untuk menguji app bundle:
- Gunakan alat command line
bundletool
secara lokal. - Upload paket Anda ke Konsol Play melalui Google Play dengan menggunakan jalur pengujian.
Bagian ini menjelaskan cara menggunakan bundletool
untuk menguji app bundle secara lokal.
Saat bundletool
membuat APK dari app bundle Anda, alat tersebut akan menyertakan APK yang dihasilkan
dalam penampung yang disebut arsip rangkaian APK, yang menggunakan ekstensi file
.apks
. Untuk membuat APK yang ditetapkan bagi semua konfigurasi perangkat yang
didukung oleh aplikasi Anda dari app bundle, gunakan perintah bundletool build-apks
, seperti yang
ditunjukkan:
bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
Jika ingin men-deploy APK ke perangkat, Anda juga harus menyertakan informasi
penandatanganan aplikasi seperti yang ditunjukkan dalam perintah berikut. Jika Anda tidak menentukan
informasi penandatanganan, bundletool
akan mencoba menandatangani APK dengan kunci debug
untuk Anda.
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
Tabel berikut menjelaskan berbagai flag dan opsi yang dapat ditetapkan saat
menggunakan perintah bundletool build-apks
secara lebih mendetail:
Tabel 1. Opsi untuk
perintah bundletool build-apks
Flag | Deskripsi |
---|---|
--bundle=path |
(Wajib) Menentukan jalur app bundle yang di-build menggunakan Android Studio. Untuk mempelajari lebih lanjut, baca Mem-build project Anda. |
--output=path |
(Wajib) Menentukan nama file
.apks output, yang berisi semua artefak APK untuk
aplikasi Anda. Untuk menguji artefak dalam file ini di perangkat, ikuti langkah-langkah di
bagian cara men-deploy APK
ke perangkat yang terhubung.
|
--overwrite |
Mengganti file output yang ada dengan
jalur yang Anda tentukan menggunakan opsi --output . Jika tanda
ini tidak disertakan dan file output sudah ada, Anda akan mendapatkan
error build.
|
--aapt2=path |
Menentukan jalur kustom ke AAPT2.
Secara default, bundletool menyertakan versinya sendiri untuk AAPT2.
|
--ks=path |
(Opsional) Menentukan jalur ke keystore deployment yang digunakan untuk
menandatangani APK. Jika flag ini tidak disertakan,
bundletool akan mencoba menandatangani APK Anda dengan kunci penandatanganan
debug.
|
--ks-pass=pass:password atau --ks-pass=file:/path/to/file |
Menentukan sandi keystore Anda. Jika Anda
menentukan sandi dalam teks biasa, kualifikasikan sandi dengan pass: .
Jika Anda meneruskan jalur file yang berisi sandi, kualifikasikan
dengan file: . Jika Anda menentukan keystore menggunakan
tanda --ks tanpa menentukan --ks-pass ,
bundletool akan meminta sandi dari command line.
|
--ks-key-alias=alias |
Menentukan alias dari kunci penandatanganan yang ingin Anda gunakan. |
--key-pass=pass:password atau --key-pass=file:/path/to/file |
Menentukan sandi untuk kunci penandatanganan. Jika Anda
menentukan sandi dalam teks biasa, kualifikasikan sandi dengan pass: .
Jika Anda meneruskan jalur file yang berisi sandi, kualifikasikan
dengan file: . Jika sandi ini sama dengan sandi untuk keystore, Anda dapat menghilangkan tanda ini. |
--connected-device |
Menginstruksikan bundletool untuk mem-build APK yang menargetkan
konfigurasi perangkat yang terhubung. Jika tanda ini tidak disertakan,
bundletool akan membuat APK untuk semua konfigurasi perangkat yang didukung
oleh aplikasi Anda.
|
--device-id=serial-number |
Jika ada lebih dari satu perangkat yang terhubung, gunakan tanda ini untuk menentukan ID serial perangkat tempat Anda ingin men-deploy aplikasi. |
--device-spec=spec_json |
Menyediakan jalur ke
file .json yang menentukan konfigurasi perangkat yang ingin
Anda targetkan. Untuk mempelajari lebih lanjut, buka bagian tentang cara
Membuat dan menggunakan file JSON
spesifikasi perangkat.
|
--mode=universal |
Menetapkan mode ke universal . Gunakan opsi ini jika Anda ingin
bundletool mem-build satu APK yang menyertakan semua
kode dan resource aplikasi Anda, sehingga APK tersebut kompatibel dengan semua
konfigurasi perangkat yang didukung oleh aplikasi Anda.
Catatan: Ingat bahwa APK ini berukuran lebih besar dari APK yang dioptimalkan untuk konfigurasi perangkat tertentu. Namun, APK ini lebih mudah dibagikan kepada penguji internal yang, misalnya, ingin menguji aplikasi Anda pada beberapa konfigurasi perangkat. |
--local-testing
|
Mengaktifkan app bundle untuk pengujian lokal.
Pengujian lokal memungkinkan siklus pengujian berulang yang cepat tanpa perlu
mengupload ke server Google Play.
Untuk contoh cara menguji penginstalan modul menggunakan
flag |
Men-deploy APK ke perangkat yang terhubung
Setelah Anda membuat satu rangkaian APK, bundletool
dapat men-deploy kombinasi
APK yang tepat dari rangkaian tersebut ke perangkat yang terhubung.
Misalnya, jika Anda memiliki perangkat terhubung yang menjalankan Android 5.0 (API level 21)
atau yang lebih tinggi, bundletool
akan mengirim APK dasar, APK modul fitur, dan
APK konfigurasi yang diperlukan untuk menjalankan aplikasi Anda di perangkat tersebut. Atau, jika
perangkat yang terhubung menjalankan Android 4.4 (API level 20) atau lebih rendah,
bundletool
akan menelusuri multi-APK yang kompatibel untuk di-deploy ke perangkat.
Untuk men-deploy aplikasi dari rangkaian APK, gunakan perintah install-apks
dan tentukan
jalur rangkaian APK menggunakan
flag --apks=/path/to/apks
, seperti yang
ditunjukkan dalam perintah berikut. Jika ada beberapa perangkat yang terhubung,
tentukan perangkat target
dengan menambahkan flag --device-id=serial-id
.
bundletool install-apks --apks=/MyApp/my_app.apks
Membuat rangkaian APK khusus perangkat
Jika Anda tidak ingin mem-build rangkaian APK untuk semua konfigurasi perangkat yang didukung oleh aplikasi,
Anda dapat mem-build APK yang hanya menargetkan konfigurasi perangkat
terhubung menggunakan opsi --connected-device
, seperti yang ditunjukkan dalam perintah berikut.
Jika ada
beberapa perangkat yang terhubung, tentukan perangkat target dengan menambahkan
flag --device-id=serial-id
.
bundletool build-apks --connected-device --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
Membuat dan menggunakan file JSON spesifikasi perangkat
bundletool
dapat membuat rangkaian APK yang menargetkan konfigurasi
perangkat yang ditentukan oleh file JSON. Untuk membuat file JSON terlebih dahulu bagi
perangkat yang terhubung, jalankan perintah berikut:
bundletool get-device-spec --output=/tmp/device-spec.json
bundletool
membuat file JSON untuk perangkat Anda di direktori alat. Kemudian,
Anda dapat meneruskan file ke bundletool
untuk membuat rangkaian APK yang
hanya menargetkan konfigurasi yang dijelaskan dalam file JSON tersebut seperti berikut:
bundletool build-apks --device-spec=/MyApp/pixel2.json --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
Membuat JSON spesifikasi perangkat secara manual
Jika tidak memiliki akses ke perangkat yang ingin digunakan untuk mem-build rangkaian APK yang ditargetkan, misalnya jika Anda ingin mencoba aplikasi Anda dengan perangkat yang tidak Anda miliki, Anda dapat membuat file JSON secara manual menggunakan format berikut:
{
"supportedAbis": ["arm64-v8a", "armeabi-v7a"],
"supportedLocales": ["en", "fr"],
"screenDensity": 640,
"sdkVersion": 27
}
Kemudian, Anda dapat meneruskan file JSON ini ke perintah bundle extract-apks
, seperti yang dijelaskan
di bagian sebelumnya.
Mengekstrak APK khusus perangkat dari APK yang sudah ada
Jika Anda sudah memiliki rangkaian APK dan ingin mengekstraknya untuk subset APK
yang menargetkan konfigurasi perangkat tertentu, Anda dapat menggunakan perintah extract-apks
dan menentukan JSON spesifikasi perangkat, seperti berikut:
bundletool extract-apks --apks=/MyApp/my_existing_APK_set.apks --output-dir=/MyApp/my_pixel2_APK_set.apks --device-spec=/MyApp/bundletool/pixel2.json
Memperkirakan ukuran download APK dalam rangkaian APK
Untuk memperkirakan ukuran download APK dalam rangkaian APK karena akan
disalurkan secara terkompresi melalui jaringan, gunakan perintah get-size total
:
bundletool get-size total --apks=/MyApp/my_app.apks
Anda dapat mengubah perilaku perintah get-size total
menggunakan
tanda berikut:
Tabel 2. Opsi untuk
perintah get-size total
Flag | Deskripsi |
---|---|
--apks=path |
(Diperlukan) Menentukan jalur ke file rangkaian APK yang sudah ada yang ukuran downloadnya diukur. |
--device-spec=path |
Menentukan jalur file spesifikasi perangkat (dari
get-device-spec atau dibuat secara manual) yang akan digunakan untuk pencocokan.
Anda dapat menentukan jalur parsial untuk mengevaluasi rangkaian konfigurasi.
|
--dimensions=dimensions
| Menentukan dimensi yang digunakan saat menghitung estimasi ukuran. Menerima
daftar yang dipisahkan koma untuk: SDK , ABI ,
SCREEN_DENSITY , dan LANGUAGE . Untuk mengukur
semua dimensi, tentukan ALL .
|
--instant |
Menghitung ukuran download APK yang diaktifkan secara instan dan
bukan APK yang dapat diinstal. Secara default, bundletool menghitung
ukuran download APK yang dapat diinstal.
|
--modules=modules |
Menentukan daftar yang dipisahkan koma bagi modul dalam rangkaian APK untuk dipertimbangkan
dalam pengukuran. Perintah bundletool otomatis menyertakan
setiap modul dependen untuk rangkaian yang ditentukan. Secara default, perintah
ini menghitung ukuran download semua modul yang diinstal selama
download pertama.
|
Mem-build app bundle dengan dependensi SDK bundle (eksperimental)
Anda dapat mem-build Android App Bundle dengan dependensi Android SDK Bundle (ASB) dari command line dan menandatanganinya menggunakan jarsigner.
Setiap modul app bundle berisi file Module Protocol Buffer (.pb
):
runtime_enabled_sdk_config.pb
. File ini berisi daftar SDK
yang menjadi dependensi modul app bundle. Untuk definisi lengkap file ini,
lihat file
runtime_enabled_sdk_config.proto
.
Untuk mem-build app bundle dengan dependensi SDK bundle, ikuti langkah-langkah di bagian tentang
mem-build app bundle menggunakan bundletool dan tambahkan
file runtime_enabled_sdk_config.pb
ke setiap zip modul aplikasi
file dengan kode dan sumber daya yang dikompilasi.
Beberapa kolom penting dalam file runtime_enabled_sdk_config.pb
:
Digest sertifikat: digest SHA-256 sertifikat untuk kunci yang digunakan untuk menandatangani APK SDK. Hal ini sesuai dengan sertifikat pada file
SdkMetadata.pb
dalam format Android SDK Archive.ID Paket Resource: ID paket yang menjadi tujuan pemetaan ulang semua resource dalam SDK ini saat membuat APK untuk menyematkan SDK ke dalam aplikasi. Hal ini memungkinkan kompatibilitas mundur.
SDK hanya dapat muncul dalam satu modul. Jika beberapa modul bergantung pada SDK yang sama, dependensi ini harus dihapus duplikatnya dan dipindahkan ke modul dasar. Modul yang berbeda tidak dapat bergantung pada versi SDK yang berbeda.
Membuat APK dari app bundle dengan dependensi SDK bundle (eksperimental)
Untuk membuat APK dari app bundle, ikuti langkah-langkah di bagian tentang
membuat rangkaian APK dari app bundle
atau bagian tentang
membuat rangkaian APK khusus perangkat
dan memberikan perintah bundletool build-apks
dengan SDK yang
diandalkan aplikasi. SDK ini dapat disediakan dalam format SDK bundle atau format
SDK Archive.
Anda dapat menyediakan SDK sebagai SDK bundle dengan menambahkan tanda --sdk-bundles
, seperti
berikut:
bundletool build-apks --bundle=app.aab --sdk-bundles=sdk1.asb,sdk2.asb \ --output=app.apks
Anda dapat menyediakan SDK sebagai SDK archive dengan menambahkan tanda --sdk-archives
,
seperti berikut:
bundletool build-apks --bundle=app.aab --sdk-archives=sdk1.asar,sdk2.asar \ --output=app.apks
Membuat APK dari app bundle dengan dependensi SDK bundle untuk perangkat tanpa dukungan library SDK
Perangkat sebelum Android 13 tidak mendukung penginstalan library SDK atau menjalankannya
di runtime SDK. Bundletool menyembunyikan kompleksitas kompatibilitas mundur dan
menghasilkan beberapa varian APK yang ditetapkan dari app bundle yang sama saat Anda
menjalankan bundletool build-apks
dengan opsi --sdk-bundles
atau --sdk-archives
.
Beberapa varian menargetkan perangkat dengan kemampuan yang berbeda:
- Ada varian untuk perangkat baru, dengan SDK yang diinstal sebagai paket terpisah dari aplikasi dan APK aplikasi tidak menyertakan konten SDK apa pun.
- Ada satu atau beberapa varian untuk perangkat lama, yang APK SDK-nya ditambahkan ke APK aplikasi yang ditetapkan sebagai bagian APK tambahan. APK SDK termasuk dalam paket aplikasi. Dalam hal ini, runtime SDK diemulasikan dalam runtime aplikasi di perangkat.
Serupa dengan cara Anda membuat APK untuk app bundle tanpa dependensi SDK,
bundletool extract-apks
dan bundletool install-apks
menampilkan kumpulan APK
yang difilter dari varian terbaik untuk perangkat terhubung atau untuk konfigurasi perangkat
yang disediakan.
Untuk kasus penggunaan lanjutan ketika Anda hanya tertarik dalam membuat pemisahan APK
dari arsip SDK untuk aplikasi tertentu bagi perangkat lama, gunakan
perintah bundletool build-sdk-apks-for-app
sebagai berikut:
bundletool build-sdk-apks-for-app --app-properties=app-properties.json \ --sdk-archive=sdk.asar --output=sdk.apks
File app-properties
harus berisi kolom yang dijelaskan dalam
file runtime_enabled_sdk_config.proto
. File app-properties
akan terlihat seperti berikut:
{
"package_name": "com.my.app",
"version_code": 1234,
"min_sdk_version": 21,
"resources_package_id": 0x7e
}
Perintah bundletool build-sdk-apks-for-app
menghasilkan subset APK
aplikasi yang sesuai dengan konten SDK di bagian nama paket aplikasi. Anda dapat
menggabungkan APK ini dengan APK lain yang berisi konten aplikasi. Misalnya, jika
Anda mem-build-nya secara terpisah dan bertahap, serta diinstal bersama di perangkat
yang tidak mendukung runtime SDK.
Mem-build dan menguji SDK bundle (eksperimental)
Anda dapat menggunakan bundletool
untuk mem-build ASB dan menguji pembuatan
file yang diperlukan untuk penginstalan dan distribusi.
Mem-build SDK bundle
Anda dapat mem-build ASB dari command line dan menandatanganinya menggunakan jarsigner.
Untuk mem-build SDK bundle, ikuti langkah-langkah berikut:
Buat manifes dan resource SDK bundle dalam format proto dengan mengikuti langkah-langkah yang sama seperti saat mem-build app bundle.
Kemas kompilasi kode dan resource SDK ke dalam file ZIP dasar, seperti yang Anda lakukan dengan modul aplikasi.
Buat file
SdkModulesConfig.pb.json
danSdkBundleConfig.pb.json
, yang cocok dengan format yang dijelaskan dalam spesifikasi Android SDK Bundle.Build ASB Anda menggunakan perintah
bundletool build-sdk-bundle
, seperti berikut:
bundletool build-sdk-bundle --sdk-bundle-config=SdkBundleConfig.pb.json \ --sdk-modules-config=SdkModulesConfig.pb.json \ --modules=base.zip --output=sdk.asb
Tabel berikut menjelaskan berbagai flag dan opsi yang dapat ditetapkan saat
menggunakan perintah bundletool build-sdk-bundle
secara lebih mendetail.
Tabel 3. Opsi untuk
perintah bundletool build-sdk-bundle
Flag | Deskripsi |
---|---|
--modules |
(Wajib) File modul yang ingin digunakan untuk mem-build ASB final. |
--output |
(Wajib) Jalur tempat Anda ingin mem-build ASB. |
--sdk-modules-config |
(Wajib) Jalur ke file JSON yang mendeskripsikan konfigurasi modul SDK. Untuk mempelajari cara memformat file JSON, lihat bagian spesifikasi Android SDK Bundle |
--sdk-bundle-config |
Jalur ke file JSON yang mendeskripsikan konfigurasi SDK bundle. Untuk mempelajari cara memformat file JSON, lihat bagian spesifikasi Android SDK Bundle |
--metadata-file |
File yang akan menyertakan metadata untuk ASB.
Format nilai flag ini adalah
<bundle-path>:<physical-file> ,
dengan <bundle-path> menunjukkan lokasi file di dalam
direktori metadata SDK bundle, dan <physical-file> adalah
file yang sudah ada yang berisi data mentah yang akan disimpan. Tanda tersebut
dapat diulang.
|
--overwrite |
Jika ditetapkan, opsi ini akan menimpa output yang ada sebelumnya. |
Membuat APK dari SDK bundle
Setelah mem-build ASB, Anda dapat menguji SDK bundle secara lokal dengan
membuat APK menggunakan perintah bundletool build-sdk-apks
, seperti ditunjukkan dalam
kode berikut:
bundletool build-sdk-apks --sdk-bundle=sdk.asb --output=sdk.apks
Saat bundletool
membuat APK dari SDK bundle Anda, alat ini akan menyertakan
APK dalam penampung yang disebut arsip rangkaian APK, yang menggunakan ekstensi file
.apks
. bundletool
membuat satu APK mandiri dari SDK bundle
yang menargetkan semua konfigurasi perangkat.
Jika ingin men-deploy ASB ke perangkat, Anda juga harus menyertakan informasi penandatanganan aplikasi, seperti yang ditunjukkan dalam perintah berikut.
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
Tabel berikut menjelaskan berbagai flag dan opsi yang dapat ditetapkan saat
menggunakan perintah bundletool build-sdk-apks
secara lebih mendetail.
Tabel 4. Opsi untuk
perintah bundletool build-sdk-apks
Flag | Deskripsi |
---|---|
--sdk-bundle |
(Wajib) Jalur ke SDK bundle. Harus memiliki ekstensi
.asb .
|
--output |
(Wajib) Secara default, jalur tempat Anda ingin membuat arsip rangkaian
APK. Atau, jika Anda menggunakan
--output-format=DIRECTORY ,
ini adalah jalur ke direktori tempat Anda ingin menyimpan APK yang dihasilkan.
|
--ks |
Jalur ke keystore yang ingin Anda gunakan untuk menandatangani APK yang dihasilkan. |
--ks-key-alias |
Alias kunci untuk digunakan dalam keystore guna menandatangani APK yang dihasilkan. |
--key-pass |
Sandi kunci dalam keystore yang akan digunakan untuk menandatangani APK yang dihasilkan. Jika meneruskan sandi dalam teks yang jelas, Anda harus memberikan awalan nilai
dengan Jika tanda ini tidak ditetapkan, sandi keystore akan dicoba. Jika gagal, terminal command line akan meminta sandi Anda. |
--ks-pass |
Sandi keystore yang akan digunakan untuk menandatangani APK yang dihasilkan. Jika meneruskan sandi dalam teks yang jelas, Anda harus memberikan awalan nilai
dengan Jika flag ini tidak ditetapkan, terminal command line akan meminta sandi Anda. |
--aapt2 |
Jalur ke biner AAPT2 yang akan digunakan. |
--output-format |
Format output untuk APK yang dihasilkan. Secara default, opsi ini disetel ke
APK_SET , yang menghasilkan APK ke dalam arsip rangkaian APK yang
dibuat. Jika disetel ke DIRECTORY , alat tersebut akan menghasilkan APK ke dalam
direktori yang ditentukan oleh --output . |
--verbose |
Jika ditetapkan, opsi ini akan mencetak informasi tambahan tentang eksekusi perintah dalam output standar. |
--version-code |
Kode versi SDK. Ini adalah kode versi yang digunakan oleh platform Android untuk menginstal APK, bukan versi SDK. Opsi ini dapat disetel ke nilai arbitrer. Jika tidak disetel, nilai defaultnya adalah 0. |
--overwrite |
Jika ditetapkan, opsi ini akan menimpa output yang ada sebelumnya. |
Men-deploy, mengekstrak, dan mengukur ukuran APK SDK
Anda dapat mengikuti langkah-langkah yang sama seperti yang digunakan untuk aplikasi guna men-deploy APK ke perangkat terhubung, mengekstrak APK khusus perangkat dari rangkaian APK yang ada, dan mengukur perkiraan ukuran download APK dalam rangkaian APK.
Membuat SDK Archive dari SDK bundle
Setelah mengupload ASB ke saluran distribusi, misalnya
Google Play, ASB akan diubah menjadi Android SDK
Archive (.asar
) untuk didistribusikan kepada developer aplikasi melalui Maven. Untuk mengetahui detail
selengkapnya tentang format yang digunakan, lihat bagian
Spesifikasi pemformatan SDK Archive.
Setelah mem-build ASB, Anda dapat menguji pembuatan
Android SDK Archive secara lokal menggunakan perintah bundletool build-sdk-asar
, seperti
yang ditunjukkan dalam kode berikut:
bundletool build-sdk-asar --sdk-bundle=sdk.asb --output=sdk.asar \ --apk-signing-key-certificate=keycert.txt
Tabel berikut menjelaskan berbagai flag dan opsi yang dapat ditetapkan saat
menggunakan perintah bundletool build-sdk-asar
secara lebih mendetail.
Tabel 5. Opsi untuk
perintah bundletool build-sdk-asar
Flag | Deskripsi |
---|---|
--apk-signing-key-certificate |
(Wajib) Jalur ke sertifikat penandatanganan APK SDK. Ini adalah
sertifikat yang sesuai dengan kunci yang Anda gunakan untuk menandatangani APK dalam
perintah build-sdk-apks .
|
--output |
(Wajib) Jalur tempat Anda ingin membuat file
.asar .
|
--sdk-bundle |
(Wajib) Jalur ke SDK bundle. Harus memiliki ekstensi
.asb .
|
--overwrite |
Jika ditetapkan, opsi ini akan menimpa output yang ada sebelumnya. |
Format SDK yang mendukung runtime (eksperimental)
SDK yang mendukung runtime memperkenalkan dua format file Android:
- Android SDK Bundle (
.asb
) yang digunakan untuk memublikasikan SDK yang mendukung runtime ke app store. - Android SDK Archive (
.asar
) yang digunakan untuk mendistribusikan SDK yang mendukung runtime di Maven.
Format Android SDK Bundle
SDK Bundle adalah format publikasi untuk SDK yang mendukung runtime. Format ini berisi semua resource dan kode SDK, termasuk kode dari library mana pun yang menjadi dependensi SDK. Format ini tidak menyertakan kode dan resource SDK lain yang mendukung runtime yang menjadi dependensi SDK.
Android SDK Bundle (ASB) adalah file zip yang ditandatangani dengan ekstensi
.asb
. Kode dan resource SDK diatur di dalamnya, mirip dengan yang akan
Anda temukan di APK. ASB juga berisi beberapa file konfigurasi yang membantu
menghasilkan APK yang dapat diinstal.
![](https://developer.android.google.cn/static/studio/images/command-line/asb-format.png?authuser=19&hl=id)
Daftar berikut menjelaskan beberapa file ASB secara lebih mendetail:
SdkBundleConfig.pb
: File konfigurasi dalam format proto yang berisi daftar SDK yang mendukung runtime yang menjadi dependensi SDK Anda. Untuk definisi lengkap, lihat filesdk_bundle_config.proto
.modules.resm
: File ZIP yang berisi semua data yang diperlukan untuk menghasilkan APK dari SDK.SdkModulesConfig.pb
: File konfigurasi dalam format proto. File ini berisi nama dan versi SDK, serta nama class titik entri SDK untuk framework (SandboxedSdkProvider
). Untuk mengetahui definisi lengkapnya, lihat filesdk_modules_config.proto
.base/
: Satu modul yang berisi kode dan resource SDK.manifest/
: Manifes SDK dalam format proto.dex/
: Kode yang dikompilasi dalam format DEX. Beberapa file DEX dapat disediakan.res/
,lib/
,assets/
: Direktori ini identik dengan direktori dalam APK standar. Jalur dalam direktori ini dipertahankan saat membuat APK SDK.root/
: Direktori ini menyimpan file yang nantinya dipindahkan ke root APK SDK. Misalnya, direktori mungkin menyertakan resource berbasis Java yang dimuat SDK Anda menggunakan metodeClass.getResource()
. Jalur dalam direktori ini juga dipertahankan.
BUNDLE-METADATA
: Direktori ini mencakup file metadata yang berisi informasi yang berguna untuk alat atau app store. File metadata tersebut dapat mencakup pemetaan ProGuard dan daftar lengkap file DEX SDK Anda. File dalam direktori ini tidak dipaketkan ke dalam APK SDK Anda.
Format Android SDK Archive
Android SDK Archive adalah format distribusi SDK yang mendukung runtime di
Maven. Ini adalah file zip dengan ekstensi file .asar
. File ini
berisi semua informasi yang diperlukan oleh alat build aplikasi untuk membuat
Android App Bundle yang bergantung pada SDK yang mendukung runtime.
![](https://developer.android.google.cn/static/studio/images/command-line/asar-format.png?authuser=19&hl=id)
Daftar berikut menjelaskan beberapa file Android SDK Archive secara lebih mendetail:
SdkMetadata.pb
: File konfigurasi dalam format proto, yang berisi nama, versi, dan digest sertifikat SDK untuk kunci yang digunakan untuk menandatangani APK yang dihasilkan untuk SDK ini. Untuk definisi lengkap, lihat filesdk_metadata.proto
.modules.resm
: File ZIP yang berisi semua data yang diperlukan untuk menghasilkan APK dari SDK. File ini sama dengan file.resm
di Android SDK Bundle.AndroidManifest.xml
: File manifes SDK dalam format XML teks.
Referensi tambahan
Untuk mempelajari penggunaan bundletool
lebih lanjut, tonton
App Bundle: Menguji paket dengan bundletool dan Konsol Play.