一、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="">

Android Ant 和 Gradle 打包流程和效率对照的更多相关文章

  1. Android Ant 和 Gradle 包装工艺和效率控制

    一个.Ant 包:(下载ant.配置环境变量不说) 1.进入命令行模式,并切换到项目文件夹,运行例如以下命令为ADT创建的项目加入ant build支持: android update project ...

  2. Android 项目利用 Android Studio 和 Gradle 打包多版本APK

    在项目开发过程中,经常会有需要打包不同版本的 APK 的需求. 比如 debug版,release版,dev版等等. 有时候不同的版本中使用到的不同的服务端api域名也不相同. 比如 debug_ap ...

  3. 利用 Android Studio 和 Gradle 打包多版本APK

    在项目开发过程中,经常会有需要打包不同版本的 APK 的需求. 比如 debug版,release版,dev版等等. 有时候不同的版本中使用到的不同的服务端api域名也不相同. 比如 debug_ap ...

  4. android ant 多渠道批量打包

    注:本文转载于:http://blog.csdn.net/zz7zz7zz/article/details/8915701 前言: 利用ant 可实现多渠道,批量打包. 正文: 思想:通过循环更改An ...

  5. Android - Ant自动编译打包android项目 -- 1(转)

    1.  背景: Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其当要将应用打包发布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我 ...

  6. Android Studio 使用 Gradle 打包 Jar

    Android Studio 打 Jar 包一直是一个麻烦的事,按照网上现有的教程,打包一个混淆的 jar 需要完成下列步骤: 1.将 plugin 修改为 library 后 build 出 aar ...

  7. android ant 自动编译打包

    http://www.cnblogs.com/tankaixiong/archive/2010/11/24/1887156.html

  8. 在Android studio中用gradle打 jar 包(Mac下)

    这两天公司要重构项目,以前的项目在eclipse上,准备迁移到Android studio上,需要对项目打包,于是我学习了Android studio中gradle打包的内容.我在公司用的Mac,在家 ...

  9. gradle打包android (实现外部导入签名文件、多渠道打包、导入ant脚本)

    近期一直在做android自己主动打包,之前已经完毕了用纯命令行的形式打包.原生态ant脚本打包.和基于android的SDK的打包.而且实现了多渠道打包,后来同事推荐了gradle,网上的资料说gr ...

随机推荐

  1. XMPPclient库Smack 4.0.6一个版本的开发

    XMPPclient库Smack 4.0.6版开发之中的一个 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.Smack库概述 Smack是一个开源. ...

  2. C语言scanf函数详解

    函数名: scanf  功 能: 运行格式化输入  用 法: int scanf(char *format[,argument,...]); scanf()函数是通用终端格式化输入函数,它从标准输入设 ...

  3. Repeater

  4. hibernate级联保存问题,出错not-null property references a null or transient value

    Servlet.service() for servlet default threw exception org.hibernate.PropertyValueException: not-null ...

  5. 基于Linux根据僵尸网络病毒平台《比尔盖茨》

    感觉分析的非常好,所以决定翻译出来,希望和大家多多交流O(∩_∩)O~ 转载请注明出处:http://blog.csdn.net/u010484477     O(∩_∩)O谢谢 keyword:病毒 ...

  6. LCS最大公共子序列问题

    在生物应用中,经常需要比较两个(或多个)不同生物体的DNA, 例如:某种生物的DNA可能为S1=ACCGGTCGAGTGCGCGGAAGCCGGCCGAA, 另一种生物的DNA可能为S2=GTCGTT ...

  7. Python 分析Twitter用户喜爱的推文

    CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-8-5 @author: guaguastd @name: an ...

  8. spring-bean属性配置解析

    autowire属性值有 byName 根据Bean定义时的“id"属性上指定的别名与Setter名称是否一致进行自动装配 byType 根据PoJo的setXXX()方法所接受的类型判断b ...

  9. Liftoff Software | Next stop, innovation

    Liftoff Software | Next stop, innovation Previous Next Gate One 1.1 Now Available Submitted by Dan M ...

  10. linux内核笔记-内核同步

    linux内核就相当于不断对请求进行响应的服务器,这些请求可能来自CPU,可能来自发出中断的外部设备.我们将内核看作两种请求的侍者. (1)老板提出请求,侍者如果空闲,为老板服务.(系统调用或异常) ...