在Android开发过程中,掌握命令行编译、签名和打包APK的方法是十分必要的。下面将详细介绍这个过程: 1. **生成R.java文件** R.java文件是Android编译系统自动生成的,它包含了应用程序资源的ID。使用aapt工具可以生成R.java: ``` aapt.exe package -f --m -J GC\gen -S GC\res -I ANDROID_SDK\android.jar -M GC\AndroidManifest.xml ``` 参数解释: - `-f` 强制覆盖已有文件 - `--m` 创建一个AndroidManifest.xml的清单文件 - `-J` 指定生成R.java的目录 - `-S` 指定资源文件目录 - `-I` 指定Android平台的jar文件 - `-M` 指定应用的AndroidManifest.xml文件 2. **aidl转换** 如果项目中包含.aidl接口文件,需要使用aidl工具将其转换为Java文件。例如: ``` aidl -o GC\gen GC\src\...\MyInterface.aidl ``` 这里-o参数指定了输出目录。 3. **Java源码编译** 使用javac命令编译Java源代码生成class文件: ``` javac -encoding UTF-8 -target 1.6 -bootclasspath ANDROID_SDK\android.jar -d GC\bin GC\src\...\*.java GC\gen\com\...\R.java -classpath GC\libs\....jar ``` 参数说明: - `-encoding` 指定源代码的字符编码 - `-target` 指定目标JVM版本 - `-bootclasspath` 指定引导类路径,这里是Android SDK的android.jar - `-d` 指定输出的class文件目录 - `-classpath` 指定类路径,包括库文件和生成的R.java文件 4. **生成dex文件** 使用dx工具将class文件转换为Dalvik字节码(.dex): ``` dx.bat --dex --output=GC\bin\classes.dex GC\bin GC\libs ``` 参数: - `--dex` 表示要生成.dex文件 - `--output` 输出的.dex文件路径 - 后面的目录参数是包含.class文件的目录 5. **打包资源** 使用aapt工具打包资源文件: ``` aapt.exe package -f -M GC\AndroidManifest.xml -S GC\res -A GC\assets -I ANDROID_SDK\android.jar -F GC\bin\resources.ap_ ``` 参数含义: - `-f` 强制覆盖已存在文件 - `-M` 指定AndroidManifest.xml文件 - `-S` 指定资源目录 - `-A` 指定assets目录 - `-I` 指定Android平台的jar文件 - `-F` 指定输出的资源包文件名 6. **生成未签名的APK** 使用ApkBuilder工具生成未签名的APK文件: ``` Apkbuilder.bat GC\bin\test.apk -v -u -z GC\bin\resources.ap_ -f GC\bin\classes.dex -rf GC\src -rj GC\libs -nf GC\libs ``` 参数说明: - `-v` 显示详细信息 - `-u` 表示更新模式 - `-z` 指定资源包文件 - `-f` 指定dex文件 - `-rf` 指定源代码目录 - `-rj` 指定库文件目录 - `-nf` 指定忽略的库文件目录 7. **APK签名** 使用JDK的jarsigner工具对未签名的APK进行签名: ``` jarsigner -keystore key.keystore -storepass keystore.password -signedjar signed.apk unsigned.apk keyalias ``` 参数说明: - `-keystore` 指定密钥库文件 - `-storepass` 密钥库的密码 - `-signedjar` 输出的签名APK文件 - `unsigned.apk` 未签名的APK文件 - `keyalias` 密钥别名 以上就是Android APK命令行编译、签名和打包的全过程。熟练掌握这些命令行操作,能够提高开发效率,尤其在自动化构建和持续集成的场景中显得尤为重要。
- 包灬子2013-08-19还算可以把 后来用自己的方法打包了
- fenixbao2013-12-17还可以吧,有点用
- fcs061250582014-07-02学会点命令 还是不错
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- LabVIEW实现LoRa通信【LabVIEW物联网实战】
- CS-TY4-4WCN-转-公版-XP1-8B4WF-wifi8188
- 计算机网络期末复习资料(课后题答案+往年考试题+复习提纲+知识点总结)
- 从零学习自动驾驶Lattice规划算法(下) 轨迹采样 轨迹评估 碰撞检测 包含matlab代码实现和cpp代码实现,方便对照学习 cpp代码用vs2019编译 依赖qt5.15做可视化 更新:
- 风光储、风光储并网直流微电网simulink仿真模型 系统由光伏发电系统、风力发电系统、混合储能系统(可单独储能系统)、逆变器VSR+大电网构成 光伏系统采用扰动观察法实现mppt控
- (180014016)pycairo-1.18.2-cp35-cp35m-win32.whl.rar
- (180014046)pycairo-1.21.0-cp311-cp311-win32.whl.rar
- DS-7808-HS-HF / DS-7808-HW-E1
- (180014004)pycairo-1.20.0-cp36-cp36m-win32.whl.rar
- (178330212)基于Springboot+VUE的校园图书管理系统