首页 > 代码库 > Android Ant 和 Gradle 打包流程和效率对比

Android Ant 和 Gradle 打包流程和效率对比

一、Ant 打包:(下载ant、配置环境变量就不说了)

1、进入命令行模式,并切换到项目目录,执行如下命令为ADT创建的项目添加ant build支持:

android update project -p . -t  "android-17"

2、build脚本默认target是help,所以会显示如上信息,修改target为debug或release就可以像无ant时一样编译、生成以及调试了。

3、使用release时  在local.properties添加签名信息

#keystore

key.store=xx.p12

key.alias=xxx

key.store.password=xxx

key.alias.password=xxx

4、命令行执行build.xml:    ant -buildfile build.xml


5、error 处理

> BUILD FAILED
> C:\Android\android-sdk\tools\ant\build.xml:601: The following error occurred while executing this line:
> C:\Android\android-sdk\tools\ant\build.xml:653: The following error occurred while executing this line:
> C:\Android\android-sdk\tools\ant\build.xml:698: null returned: 1

Also, if eclipse is set to ‘build automatically‘ then this could keep popping up because eclipse will keep regenerating into the bin folder.
just run ‘ant clean release‘ instead of ‘ant release‘ when you are building this.
rm -fR $(find . -type d -name crunch|xargs)
如果遇到上述error 就执行 ant clean release
可以参考我的项目:https://github.com/mentor811/Android-Batch-Pack

二、gradle 打包

1、下载gradle  1.10 配置环境变量

2、配置android 环境变量 ANDROID_HOME 

3、导出build文件


4、修改build文件

参考:https://github.com/umeng/umeng-muti-channel-build-tool/tree/master/Gradle

5、执行

gradle clean

gradle build


三、gradle 和 ant 的比较

1、本人用起来感觉 gradle 比较苛刻

a、AndroidManifest.xml里的注释必须<!-- 前后必须要有空格 -->

b、中文注释可能会有乱码

c、各个library project 里的 minsdk 和targetsdk 要和主工程保持一致

d、对png 图片的格式很严格

e、lint

而  使用Ant 时,没有遇到上述问题,直接就成功了。

2、gradle 会把library project 里Androidmanifest.xml 合并到主工程,ant不会

3、灵活性上 绝对是gradle,配置友盟多渠道、改包名 配置一下就ok,而ant很费劲。

4、打包效率对比:

第一次执行时 之前没有build的的项目 

gradle 2min   53   pk    ant  2min 54
下图是 已经执行过一个build后的打包时间:

左边gradle  右边 ant