1. 使用aapt工具生成R.java文件
>aapt package -f -m -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 -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是需要签名的文件)