Android命令行打包过程

       因为要用到给测试工程打包所以学习了下Android自动打包的,那自动打包就必须对Android的打包步骤与命令有一定的了解

 Android打签名包有三种形式:

第一种:通过eclipse 的工具进行打包,不断的下一步选择keystore文件即可。

第二种:纯命令行打包

第三种:命令行编译起来,使用ant工具进行打包


打包步骤:

1. 使用aapt工具打包资源文件,生成R.java文件

2. 用aidl命令生成相应java文件(如果工程中没用到则可以不用)

3. 将工程的资源编译编译到一个包里

4.dx命令,将class文件转换成.dex文件

5.aapt将资源文件打包,生成resources.ap_文件

6.apkbuilder命令,根据classes.dex文件和resources.ap_生成未签证的apk包

7.jarsigner命令,对未签名的apk包进行签名

详细命令如下:

1.使用aapt工具打包资源文件,生成R.java文件

【输入】Resource文件(工程中res中的文件)、Assets文件(另外一种资源)、AndroidManifest.xml文件、Android基础类库(Android.jar文件)

命令如下:

>aapt package –f -m -j D:\My_Projects\TestAPKNEW\gen\com\example\action02\test\R.java -S D:\My_Projects\TestAPKNEW\res -IE:\TOOL\android-sdk-windows_r21.0.1\platfo

rms\android-11\android.jar -MD:\My_Projects\TestAPKNEW\AndroidManifest.xml

[生成文件]:R.java

2. 用aidl命令生成相应java文件(如果工程中没用到则可以不用)

aidl Person.aidl gen\person.java

  根据包中的Person.aidl文件,在gen对应的目录中生成Person.java文件,


3). 将工程的资源编译编译到一个包里

aapt package -f  -S <res目录>-I <android.jar目录> -A<assert目录>  -M <AndroidManifest.xml目录> -F <输出的包目录>

命令如下:

>javac-encoding utf-8 -target 1.5 -d D:\My_Projects\TestAPKNEW\binD:\My_Projects\TestAPKNEW\src\com\targtime\mtll\test\*.javaD:\My_Projects\TestAPKNEW\gen\com

\example\action02\test\R.java-bootclasspath E:\TOOL\android-sdk-windows_r21.0.1\platforms\android-11\android.jar

-classpath D:\My_Projects\TestAPKNEW\libs\robotium-solo-4.3.jar

-d <目录>     指定存放生成的类文件的位置
-bootclasspath <路径>     覆盖引导类文件的位置

-classpath<路径> 引导库文件,引用多个jar文件直接空格后增加jar目录即可

[生成文件]

bin目录下生成相关的class文件

4) dx命令,将class文件转换成.dex文件

dx --dex --output=<要生成的classes.dex路径> <要处理的类文件的路径>

命令如下:

>dx--dex --output=D:\My_Projects\TestAPKNEW\bin\classes.dex D:\My_Projects\TestAPKNEW\bin

[生成文件]bin/classes.dex 文件

5. aapt将资源文件打包,生成resources.ap_文件

D:\My_Projects\TestAPKNEW>aapt package-f -M AndroidManifest.xml -S res -A assets -I E:\TOOL\android

-sdk-windows_r21.0.1\platforms\android-11\android.jar  -F bin\resources.ap_

【生成文件】bin\resources.ap_ 文件

6. apkbuilder命令,根据classes.dex文件和resources.ap_生成未签证的apk包

apkbuilder <APK输出路径> -u -z <需要添加的压缩资源包> -f <需要添加的文件> -rf <源文件所在的目录>

命令如下:

>apkbuilder  D:\My_Projects\TestAPKNEW\bin\ant-unsigned.apk

 -u -z D:\My_Projects\TestAPKNEW\bin\resources.ap_

-fD:\My_Projects\TestAPKNEW\bin\classes.dex

 -rf D:\My_Projects\TestAPKNEW\src

-rf 参照源文件的目录的结构

-u 创建一个没有签名的包

-z 将某个压缩文件添加到包中

-f 将某个文件添加到保重

[生成文件] 未签名的apk包***.apk

7.jarsigner命令,对未签名的apk包进行签名

jarsigner -keystore fyy.keystore -storepass123456 -keypass 123456 -signedjar new***.apk unsigned.apk fyy.keystore

  fyy.keystore 签名文件

  123456 签名密码

  new***.apk:签完名的apk

 unsigned.apk :未签名的apk

 fyy.keystore:签名文件别名

[生成内容] 签名的apk


感谢:http://www.cnblogs.com/ondream/archive/2012/06/18/ant.html







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章