怎样用Ant编译Android工程?

怎样用Ant编译Android工程?,第1张

对于Android工程,在sdk中其实已经宴卖写好了一个Ant编译build配置模板,这样就使得备缓在使用ant编译Android工程成为了一件很轻松的事情。

具体该怎样做呢?

整体来讲分为三大步:

1.准备环境,配置环境变量

2.更新工程,自动生成Ant编译配置文件

3.编晌滚逗译工程

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的编译打包工具,一个很好的跨平台构建工具,特别是对于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编译 *** 作,在此基础上可以实现更复杂的 *** 作,比如批量替换资源文件,批量打包等等。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12314207.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存