You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用命令行工具构建Android APK的完整流程与工具顺序是什么?

基于AAPT2的Android APK纯命令行构建完整流程

以下为完全适配官方主流AAPT2工具链的分步构建流程,无需依赖旧版AAPT的打包能力:

1. 资源编译(AAPT2 compile阶段)

将项目res目录下的所有资源文件编译为二进制.flat中间文件:

aapt2 compile path/to/project/res/**/* -o compiled_res/

输出的所有.flat文件将存储在compiled_res目录中。

2. 资源链接(AAPT2 link阶段)

把编译后的.flat资源文件与Manifest、Android SDK平台依赖链接,生成仅包含资源的基础APK、供代码引用的R.java文件:

aapt2 link compiled_res/*.flat \
  --manifest path/to/project/AndroidManifest.xml \
  --androidjar path/to/sdk/platforms/android-33/android.jar \
  -o base_res.apk \
  --java gen/ \
  --proguard proguard_rules.txt
  • 输出base_res.apk:仅包含编译后资源、Manifest的基础APK包
  • 输出gen/R.java:资源索引类,后续代码编译需要引用
  • 可选输出proguard_rules.txt:资源相关的混淆规则

3. 业务代码编译

将项目源代码、生成的R.java、AIDL生成的接口文件统一编译为Java字节码:

javac -classpath path/to/sdk/platforms/android-33/android.jar \
  -d classfiles/ \
  path/to/project/src/**/*.java \
  gen/**/*.java

如果项目包含Kotlin代码,需要先调用kotlinc将Kotlin代码编译为字节码,再和Java编译结果合并。

4. 字节码转Dex(D8工具)

将所有编译生成的Class文件、第三方依赖Jar包转换为Dalvik字节码classes.dex:

d8 --output ./ \
  classfiles/**/*.class \
  path/to/project/libs/**/*.jar \
  --lib path/to/sdk/platforms/android-33/android.jar

如果应用方法数超过65535,D8会自动生成classes2.dex、classes3.dex等多Dex文件。

5. 合并APK内容

APK本身是标准ZIP格式,直接用zip命令将Dex文件、so动态库、assets资源等合并到之前生成的base_res.apk中:

# 合并所有Dex文件
zip -uj base_res.apk classes*.dex
# 合并so动态库(如果有)
zip -ur base_res.apk path/to/project/libs/
# 合并assets资源(如果有)
zip -ur base_res.apk path/to/project/assets/

6. 对齐优化(Zipalign工具)

对APK内的未压缩数据做4字节对齐,减少运行时内存占用:

zipalign -f -p 4 base_res.apk unsigned_aligned.apk

注意:使用Apksigner做v2及以上签名时,必须在签名前执行对齐操作,否则签名会失效。

7. APK签名(Apksigner工具)

对对齐后的APK进行签名,未签名的APK无法安装到Android设备:

apksigner sign \
  --ks your_keystore.jks \
  --ks-key-alias your_key_alias \
  --out signed_final.apk \
  unsigned_aligned.apk

执行命令后按照提示输入密钥库密码、密钥密码即可完成签名。

8. 签名验证(可选)

验证最终APK的签名是否有效:

apksigner verify -v signed_final.apk

如果输出签名验证通过的信息,说明APK构建完成,可以正常安装使用。

内容的提问来源于stack exchange,提问作者JANO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 08:06:05