因为要用到给测试工程打包所以学习了下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 -zD:\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***.apkunsigned.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







更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. 读取android手机流量信息
  4. android 使用html5作布局文件: webview跟javascript交互
  5. Android(安卓)多媒体扫描过程(Android(安卓)Media Scanner Proces
  6. android“设置”里的版本号
  7. Android开发环境搭建
  8. Android(安卓)Resource介绍和使用
  9. 2014.01.21 ——— android 关联android-support源码

随机推荐

  1. PHP实现页面静态化、纯静态化及伪静态化
  2. 解析PHP中的安全模式(safe_mode)
  3. php用逗号格式化数字的方法(代码示例)
  4. PHP作用域和文件夹操作示例
  5. Windows php5.6安装Imagick库的方法详解
  6. 用PHP写一个计算器(附完整代码)
  7. php获取农历、节日、节气的方法(代码实例)
  8. PHP通过设置系统环境变量来区分测试与正
  9. php实现向mysql批量插入数据
  10. PHP是如何做垃圾回收的(图文)