使用命令行打包apk的过程

1. 使用aapt工具生成R.java文件

  >aapt package -f -m -M e:\workspace5\ApkBuildDemos\AndroidManifest.xml -S e:\workspace5\ApkBuildDemos\re -I D:\adt-bundle-windows-x86-20130522\adt-bundle-windows-x86-20130522\sdk\platforms\android-17\android.jar -J e:\workspace5\ApkBuildDemos\gen

说明:

-f 如果编译生成的文件已经存在,强制覆盖。
-m 使生成的包的目录存放在-J参数指定的目录
-M 指定AndroidManifest.xml的完整路径
-S 指定res文件夹的路径
-I 指定某个版本平台的android.jar文件的路径
2. 使用aidl工具将.aidl文件编译成.java文件

3.  使用javac工具将.java文件编译成.class文件

>javac -target 1.6 -bootclasspath D:\adt-bundle-windows-x86-20130522\adt-bundle-windows-x86-20130522\sdk\platforms\android-17\android.jar -d e:\workspace5\ApkBuildDemos\bin e:\workspace5\ApkBuildDemos\src\com\example\apkbuilddemos\MainActivity.java e:\workspace5\ApkBuildDemos\gen\com\example\apkbuilddemos\R.java

说明:

target <版本>               生成特定 VM 版本的类文件
-bootclasspath <路径>        覆盖引导类文件的位置
-d <目录>                    指定存放生成的类文件的位置
-s<源文件路径>           指定查找输入源文件的位置
4. 使用dx.bat批处理将众多.class文件转换成一个.dex文件

>dx --dex --output=E:\workspace5\ApkBuildDemos\bin\classes.dex e:\workspace5\ApkBuildDemos\bin\

说明:

–output=<要生成的classes.dex路径> <要处理的class文件的路径>

5. 使用aapt工具打包资源文件

>aapt package -f -M e:\workspace5\ApkBuildDemos\AndroidManifest.xml -S e:\workspace5\ApkBuildDemos\res 

-I D:\adt-bundle-windows-x86-20130522\adt-bundle-windows-x86-20130522\sdk\platforms\android-17\android.jar -F e:\workspace5\ApkBuildDemos\bin\resources.ap_

说明:

-f 如果编译生成的文件已经存在,强制覆盖
-M 指定AndroidManifest.xml的路径
-S 指定res文件夹路径
-I 指定某个版本平台的android.jar的路径
-A 指定assert文件夹的路径
-F 指定输出文件完整路径
6.打包成apk

C:\Program Files (x86)\Android\android-sdk-windows\tools>apkbuilder e:\workspace5\ApkBuildDemos\bin\ApkBuildDemos.apk -v
 -u -z e:\workspace5\ApkBuildDemos\bin\resources.ap_ -f e:\workspace5\ApkBuildDemos\bin\classes.dex -rf e:\workspace5\ApkBuildDemos\src

说明:

-v Verbose 显示过程信息
-u 创建一个无签名的包
-z 指定apk资源路径
-f 指定dex文件路径
-rf 指定源码路径

7. 创建密钥

>keytool -genkey -alias release -keyalg RSA -validity 20000 -keystore release.keystore

-genkey      在用户主目录中创建一个默认文件”release.keystore”
-alias       产生别名
-keyalg      指定密钥的算法
-validity    指定创建的证书有效期多少天
-keystore    指定密钥库的名称(产生的各类信息将不在.keystore文件中)

8. 签名

>jarsigner -verbose -keystore release.keystore -storepass 931628 -keypass 931628 -signedjar e:\workspace5\ApkBuildDemos\bin\ApkBuildDemos-Signed.apk E:\workspace5\ApkBuildDemos\bin\ApkBuildDemos.apk release

-verbose  签名/验证时输出详细信息
-keystore 密钥库位置
-storepass   用于密钥库完整性的口令
-keypass    专用密钥的口令(如果不同)
-signedjar   已签名的 JAR 文件的名称 (第一个apk是签名之后的文件, 第二个apk是需要签名的文件)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值