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,一经查实,立即删除!

相关文章

[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;以达到举一反三的效果。例如这里有一个时间日期…

奇怪吸引子---Dadras

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

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

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

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,…

ADO连接ACCESS数据库

首先在StdAfx.h中加入 建立连接&#xff1a;(在xxApp文件中) 1 声明变量 2 建立连接 (1) AfxOleInit 初始化 OLE 为应用程序的支持。 BOOL AFXAPI AfxOleInit( ); 返回值 非零&#xff0c;如果成功;0&#xff0c;如果初始化失败&#xff0c;可能&#xff0c;因为安装该 OLE 系…

使用搜索栏过滤collectionView(按照首字母)

1.解析json数据NSDictionary *citiesDic [CoreJSONSerialization coreJSONSerialization:"cities"];NSDictionary *infor [citiesDic objectForKey:"infor"];NSArray *listItems [infor objectForKey:"listItems"]; 2.存储数据 for (NSDicti…

R软件中 文本分析安装包 Rjava 和 Rwordseg 傻瓜式安装方法四部曲

这两天&#xff0c;由于要做一个文本分析的内容&#xff0c;所以搜索了一天R语言中的可以做文本分析的加载包&#xff0c;但是在安装包的过程&#xff0c;真是被虐千百遍&#xff0c;总是安装不成功。特此专门写一篇博文&#xff0c;把整个心塞史畅快的释放一下。 ------------…

Windows下安装Python数据库模块--MySQLdb

## 1、下载MySQLdb [去官网](http://pypi.python.org/pypi/MySQL-python/) 下载对应的编译好的版本&#xff08;现在官网最新版本为1.2.5&#xff09;&#xff1a; MySQL-python-1.2.5.win32-py2.7.exe 得到1MB的安装文件 MySQL-python-1.2.5.win32-py2.7.exe ## 2、安装 以…

Java 理解CPU缓存(CPU Cache)

从Java视角理解系统结构连载, 关注我的微博(链接)了解最新动态 众所周知, CPU是计算机的大脑, 它负责执行程序的指令; 内存负责存数据, 包括程序自身数据. 同样大家都知道, 内存比CPU慢很多. 其实在30年前, CPU的频率和内存总线的频率在同一个级别, 访问内存只比访问CPU寄存器慢…

Homebrew OS X 不可或缺的套件管理器

Homebrew OS X 不可或缺的套件管理器,可以说Homebrew就是mac下的apt-get、yum. 1.安装homebrew brew的安装很简单&#xff0c;使用一条ruby命令即可&#xff0c;Mac系统上已经默认安装了ruby。 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install…

【BZOJ】【1003】【ZJOI2006】物流运输trans

最短路/DP 这题数据规模并不大&#xff01;&#xff01;这是重点……… 所以直接暴力DP就好了&#xff1a;f[i]表示前 i 天的最小花费&#xff0c;则有$f[i]min\{f[j]cost[j1][i]k\} (0\leq j \leq i-1)$其中cost数组表示第L天到第R天只用一种运输方案连续运$R-L1$天的最小代价…

[傅里叶变换及其应用学习笔记] 二十四. 级联,脉冲响应

我们上节课学习了 在离散有限维空间中&#xff0c;任何线性系统都是通过矩阵间的相乘得到的在连续无限维空间中&#xff0c;任何线性系统都是通过对核函数的积分得到的脉冲响应&#xff08;impulse response&#xff09; 级联线性系统&#xff08;Cascading linear system&…

团队开发——用户需求调研报告

用户需求调研报告 项目名称&#xff1a; 躲避小球 项目编号&#xff1a;001 调研主题&#xff1a; 用户需求 访谈时间&#xff1a;2015.4.10 调研地点&#xff1a; 石家庄铁道大学图书馆 访谈部门&#xff1a; 三个人行 参与人员&#xff1a; 林彦汝 1. 访谈目的 1、让用…

设计模式(十五):解释器模式

一、定义 在设定环境中&#xff0c;定义一种规则或者语法&#xff0c;通过解释器来解释规则或者语法的含义. 二、实例&#xff1a;将 二十一 —> 21 2.1 设定我们的环境 Context public class Context{public string Input { get; set; }public int Output { get; se…

MySQL 5.7.10 免安装配置

# 配置环境&#xff1a;windows 64bit # 安装版本&#xff1a;mysql-5.7.10-win32&#xff08;zip archive版本&#xff09; 1. ZIP Archive版是免安装的&#xff0c;只需把mysql-5.7.10-win32.zip解压到安装目录即可。 2. 在D:\Program Files\mysql-5.7.10-win32文件夹下新建配…

fortran语法笔记

1&#xff0c;数据类型&#xff0c;fortran支持整形&#xff0c;real型&#xff0c;logical型&#xff0c;char型&#xff0c;复数型。整形分为为长整形和短整形定义长整形的方法 同时声明多个变量的话可以用逗号隔开。 加两个冒号的话可以直接在声明的时候赋值。 fortran是唯一…

BSA基础数据维护

平台 BSA基础数据维护 。扇区五个字段的内容 本来值为0&#xff0c;经过107上计算解析&#xff0c;得出正常的数值。然后106上报&#xff08;200050&#xff09;&#xff0c;得到回复&#xff08;200051&#xff09;。 查看回复数据&#xff0c;是否有错误。比如提示104 基站拼…

API函数MessageBox的参数与返回值

Win32汇编函数的参数,参数类型,返回值都是一个dword类型(4字节) 返回值永远放在EAX中,如超过4个字节则返回一个数据的指针(指向返回值存放的缓冲区地址).data titleS db helloworld,0 messageS db hello,welcome to win32,0.code start:invoke MessageBox,NULL,offset message…

The initialize list of C++ Class

性能问题之外&#xff0c;有些时场合初始化列表是不可或缺的&#xff0c;以下几种情况时必须使用初始化列表 常量成员&#xff0c;因为常量只能初始化不能赋值&#xff0c;所以必须放在初始化列表里面 Error1(constchar* constmsg) :data(msg) { //data msg; } 引用类型&…