关于antandroid的信息
如何使用android自带的ant
Ant是android的编译打包工具,一个很好的跨平台构建工具,特别是对于Java项目,这里使用它对Android工程进行自动化构建可以得到非常大的便利。一般来说对Android工程进行构。
网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、成都小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了鼓楼免费建站欢迎大家使用!
使用Ant搭建Android开发环境,建立android项目
配置Ant环境在windows上应该选择zip压缩包,将zip压缩包解压到一个目录。
打开系统环境变量,在系统变量栏点击新建,变量名输入“ANT_HOME”,变量值为Ant的根目录,如“D:\Android\apache-ant-1.9.0”,注意不要带双引号。
在系统变量中找到Path变量,点击编辑,在变量值的最后添加“%ANT_HOME%\bin”,注意不要带双引号,并且要使用“;”和之前的变量值隔开。
打开一个cmd窗口,输入“ant”,如果显示一下信息,说明Ant的环境配置成功,如果显示:'ant'
不是内部或外部命令,也不是可运行的程序或批处理文件。则要检查一下路径是否有问题。
在Eclipse中配置Ant
在eclipse中使用Ant之前,为了使Ant的build.xml文件能够安装制定的格式进行缩进和高亮显示,并能够进行代码提示,首先要简单的设置一下。
打开Windows - Preferences,依次展开General,Editors,选中File Associations,点击Add...,在Add
File Type对话框中输入build.xml,点击Ok。
接下来在File type:栏选中build.xml,在Associated Editor:栏选中Ant
Editor,点击Default,build.xml的图标变成了一个小蚂蚁,配置完毕。
使用Ant编译Android的java代码和native代码
新建一个Android工程TestAnt,在工程的根目录下新建一个build.xml文件
输入以下内容:
?xml version="1.0" encoding="UTF-8"?project name="TestAnt" default="init" target name="init" fail message="Ant 1.7.0 or higher is required." condition not antversion property="ant.version" atleast="1.7.0" / /not /condition /fail /target /project
打开cmd,切换到工程根目录,输入ant init
编译成功,来解析这个build.xml:
project name="TestAnt" default="init"
project是Ant工程的根节点,name属性是工程的名称,default是默认执行的target,init为默认的target,当我们输入Ant的时候和Ant
init是一样的效果。
target name="init" fail message="Ant 1.7.0 or higher is required." condition not antversion property="ant.version" atleast="1.7.0" / /not /condition /fail /target
target指定了要执行的操作,init是我们为这个target所起的名字,也可以是build,clean等等。在这个target中,执行的是检查Ant的版本,如个小于1.7.0的话会输出报错信息。
例如我们可以添加一个clean的target
target name="clean" echo message="Deleting temporary files..." / delete dir="gen" / delete dir="bin" / delete dir="out" / delete dir="obj" / echo message="DONE (Deleting temporary files)" / /target
执行的操作是删除所有临时目录,在cmd窗口中输入Ant clean,这四个临时目录就会被删除,和在eclipse中执行清理是一个效果。
使用Ant编译Android工程
在SDK中,Google已经为我们写好了一个build.xml文件,就是sdk根目录\tools\ant\build.xml,所以我们只要把这个build.xml引入就可以编译Android工程了。
在这之前首先要新建一个local.properties文件,引入sdk和ndk的路径
输入一下内容:
sdk.dir=D:\\Android\\android-sdk
ndk.dir=D:\\Android\\android-ndk
分别为sdk和ndk的路径,要安装自己的实际路径进行配置。
在测试工程的build.xml中输入一下代码:
?xml version="1.0" encoding="UTF-8"?project name="TestAnt" default="release" loadproperties srcFile="local.properties" / loadproperties srcFile="project.properties" / fail message="sdk.dir is missing. Make sure to generate local.properties using 'android update project'" unless="sdk.dir" / fail message="ndk.dir is missing. Make sure to generate local.properties using 'android update project'" unless="ndk.dir" / import file="${sdk.dir}/tools/ant/build.xml" //project
在命令行中执行ant release或ant debug,就会执行对应的编译。
以上只是进行Java代码的编译,如何编译native代码呢,在NDK中Google可没有提够build.xml,这就需要我们自己实现。在新版NDK中,我们只要在命令行中切换到工程的根目录,然后执行
“D:\Android\android-ndk\ndk-build.cmd”(红色部分要替换成自己的路径)
就可以,例如,在TestAnt工程中添加native代码
执行ndk-build
所以我们只要在Ant中执行一个cmd命令就可以了,在build.xml中添加
target name="native" echo message="Building native libraries..." / exec executable="${ndk.dir}/ndk-build.cmd" failonerror="true" / echo message="DONE (Building native libraries)" / /target
然后在命令行中执行ant native
执行了ndk-build。
以上介绍的都是使用Ant进行进步的Android编译操作,在此基础上可以实现更复杂的操作,比如批量替换资源文件,批量打包等等。
android 如何优化ant 批量打包
1.配置JAVA的环境变量
很多Java程序员由于使用Eclipse不配置Java环境变量也能正常运行代码。但是如果想使用Ant命令批量打包本步骤必不可少。
2. 下载Ant(这里的Ant不是eclipse和android SDk里面自带的ant)
3. 解压Ant并配置环境变量
a) 解压Ant,比如解压到D:\ant
b) 我的电脑-属性-高级-环境变量
c) 系统变量新建ANT_HOME,变量值为d:\ant
d) 系统变量新建或修改PATH:将%ANT_HOME%\bin;%ANT_HOME%\lib添加到环境变量的PATH中 (注意以上
路径均用反斜杠)
4. 验证ant配置是否正确
在控制台输入Cmd 回车, ant 回车,如果出现:
Buildfile: build.xml does not exist!
Build failed
恭喜你已经ant配置成功!!
Ant批量打包的基本思想是,每次打包后自动替换渠道号,然后再次打包从而实现多渠道打包的目的。
但是Ant不支持循环,怎样循环打包? 扩展包Ant-contrib能轻松解决这个问题.可以翻墙的1.0b3.jar放到Ant的lib文件夹即可.
5. 编写build.xml
将以下带有颜色的字体(包括路径,项目名称)都改成正确的名称
?xml version="1.0" encoding="UTF-8"?
project name="ThumbPlay" default="help"
!-- The local.properties file is created and updated by the 'android' tool.
It contains the path to the SDK. It should *NOT* be checked into
Version Control Systems. --
property file="local.properties" /
!-- The ant.properties file can be created by you. It is only edited by the
'android' tool to add properties to it.
This is the place to change some Ant specific build properties.
Here are some properties you may want to change/update:
source.dir
The name of the source directory. Default is 'src'.
out.dir
The name of the output directory. Default is 'bin'.
For other overridable properties, look at the beginning of the rules
files in the SDK, at tools/ant/build.xml
Properties related to the SDK location or the project target should
be updated using the 'android' tool with the 'update' action.
This file is an integral part of the build system for your
application and should be checked into Version Control Systems.
--
property file="ant.properties" /
!-- The project.properties file is created and updated by the 'android'
tool, as well as ADT.
This contains project specific properties such as project target, and library
dependencies. Lower level build properties are stored in ant.properties
(or in .classpath for Eclipse projects).
This file is an integral part of the build system for your
application and should be checked into Version Control Systems. --
loadproperties srcFile="project.properties" /
!-- quick check on sdk.dir --
fail
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
unless="sdk.dir"
/
!-- extension targets. Uncomment the ones where you want to do custom work
in between standard targets --
!--
target name="-pre-build"
/target
target name="-pre-compile"
/target
target name="-post-compile"
/target
--
!-- Import the actual build file.
To customize existing targets, there are two options:
- Customize only one target:
- copy/paste the target into this file, *before* the
import task.
- customize it to your needs.
- Customize the whole content of build.xml
- copy/paste the content of the rules files (minus the top node)
into this file, replacing the import task.
- customize to your needs.
***********************
****** IMPORTANT ******
***********************
In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
in order to avoid having your file be overridden by tools such as "android update project"
--
!-- version-tag: 1 --
taskdef resource="net/sf/antcontrib/antcontrib.properties"
classpath
pathelement location="D:/androidDev/batch-package-tool/ant1.8.3/lib/ant-contrib-1.0b3.jar"/
/classpath
/taskdef
import file="${sdk.dir}/tools/ant/build.xml" /
target name="deploy"
foreach target="modify_manifest" list="${market_channels}" param="channel" delimiter=","
/foreach
/target
target name="modify_manifest"
!--replaceregexp file="AndroidManifest.xml" encoding="utf-8" match="android:value="(.*)"" replace=""/--
replaceregexp flags="g" byline="false"
regexp pattern="android:name="UMENG_CHANNEL" android:value="(.*)"" /
substitution expression="android:name="UMENG_CHANNEL" android:value="${channel}"" /
fileset dir="" includes="AndroidManifest.xml" /
/replaceregexp
!--property name="out.release.file" value="${out.absolute.dir}/${channel}.apk"/--
antcall target="release"/
copy tofile="${gos.path}/ThumbPlay_${channel}.apk"
fileset dir="${out.absolute.dir}/" includes="ThumbPlay-release.apk" /
/copy
delete includeEmptyDirs="true"
fileset dir="${out.absolute.dir}" includes="**/*"/
/delete
echo message="==========================="/
/target
/project
6. 配置local.properties
sdk.dir=D:\\androidDev\\android-sdk 改成你的SDK所在的目录,注意转义字符
7. 配置ant.properties
# the config file for batch package.
application.package=com.leyou.thumb (你的apk文件的包名)
ant.project.name=ThumbPlay (你的apk文件的工程名)
java.encoding=utf-8
out.absolute.dir=C:/compile
gos.path=Z:/app-version/test (打好的渠道包要放到的目的位置)
key.store=D:/androidApk/thumbplay/thumbplay.keystore (keystore文件路径)
key.store.password=wushenshiji999 (keystore文件路径)
key.alias=muzhigame (keystore文件别名)
key.alias.password=wushenshiji999 (keystore文件别名密码)
app_version=1.0.4 (要打的渠道包的版本名称)
market_channels=guanwang,shuihu,wushen,shenhua,huawei (渠道名称,要以逗号分隔,必须在一行内)
如何将android原生应用改成ant方式编译
android 程序打包成apk,如果在是命令行方式,一般都要经过如下步骤:
1.用aapt命令生成R.java文件
2.用aidl命令生成相应java文件
3.用javac命令编译java源文件生成class文件
4.用dx.bat将class文件转换成classes.dex文件
5.用aapt命令生成资源包文件resources.ap_
6.用apkbuilder.bat打包资源和classes.dex文件,生成unsigned.apk
7.用jarsinger命令对apk认证,生成signed.apk
eclipase手动打包生成apk方式,只不过是eclipase代替执行了以上命令而已。
eclipse用起来虽然方便,为什么要使用Ant批量打包Android应用,对于个人来说主要有以下两方面考虑:
1、咱们在发布App的时候,可能需要发送到十几,甚至几十个不同的分发渠道,比如360手机市场,百度,应用宝等等,咱们可能需要对各个渠道的下载量,用户存留和用户使用情况等数据进行分析,比如使用百度移动统计,友盟统计等。为了实现统计功能,需要在配置文件中添加一个数据元,来标识咱们的应用要发布到哪一个渠道上,因此,若使用传统的方法,咱们每发布一个渠道的版本,就需要修改清单文件中的数据元,然后再使用keystore进行签名和打包。若只有一两个分发渠道,工作量还是可以接受的,但是若咱们的分发渠道打到几十个的时候,咱们如果再手动的进行修改然后签名打包发布,那工作量就很可观了。因此,为解决这种需求,咱们采用Ant来实现对Android应用的自动打包。
2、咱们做产品的时候,肯定需要经常打不同环境的包,比如开发环境,测试环境,生产环境,这个时候怎么办,如果用传统方法,打开发环境包要把自己的服务端IP和图片服务器IP改成开发的,打包,然后打测试的包,又要改成测试服务器IP和图片服务器IP,这样多麻烦,如果把这服务端IP和图片服务器IP,配置到一个xml文件里,用ant打包方式实现自动替换,多方便。
怎样用Ant编译Android工程?
对于Android工程,在sdk中其实已经写好了一个Ant编译build配置模板,这样就使得在使用ant编译Android工程成为了一件很轻松的事情。
具体该怎样做呢?
整体来讲分为三大步:
1.准备环境,配置环境变量
2.更新工程,自动生成Ant编译配置文件
3.编译工程
使用ant脚本打包android项目,包含library项目,如何设置依赖项目?
设置方法如下:
1.生成R.java类文件:
Eclipse中会自动生成R.java,ant和命令行使用android SDK提供的aapt.ext程序生成R.java;
2.将.aidl文件生成.java类文件:
Eclipse中自动生成,ant和命令行使用android SDK提供的aidl.exe生成.java文件;
3.编译.java类文件生成class文件:
Eclipse中自动生成,ant和命令行使用jdk的javac编译java类文件生成class文件;
4.将class文件打包生成classes.dex文件:
Eclipse中自动生成,ant和命令行使用android SDK提供的dx.bat命令行脚本生成classes.dex文件;
5.打包资源文件:
Eclipse中自动生成,ant和命令行使用Android SDK提供的aapt.exe生成资源包文件;
6.生成未签名的apk安装文件:
Eclipse中自动生成debug签名文件存放在bin目录中,ant和命令行使用android SDK提供的apkbuilder.bat命令脚本生成未签名的apk安装文件;
7.对未签名的apk进行签名生成签名后的android文件就可以了。
文章题目:关于antandroid的信息
文章位置:http://azwzsj.com/article/dsdpsjg.html