apk 命令行打包

本文详细介绍了一个Android应用程序从源代码到最终生成签名版APK的全过程。涵盖了R文件生成、Java源代码编译、dex文件创建、资源打包、APK生成及签名等关键步骤。

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

1. 生成R文件
2. Java代码生成class文件
3. class文件生成dex文件
4. 打包资源
5. 生成apk
6. 创建密匙
7. 签名apk


#使用aapt生成R.java类
#说明:-J后面跟的是生成目录;-S后面跟的是资源目录;-M后面跟的是AndroidManifest.xml;-I后面跟的是使用的AndroidAPI的jar
aapt package -f -m -J gen -S res -M AndroidManifest.xml -I E:\Android\android-sdk-windows\platforms\android-18\android.jar


#javac.exe编译.java类文件生成class文件
#说明:-target:生成特定 VM 版本的类文件;-d:指定存放生成的类文件的位置;-bootclasspath:覆盖引导类文件的位置
javac -encoding utf-8 -target 2.2 -d bin -bootclasspath E:\Android\android-sdk-windows\platforms\android-18\android.jar gen\org\cocos2dx\fsddzn\*.java src\org\cocos2dx\fsddzn\*.java


#使用dx.bat命令行脚本生成classes.dex文件
#说明:--output:生成的dex文件;最后带上class文件所在目录;
dx.bat --dex --output=.\bin\classes.dex .\bin\


#使用aapt.exe生成资源包文件
#说明:-S:资源目录;-M:AndroidManifest.xml文件;-I:导入用的jar文件;-F:生成的资源文件;
aapt package -f -S res -M AndroidManifest.xml -I E:\Android\android-sdk-windows\platforms\android-18\android.jar -F .\bin\resources.ap_


#使用apkbuilder.bat生成未签名的apk安装文件
#说明:-z:资源打包文件;-f:类打包文件;-rf:源代码目录;
apkbuilder .\bin\mytest.apk -u -z .\bin\resources.ap_ -f .\bin\classes.dex -rf .\src\ -nf .\libs


#使用jarsigner.exe对未签名的包进行apk签名
#说明:-keystore:keystore文件;-signedjar:签名后的文件;后面还有未签名文件和key的alias
jarsigner -verbose -keystore E:\Android\key\gplatkey -signedjar .\bin\signed.apk .\bin\mytest.apk gplatkey
### 使用 UniApp 的命令行工具打包生成 APK 文件 #### 准备工作 在使用命令行工具进行 UniApp 项目打包前,需确保以下条件满足: 1. 已安装 Node.js 和 npm/ yarn。 2. 已全局安装 `@vue/cli` 或者 HBuilderX CLI 工具。 3. 配置好 Android 环境,包括 JDK、Gradle 和 Android SDK[^1]。 --- #### 创建 keystore 文件 为了签署 APK,需要先创建一个 keystore 文件。可以通过以下命令生成: ```bash keytool -genkey -alias yourAliasName -keyalg RSA -keysize 2048 -validity 36500 -keystore my-release-key.keystore ``` 执行该命令后,输入相关信息(如密码、姓名等),完成后会在当前目录生成名为 `my-release-key.keystore` 的文件[^3]。 --- #### 修改配置文件 编辑项目的根目录下的 `manifest.json` 文件,在 `"app-plus"` 节点中添加签名信息: ```json { "app-plus": { "distribute": { "android": { "package": "com.example.app", "versionName": "1.0.0", "versionCode": "1" }, "signingConfig": { "debug": false, "storeFile": "./my-release-key.keystore", // Keystore 文件路径 "storePassword": "yourStorePassword", // Keystore 密码 "keyAlias": "yourAliasName", // 别名 "keyPassword": "yourKeyPassword" // Key 密码 } } } } ``` 注意:以上字段中的值应替换为你实际使用的参数[^3]。 --- #### 编译与打包 在项目根目录下运行以下命令启动构建流程: ```bash npm run build:mp-android -- --mode release ``` 或者如果你已经设置了不同的环境变量(如 `test` 和 `prod`),可以这样调用: ```bash UNI_OUTPUT_DIR=./output/android/release npm run build:mp-android -- --mode release ``` 这将会把最终的 APK 输出到指定的目录中(本例为 `./output/android/release`)。如果未指定 `UNI_OUTPUT_DIR`,则默认输出位置由框架决定[^2]。 --- #### 解决常见问题 1. **JDK 版本冲突** 若遇到无法正常读取 MD5 签名信息的问题,尝试更换不同版本的 JDK,并重新验证签名信息是否正确显示[^3]。 2. **Build Tools 不全** 如果编译失败提示缺少某些 Build Tools,请打开 Android Studio 的 SDK Manager 进行补充安装。 3. **网络超时或资源不可达** 对于国内开发者来说,建议调整 Gradle 的代理设置或将镜像源切换为中国科学技术大学或其他稳定站点。 --- ### 示例代码片段 以下是完整的脚本模板供参考: ```bash #!/bin/bash # 设置输出路径 export UNI_OUTPUT_DIR="./dist/apk" # 构建 Release 模式的 APK npm run build:mp-android -- --mode release ``` 保存上述内容至 `.sh` 文件并通过 Shell 执行即可自动化整个过程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值