bundletool

bundletool adalah alat dasar yang digunakan Android Studio, plugin Android Gradle, dan Google Play untuk mem-build Android App Bundle, dan mengonversi app bundle menjadi berbagai APK yang di-deploy ke perangkat. Android SDK Bundle dan APK-nya juga dibuat dengan bundletool. bundletool juga tersedia untuk Anda sebagai alat command line, sehingga Anda dapat mem-build app bundle dan SDK bundle sendiri, serta membuat ulang build sisi server Google Play untuk APK aplikasi atau APK SDK yang mendukung runtime.

Mendownload bundletool

Jika Anda belum melakukannya, 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 dan menguji pembuatan APK dari app bundle ini.

Mem-build app bundle

Anda harus menggunakan Android Studio dan plugin Android untuk Gradle guna 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 membuat Android App Bundle, sebaiknya Anda menguji bagaimana Google Play menggunakannya untuk membuat APK dan bagaimana APK tersebut berperilaku saat diterapkan ke sebuah perangkat. Ada dua cara yang perlu dipertimbangkan untuk menguji app bundle: secara lokal menggunakan alat command line bundletool, serta melalui Google Play dengan mengupload bundle ke Konsol Play dan menggunakan track pengujian. Bagian ini menjelaskan cara menggunakan bundletool untuk menguji app bundle secara lokal.

Saat bundletool membuat APK dari app bundle Anda, alat tersebut akan menyertakannya dalam container 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 di bawah ini.

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 di bawah ini. Jika informasi penandatanganan tidak ditentukan, bundletool akan mencoba menandatangani sendiri APK Anda dengan kunci debug.

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 di bawah ini menjelaskan berbagai tanda dan opsi yang dapat ditetapkan saat menggunakan perintah bundletool build-apks secara lebih mendetail.

Tanda 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, buka bagian tentang cara men-deploy APK ke perangkat yang terhubung.
--overwrite Sertakan tanda ini jika Anda ingin menimpa file output yang ada dengan jalur yang sama yang ditetapkan 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 Menentukan jalur ke keystore deployment yang digunakan untuk menandatangani APK. Tanda ini bersifat opsional. Jika 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 sandi ditentukan menggunakan 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 sandi ditentukan menggunakan 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 Gunakan tanda ini untuk memberikan 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 Setel mode ke universal jika Anda ingin bundletool hanya 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: bundletool hanya menyertakan modul fitur yang menentukan <dist:fusing dist:include="true"/> dalam manifesnya dalam APK universal. Untuk mempelajari lebih lanjut, baca tentang manifes modul fitur.

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 Gunakan tanda ini guna mengaktifkan app bundle Anda 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 tanda --local-testing, lihat Menguji penginstalan modul secara lokal.

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 mencari multi-APK yang kompatibel dan men-deploy APK tersebut ke perangkat.

Untuk men-deploy aplikasi dari rangkaian APK, gunakan perintah install-apks dan tentukan jalur rangkaian APK menggunakan tanda --apks=/path/to/apks, seperti yang ditunjukkan di bawah ini. (Jika ada beberapa perangkat yang terhubung, tentukan perangkat target dengan menambahkan tanda --device-id=serial-id.)

bundletool install-apks --apks=/MyApp/my_app.apks

Membuat rangkaian APK khusus perangkat

