一、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文件

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFzb25ibG9n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFzb25ibG9n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

最新文章

  1. 实际案例:在现有代码中通过async/await实现并行
  2. UIEditBox 控件的使用 点击输入框 自动切换 到下一个输入框 并上移 背景
  3. svn-git
  4. sikuli实战记录
  5. import logging 导入记录日志包
  6. 边表+SPFA (使用指针+动态内存)
  7. 1195: [HNOI2006]最短母串 - BZOJ
  8. CALayer3-层的属性
  9. if简单的写法之范围
  10. python3 爬取百合网的女人们和男人们
  11. layui(八)——轮播图常见用法总结
  12. 20165206 2017-2018-2 《Java程序设计》第6周学习总结
  13. python中建模分析零息票收益率曲线--复利和连续复利
  14. 【洛谷P1638】逛画展
  15. String:(字符串)中常用的方法
  16. POJ 1511 Invitation Cards / UVA 721 Invitation Cards / SPOJ Invitation / UVAlive Invitation Cards / SCU 1132 Invitation Cards / ZOJ 2008 Invitation Cards / HDU 1535 (图论,最短路径)
  17. free -m 下的含义
  18. 项目UML设计
  19. Mac在终端用命令装载dmg文件
  20. 获取 stoken 或者id MVC写法

热门文章

  1. WebApp中调试jsavascript
  2. VS2005 MFC 预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)
  3. 多线程——实现Callable接口
  4. go编程基础
  5. 一个好用的Dialog插件
  6. listview改变选中行字体颜色
  7. RSA加密解密和读取公钥、私钥
  8. adnroid仿miui的dialog
  9. POJ 1300 Door Man - from lanshui_Yang
  10. uva 10003 Cutting Sticks(区间DP)