bundletool工具使用(Android aab包安裝)

林恒發表於2024-07-16

🧑‍💻 寫在開頭

點贊 + 收藏 === 學會🤣🤣🤣

apk再見了,Android全新App安裝格式aab

https://github.com/google/bundletool
https://github.com/google/bundletool/releases

https://developer.android.com/studio/command-line/bundletool#generate_apks

bundletool工具使用

https://www.jianshu.com/p/0308ddc9b2e7

生成apks

java -jar bundletool.jar build-apks --bundle=dlhroditerd.aab --output=dlhroditerd.apks --ks=dlhroditerd.keystore --ks-pass=pass:123456 --ks-key-alias=dlhroditerd.keystore --key-pass=pass:123456

安裝apks

首先連線裝置,如果只有一個連線裝置,執行如下命令

java -jar bundletool.jar install-apks --apks=app.apks

由於現在上傳Google play只需要上傳.aab檔案,不需要再上傳apk的安裝包,然而在測試中只需要對apk的包進行測試,aab的包雖然在理論上與apk的包是相同的,但是在測試到上線過程中缺少對aab包的測試過程,安裝aab包需要幾個步驟,需要將aab的包轉化成apks格式後進行安裝

bundletool的安裝方法與重新打apks包的方法

安裝bundletool

切換到安裝包的路徑

bundletool build-apks --bundle=/MyApp/my_app.aab --output=/MyApp/my_app.apks
bundletool build-apks --bunlde=.aab --output=./.apks

安裝apks

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

build簽名過的apks

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
bundletool build-apks --bundle=<bundle_name>.aab --output=<bundle_name>.apks --ks=<your_keystorename>.jks/.keystore --ks-pass=pass:<your_keystore_pass> --ks-key-alias=<your_keystore_alias> --key-pass=pass:<your_keystore_pass>

Windows使用bundletool將aab包安裝到手機上的命令

透過應用包生成apk集(aab格式轉apk格式)

java -jar bundletool-all-1.8.2.jar build-apks --mode=universal --bundle=base.aab --output=base.apks

base.apks修改為base.zip,然後解壓,可以獲取到apk

透過應用包生成apk集

java -jar bundletool-all-1.8.2.jar build-apks --bundle=dlhroditerd-release-29.2.aab --output=dlhroditerd-release-29.2.apks
java -jar bundletool-all-1.8.2.jar build-apks --bundle=dlhroditerd-release-29.2.aab --output=dlhroditerd-release-29.2.apks

透過應用包生成一組帶簽名的apk集

java -jar bundletool-all-1.8.2.jar build-apks --bundle=dlhroditerd-release-29.2.aab  --output=dlhroditerd-release-29.2.apks  --ks=adamrocker.keystore  --ks-pass=pass:android  --ks-key-alias=androiddebugkey --key-pass=pass:android

將apk部署到裝置上(需要連線裝置,根據裝置資訊自動提取對應資源並安裝)

java -jar bundletool-all-1.8.2.jar install-apks --apks=dlhroditerd-release-29.2.apks

為已連線的裝置生成apk

java -jar bundletool-all-1.8.2.jar build-apks --connected-device --bundle=dlhroditerd-release-29.2.aab  --output=dlhroditerd-release-29.2.apks

透過json檔案生成對應的apk

java -jar bundletool-all-1.8.2.jar build-apks --device-spec=config.json --bundle=dlhroditerd-release-29.2.aab --output=dlhroditerd-release-29.2.apks

獲取已連線裝置的json配置檔案

java -jar bundletool-all-1.8.2.jar get-device-spec --output=config.json

從apk集中提取對應裝置apk到app資料夾

java -jar bundletool-all-1.8.2.jar extract-apks --apks=keyhelp.apks --output-dir=app --device-spec=temp.json

json檔案格式:

{
    "supportedAbis": ["arm64-v8a", "armeabi-v7a"],
    "supportedLocales": ["en", "fr"],
    "screenDensity": 640,
    "sdkVersion": 27
}
java -jar bundletool-all-1.8.2.jar build-apks --bundle=dlhroditerd-release-29.2.aab --output=simeji.apks
java -jar bundletool-all-1.8.2.jar build-apks --bundle=dlhroditerd-release-29.2.aab  --output=dlhroditerd-release-29.2.apks  --ks=adamrocker.keystore  --ks-pass=pass:android  --ks-key-alias=androiddebugkey --key-pass=pass:android
java -jar bundletool-all-1.8.2.jar install-apks --apks=dlhroditerd-release-29.2.apks
java -jar bundletool-all-1.8.2.jar build-apks --connected-device --bundle=dlhroditerd-release-29.2.aab  --output=dlhroditerd-release-29.2.apks

如果對您有所幫助,歡迎您點個關注,我會定時更新技術文件,大家一起討論學習,一起進步。

bundletool工具使用(Android aab包安裝)

相關文章