Jika 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 di bawah ini. (Jika ada beberapa perangkat yang terhubung, tentukan perangkat target dengan menambahkan tanda --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 mampu 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 akan membuat file JSON untuk perangkat Anda dalam direktori tempat alat tersebut berada. Kemudian, Anda dapat meneruskannya 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, seorang teman 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:

Flag Deskripsi
--apks=path (Diperlukan) Menentukan jalur 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 dan menguji app bundle dengan dependensi SDK bundle (eksperimental)

Anda dapat menggunakan bundletool untuk mem-build Android App Bundle dengan dependensi Android SDK Bundle dan menguji pembuatan APK dari dependensi tersebut.

Mem-build app bundle dengan dependensi SDK bundle

Anda dapat mem-build Android App Bundle dengan dependensi Android SDK Bundle 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 panduan yang sama untuk mem-build app bundle menggunakan bundletool. Namun, kali ini pastikan Anda menambahkan file runtime_enabled_sdk_config.pb ke setiap file ZIP modul aplikasi dengan kode dan resource 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

Untuk membuat APK dari app bundle, Anda dapat mengikuti langkah-langkah yang sama seperti Membuat rangkaian APK dari app bundle atau Membuat rangkaian APK khusus perangkat, tetapi kali ini Anda harus memberikan perintah bundletool build-apks dengan SDK yang menjadi dependensi 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

Mem-build dan menguji SDK bundle (eksperimental)

Anda dapat menggunakan bundletool untuk mem-build Android SDK Bundle dan menguji pembuatan file yang diperlukan untuk penginstalan dan distribusi.

Mem-build SDK bundle

Anda dapat mem-build Android SDK Bundle (ASB) dari command line dan menandatanganinya menggunakan jarsigner.

Untuk mem-build SDK bundle, ikuti langkah-langkah berikut:

  1. Buat manifes dan resource SDK bundle dalam format proto dengan mengikuti langkah-langkah yang sama seperti saat mem-build app bundle.

  2. Kemas kompilasi kode dan resource SDK ke dalam file ZIP dasar, seperti yang Anda lakukan dengan modul aplikasi.

  3. Buat file SdkModulesConfig.pb.json dan SdkBundleConfig.pb.json, yang cocok dengan format yang dijelaskan dalam spesifikasi Android SDK Bundle.

  4. Build SDK bundle 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 di bawah ini menjelaskan berbagai tanda dan opsi yang dapat ditetapkan saat menggunakan perintah bundletool build-sdk-bundle secara lebih mendetail.

Tanda Deskripsi
--modules (Wajib) File modul yang ingin digunakan untuk mem-build Android SDK Bundle final.
--output (Wajib) Jalur target Android SDK Bundle harus dibuat.
--sdk-modules-config (Wajib) Jalur ke file JSON yang mendeskripsikan konfigurasi modul SDK. Untuk mempelajari cara memformat file JSON, lihat spesifikasi Android SDK Bundle.
--sdk-bundle-config Jalur ke file JSON yang mendeskripsikan konfigurasi SDK bundle. Untuk mempelajari cara memformat file JSON, lihat spesifikasi Android SDK Bundle
--metadata-file Menentukan file yang akan disertakan sebagai metadata dalam Android SDK Bundle. Format nilai tanda 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 disetel, output yang ada sebelumnya akan ditimpa.

Membuat APK dari SDK bundle

Setelah mem-build Android SDK Bundle, Anda dapat menguji SDK bundle secara lokal dengan membuat APK menggunakan perintah bundletool build-sdk-apks, seperti yang ditunjukkan dalam kode berikut.

Saat bundletool membuat APK dari SDK bundle Anda, alat tersebut akan menyertakannya 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.

bundletool build-sdk-apks --sdk-bundle=sdk.asb --output=sdk.apks

Jika ingin men-deploy ASB 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-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 di bawah ini menjelaskan berbagai tanda dan opsi yang dapat ditetapkan saat menggunakan perintah bundletool build-sdk-apks secara lebih mendetail.

Tanda Deskripsi
--sdk-bundle (Wajib) Jalur ke SDK bundle. Harus memiliki ekstensi .asb.
--output (Wajib) Secara default, jalur target arsip rangkaian APK harus dibuat. Atau, jika Anda menggunakan --output-format=DIRECTORY, ini adalah jalur ke direktori tempat APK yang dihasilkan harus disimpan.
--ks Jalur ke keystore yang harus digunakan 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 pass:, misalnya pass:qwerty. Jika sandi adalah baris pertama file, Anda harus memberi awalan nilai dengan file:, misalnya file:/tmp/myPassword.txt). 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 pass:, misalnya pass:qwerty. Jika sandi adalah baris pertama file, Anda harus memberi awalan nilai dengan file:, misalnya file:/tmp/myPassword.txt). Jika tanda ini tidak ditetapkan, terminal command line akan meminta sandi Anda.
--aapt2 Jalur ke biner AAPT2 yang akan digunakan.
--output-format Menentukan 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 disetel, informasi tambahan tentang eksekusi perintah dalam output standar akan dicetak.
--version-code Kode versi SDK. Ini adalah kode versi yang digunakan oleh platform Android untuk menginstal APK, bukan versi SDK. Kode versi ini dapat disetel ke nilai arbitrer. Jika tidak disetel, nilai defaultnya adalah 0.
--overwrite Jika disetel, output yang ada sebelumnya akan ditimpa.

Membuat SDK Archive dari SDK bundle

Setelah Anda mengupload Android SDK Bundle ke saluran distribusi, misalnya Google Play, Android SDK bundle akan diubah menjadi Android SDK Archive (.asar) untuk didistribusikan kepada developer aplikasi melalui Maven. Untuk detail selengkapnya tentang format yang digunakan, lihat spesifikasi format SDK Archive.

Setelah mem-build Android SDK Bundle, 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 di bawah ini menjelaskan berbagai tanda dan opsi yang dapat ditetapkan saat menggunakan perintah bundletool build-sdk-asar secara lebih mendetail.

Tanda 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 ke tempat file .asar harus dibuat.
--sdk-bundle (Wajib) Jalur ke SDK bundle. Harus memiliki ekstensi .asb.
--overwrite Jika disetel, output yang ada sebelumnya akan ditimpa.

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, dan 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 adalah file ZIP yang ditandatangani yang berisi ekstensi .asb. Kode dan resource SDK diatur mirip dengan yang akan Anda temukan di APK. ASB juga berisi beberapa file konfigurasi yang digunakan untuk membantu pembuatan APK yang dapat diinstal.

Gambar 1. Isi Android SDK Bundle.

Daftar berikut menjelaskan beberapa file Android SDK Bundle 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 file sdk_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 file sdk_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 metode Class.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 yang berisi ekstensi file .asar. Format ini berisi semua informasi yang diperlukan oleh alat build aplikasi untuk membuat Android App Bundle yang bergantung pada SDK yang mendukung runtime.

Gambar 2. Isi Android SDK Archive Bundle.

Daftar berikut menjelaskan beberapa file Android SDK Bundle 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 file sdk_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 lainnya

Untuk mempelajari penggunaan bundletool lebih lanjut, coba referensi berikut:

Codelab

  • Android App Bundle Pertama Anda, codelab yang membahas prinsip-prinsip dasar Android App Bundle dan menunjukkan cara cepat untuk mulai mem-build aplikasi Anda sendiri menggunakan Android Studio. Codelab ini juga menjelaskan cara menguji app bundle Anda menggunakan bundletool.