使用bundletool从.aab构建安装.apks

本文档详细介绍了如何使用bundletool在Android环境下打包发布AAB(Android App Bundle),并指导如何生成APKS文件以适配特定设备进行安装。首先,你需要下载bundletool.jar,然后创建或使用已有签名打包AAB。接着,通过指定的shell脚本,利用bundletool生成APKS并安装到已连接的手机上。整个过程包括签名、APKS生成及安装等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android App Bundle打包发布可参考:Android App Bundle打包发布GooglePlay

bundletool: bundletool官方文档

为了方便测试,基于现有的.aab文件构建适合当前连接手机的.apks并安装,可按照以下步骤操作。

1 下载bundletool的jar包

 bundletool下载地址

2 生成签名文件并打包生成.aab文件

 

如果没有签名,选择Create new创建签名,如果有签名,选择签名并填写相关内容,如果需要将abb上传GooglePlay并托管签名,需要勾选底部的Export encrypted key for enrolling published apps in Google Play App Signing,并将生成的.pepk文件上传GooglePlay。

 

3 使用bundletool生成并安装.apks

创建一个目录,将步骤1中下载的bundletool.jar和步骤二中创建和的key.keystore生成的.aab文件拷贝到目录中并重命名为app.aab,连接手机,使用以下脚本(需要修改KEY_ALIAS、KS_PASS、KEY_PASS为对应的值)生成并安装.apks到手机

#!/bin/bash
AAB_NAME="app.aab"
APKS_NAME="app.apks"
BUNDLE_JAR="bundletool.jar"
KS_STORE="key.keystore"
KEY_ALIAS="ALIAS"
KS_PASS="111111"
KEY_PASS="111111"

currentDir=$(pwd)

echo "移除之前生成的apks"
rm -f "$currentDir/$APKS_NAME"

echo "准备生成连接设备的apks"
java -jar "$currentDir/$BUNDLE_JAR" build-apks --connected-device --bundle="$currentDir/$AAB_NAME" --output="$currentDir/$APKS_NAME" --ks="$currentDir/$KS_STORE" --ks-pass=pass:$KS_PASS --ks-key-alias=$KEY_ALIAS --key-pass=pass:$KEY_PASS

echo "准备安装apks"
java -jar "$currentDir/$BUNDLE_JAR" install-apks --apks="$currentDir/$APKS_NAME"

文件目录如下:

 

执行bundletool.sh脚本文件便可完成安装apks。 

 

### Android App Bundle (AAB) 文件格式介绍 Android App Bundle (AAB) 是一种新的应用分发格式,旨在优化应用的分发和安装过程。与传统的 APK 格式不同,AAB 是一种灵活的文件格式,允许开发者将应用的所有编译代码和资源上传到 Google Play,而无需预先决定每个设备的具体配置[^1]。 #### AAB 的主要特点 1. **动态交付**:通过 Google Play 的动态交付功能,AAB 可以根据用户的设备配置(如屏幕密度、语言、CPU 架构等)生成并提供最小化的 APK 集合,从而减少应用的下载大小[^2]。 2. **模块化支持**:AAB 支持动态功能模块(Dynamic Feature Modules),允许开发者按需加载特定的功能或资源,进一步优化应用的初始下载体积[^3]。 3. **安全性增强**:由于 AAB 仅在 Google Play 上生成最终的 APK,因此可以更好地保护应用免受反编译和篡改的风险[^4]。 #### AAB生成与测试 - 使用 Android Studio 的构建工具链可以轻松生成 AAB 文件。开发者可以通过菜单选项 `Build → Generate Signed Bundle / APK` 来创建签名的 AAB 文件[^1]。 - 对于测试目的,可以使用 `bundletool` 将 AAB 转换为 APK 并部署到设备上。`bundletool` 是 Google 提供的一个命令行工具,用于模拟 Google Play 的 APK 生成过程[^2]。 #### AAB 的优势 - **更小的应用体积**:通过动态交付和按需加载,用户只需下载与其设备相关的部分,显著减少存储占用。 - **简化发布流程**:开发者只需上传一个 AAB 文件,Google Play 将负责生成所有必要的 APK 集合。 - **更好的用户体验**:更快的下载速度和更低的存储需求提升了用户的整体体验。 ```bash # 使用 bundletool 测试 AAB 文件 java -jar bundletool-all-1.13.2.jar build-apks --bundle=my_app.aab --output=my_app.apks --mode=universal ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值