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




转载于:https://www.cnblogs.com/bhlsheji/p/5104360.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375213.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

读软件工程这本书的感悟(第一次作业)

在还没上这门课之前&#xff0c;我认为软件工程是让我们学会编写软件&#xff0c;但是在看到这本书后&#xff0c;我才知道我们学的不是如何的开发软件&#xff0c;而是在学习开发和维护软件&#xff0c;以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术…

请大家编译连接并执行一下

由于是笔记&#xff0c;也许记得有点糟糕&#xff0c;也许班门弄斧没有独到见解 &#xff0c;见谅见谅

KVC和KVO

OC中的一个比较有特色的知识点&#xff1a;KVC和KVO一、KVC操作OC中的KVC操作就和Java中使用反射机制去访问类的private权限的变量&#xff0c;很暴力的&#xff0c;这样做就会破坏类的封装性&#xff0c;本来类中的的private权限就是不希望外界去访问的&#xff0c;但是我们这…

8086加法指令ADD

加法指令ADD(ADDition) ADD OPRD1,OPRD2 ;OPRD1<--OPRD1OPRD2 ;完成OPRD1与OPRD2相加 ,结果保存在OPRD1中CODE SEGMENT MOV AX,1 MOV BX,2 ADD AX,BX ;AX<--AXBX ,结果AX3CODE ENDS参与运算的操作数类型必须保持一致,同为字节或字可组合以下几种形式&…

Fragment基础讲解

//新建一个碎片public class LeftFragment extends Fragment { Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // 加载一个碎片界面 View view inflater.inflate(R.layout.leftfragment, container, false)…

[bzoj1012](JSOI2008)最大数maxnumber(Fenwick Tree)

Description 现在请求你维护一个数列&#xff0c;要求提供以下两种操作&#xff1a; 1、 查询操作。语法&#xff1a;Q L 功能&#xff1a;查询当前数列中末尾L个数中的最大的数&#xff0c;并输出这个数的值。限制&#xff1a;L不超过当前数列的长度。 2、 插入操作。语法&…

javaScript转换日期合格式

javascript如何将时间日期转换为Date对象:有时候需要讲一个字符串型的时间日期转换为Date时间对象&#xff0c;下面就通过一个简单的实例提供一种解决方案&#xff0c;当然也是一种思路&#xff0c;可以进行一定的变通&#xff0c;以达到举一反三的效果。例如这里有一个时间日期…

8086减法指令SUB

减法指令SUB(SUBtraction) SUB OPRD1,OPRD2 ; OPRD1<-- OPRD1-OPRD2 都影响FLAG标志寄存器,同样的包含两种含义(有符号减法和无符号减法)

奇怪吸引子---Dadras

奇怪吸引子是混沌学的重要组成理论&#xff0c;用于演化过程的终极状态&#xff0c;具有如下特征&#xff1a;终极性、稳定性、吸引性。吸引子是一个数学概念&#xff0c;描写运动的收敛类型。它是指这样的一个集合&#xff0c;当时间趋于无穷大时&#xff0c;在任何一个有界集…

8086 INC, DEC

INC OPRD ;OPRD<--OPRD1 ;自加1指令code segmentmov ax,0inc ax ;ax<--ax1 ,ax1inc ax ;ax<--ax1 ,ax2code endsDEC OPRD ;OPRD<--OPRD-1 ;自减1指令code segmentmov ax,5dec ax ;ax<--ax-1 ,ax4 code ends

iPhone UITableViewCell如何滚动到视图顶端。

如何让UITableViewCell滚动到视图顶端。 - (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated;- (void)scrollToNearestSelectedRowAtScrollPosition:(UITableViewScrollPosition)s…

app 一些常用的

发短信 &#xff1a;sms:10086 打电话&#xff1a;tel:10086 1、-webkit-tap-highlight-color:rgba(255,255,255,0)可以同时屏蔽ios和android下点击元素时出现的阴影。备注&#xff1a;transparent的属性值在android下无效。 2、-webkit-appearance:none可以同时屏蔽输入框怪异…

8086乘法指令MUL,IMUL

对于加减指令来说CPU对有符号加减和无符号加减一视同仁,根据我们需要把它作为有符号的结果还是无符号的结果,但是乘除法指令区分有符号乘除和无符号乘除指令 无符号数乘法指令MUL(MULtiply) MUL OPRD(OPRD可以用除立即数以外的任何寻址方式)OPRD是八位一个乘数默认在AL中 则&am…

hdu 4857 逃生 拓扑排序

逃生题目连接&#xff1a; http://acm.hdu.edu.cn/showproblem.php?pid4857 Description 糟糕的事情发生啦&#xff0c;现在大家都忙着逃命。但是逃命的通道很窄&#xff0c;大家只能排成一行。 现在有n个人&#xff0c;从1标号到n。同时有一些奇怪的约束条件&#xff0c;每个…

指针数组,数组指针,指针函数,函数指针(转)

int *p[4]; //指针数组。 是个有4个元素的数组&#xff0c; 每个元素的是指向整型的指针。(数组的每个元素都是指针)int (*p)[4]; //数组指针。 它是一个指针&#xff0c;指向有4个整型元素的数组。 (一个指针指向有4个整型元素的数组)int *…

8086除法指令DIV,IDIV

无符号除法指令DIV(DIVision) DIV OPRD ;除数OPRD决定是8位除法还是16位除法;OPRD8位,则被除数默认在AX中,AX除以OPRD的商保存在AL中,余数保存在AH中;OPRD16位,则被除数默认在DX与AX中,结果的商保存在AX中,余数保存到DX中assume cs:code data segmentdb 2,4 data ends code se…

Hibernate 基础配置及常用功能(二)

本章主要是描述几种经典映射关系&#xff0c;顺带比较Hibernate4.x和Hibernate5.x之间的区别。 一、建立测试工程目录 有关实体类之间的相互映射关系&#xff0c;Hibernate官方文档其实描述的非常详细&#xff0c;这里只提供几种常见映射。&#xff08;推荐4.3.11版本的 hibern…

三言两语

人生中总是在选择。每当做一件事我们都应该问问我们的内心&#xff0c;或多或少我们都能理解一点人生的真谛。 最近时间很充裕&#xff0c;也就想了好多事情。首先我想明白的第一件事就是做任何事就要勇敢的去面对、去追求。喜欢一个女孩子大概有8年了吧&#xff01;这期间我们…

8086逻辑移位指令SHL和SHR

SHL逻辑左移指令 SHL OPRD M;把操作数OPRD左移M位,M为位移次数,为1或为CL(位移超过1次用CL表示) ;每移动一位右边用0补足一位,移出的最高位进入CF(最后移出的一位写入CF) MOV AL,00010011B ;13H 00010011B SHL AL,1 ;把AL左移1位,移出的最高位0进入CF,右边0补足1位…

YTU 2903: A--A Repeating Characters

2903: A--A Repeating Characters 时间限制: 1 Sec 内存限制: 128 MB提交: 50 解决: 30题目描述 For this problem,you will write a program that takes a string of characters,S,and creates a new string of characters,T,with each character repeated R times.That is,…