本文转载于:http://blog.csdn.net/lincyang/article/details/40950153

java编译那些事儿中提到了用ant去编译Java项目,今天扩展到用它来构建Android项目,其实道理是相通的,变化的只是使用的形式。ant构建相比IDE的好处是多个子项目使用自定义jar包时,ant可以更好的完成自动化构建,一个命令就搞定整个项目的编译而不用手工的导出jar包然后再将其放到指定目录。这就是高效的构建工具所标榜的。

先来说说ant在Linux下的安装(那篇文章写的太过简单,其实也是很简单的,别看mannul中写的那么复杂)。

1.ant的安装

最简单的办法就是直接用Linux系统命令安装:

Ubuntu:

sudo apt-get install ant

Fedora:

sudo yum install ant

缺点是软件服务器上的版本太过老旧。我在Fedora 14(这系统版本就够老的了)安装版本是1.7.1,而最新版本是1.9.4,所以还是推荐直接从官网下载最新的版本安装。如果想看源码就选择Source
Edition,而我选择了Binary Edition,就像是免安装版软件一下,步骤如下:

1)下载。zip或其他格式安装包,解压到你想放置的路径:

[plain] view
plain
copy

  1. [linc@localhost ant]$ cp ~/Downloads/apache-ant-1.9.4-bin.zip .
  2. [linc@localhost ant]$ unzip apache-ant-1.9.4-bin.zip
  3. [linc@localhost ant]$ cd apache-ant-1.9.4
  4. [linc@localhost apache-ant-1.9.4]$ ls
  5. bin  fetch.xml   INSTALL  lib      manual  README
  6. etc  get-m2.xml  KEYS     LICENSE  NOTICE  WHATSNEW

2)设置环境变量

在.bashrc中添加如下内容:

[plain] view
plain
copy

  1. 15 export ANT_HOME=/home/linc/dev/ant/apache-ant-1.9.4
  2. 16 export JAVA_HOME=/usr/java/jdk1.6.0_25
  3. 17 export PATH=${PATH}:${ANT_HOME}/bin

为了让修改立即生效,执行一下 source ~/.bashrc

3)检查是否成功

执行ant,如打印下面的信息,说明ant起作用了。

[plain] view
plain
copy

  1. [linc@localhost apache-ant-1.9.4]$ ant
  2. Buildfile: build.xml does not exist!
  3. Build failed

2.build.xml

ant的编译是基于build.xml配置文件的,而Android SDK已经为我们提供了一个模板,详见<sdk>/tools/ant/build.xml

,更为美妙的是我们可以用android工具来生成build.xml。

android工具是<sdk>/tools下的工具,从名称可以看出它的能力是很强的。这个工具以后会单独找个机会说,先来简单介绍一下它是如何帮忙创建build.xml文件的,我们首先看一下帮助:

[plain] view
plain
copy

  1. [linc@localhost BallGame]$ android -h update project
  2. Usage:
  3. android [global options] update project [action options]
  4. Global options:
  5. -h --help       : Help on a specific command.
  6. -v --verbose    : Verbose mode, shows errors, warnings and all messages.
  7. --clear-cache: Clear the SDK Manager repository manifest cache.
  8. -s --silent     : Silent mode, shows errors only.
  9. Action "update project":
  10. Updates an Android project (must already have an AndroidManifest.xml).
  11. Options:
  12. -l --library    : Directory of an Android library to add, relative to this
  13. project's directory.
  14. -p --path       : The project's directory. [required]
  15. -n --name       : Project name.
  16. -t --target     : Target ID to set for the project.
  17. -s --subprojects: Also updates any projects in sub-folders, such as test
  18. projects.

除了参数-p路径是必须的,其他参数都可以不带。但是建议名称-n要加上,否则会默认以Activity名称来命名。-t可以不做修改,项目的Target Id其实就是指Android API的版本,我们可以查看项目的project.properties,以此为基准,如下:

[plain] view
plain
copy

  1. [linc@localhost BallGame]$ tail project.properties
  2. ...
  3. # Project target.
  4. target=android-4

进入原有项目BallGame目录,输入命令如下:

[plain] view
plain
copy

  1. [linc@localhost BallGame]$ android update project  -p .
  2. Updated local.properties
  3. No project name specified, using Activity name 'MainActivity'.
  4. If you wish to change it, edit the first line of build.xml.
  5. Added file ./build.xml
  6. Added file ./proguard-project.txt

也可以指定更全的参数:

[plain] view
plain
copy

  1. [linc@localhost BallGame]$ android update project  -p . -n BallGame -t android-4
  2. Updated project.properties
  3. Updated local.properties
  4. Updated file ./build.xml
  5. Updated file ./proguard-project.txt

至此,build.xml在我们不动一枪的情况下搞定了。

3.编译

执行ant debug,一个debug的apk就编译出来了。





本文以一个最简单的Android项目为例,讲述ant的安装和使用。下一篇讲讲复杂项目的ant构建。

Android应用开发高效工具集1---ant构建简单Android项目的更多相关文章

  1. Ant—使用Ant构建简单Java项目(三)

    博客<Ant-使用Ant构建简单Java项目(二)>我们简化了运行Test类中main方法须要运行的命令,本博客来介绍一下如何使build.xml文件和当中使用property标签定义的属 ...

  2. Android Studio开发-高效插件强烈推荐

    Android Studio开发-高效插件强烈推荐 现在Android的开发者基本上都使用Android Studio进行开发(如果你还在使用eclipse那也行,毕竟你乐意怎么样都行).使用好And ...

  3. Android SDK:Android standard develop kits 安卓开发的工具集

    目前主流的安卓开发工具: 1.Adnroid-Adt-bundle SDK Manager.exe: Tools(安卓的开发小工具) 各种安卓版本 Extras 额外的开发包 在线更新/安装的安卓版本 ...

  4. android开发文档工具集(持续更新中...)

     http://www.androiddevtools.cn/ android 产品->交互->视觉->开发->测试各种工具地址下载, 各种文档下载应有尽有,强烈推荐.  ht ...

  5. 迁移ADT/ANT构建的Android项目至Gradle,a walk through。

    LibModule 配置更新 9 months ago   app 配置更新 9 months ago   gradle/wrapper 配置更新 9 months ago   screenshots ...

  6. Android UI开发第三十三篇——Navigation Drawer For Android API 7

    Creating a Navigation Drawer中使用的Navigation Drawer的android:minSdkVersion="14",现在Android API ...

  7. Ant构建和部署项目(转)

    原文地址: http://www.blogjava.net/amigoxie/archive/2007/11/09/159413.html Ant是一个Apache基金会下的跨平台的构件工具,它可以实 ...

  8. 使用Ant构建简单项目

    Apache Ant主要用于Java项目的构建.为什么要使用Ant: 1)项目构建不是简单的编译,各种资源需要合理构建,例如有的类需要压缩成jar文件,有的文件需要放在指定位置,有时候需要使用配置文件 ...

  9. [枫叶学院] Unity3d高级开发教程 工具集(一) 哈希列表——强大的自己定义数据集

    在日常开发中.数据集合是我们不可缺少的重要工具之中的一个.在C#中,.Net Framework也为我们提供了种类繁多,功能多样的数据集工具.在此,我基于List<T> 和 HashTab ...

随机推荐

  1. 项目管理软件kanboard安装

    1. php环境 2. php扩展

  2. Dom操作html详细

    <p name='pn'>xxx</p> <p name='pn'>xxx</p> <p name='pn'>xxx</p> & ...

  3. dom添加事件

    1.语法:document.getElementById('btn').addEventListener 2.可以添加多个EventListener,且不会覆盖 3.移除EventListener, ...

  4. MySQL数据类型(四)

    一.数据类型 二.整型类型 tinyInt: 1个字节:-128-127(有符号) 是否有符号,可以定义时,使用unsign标识,表示无符号的,不写表示有符号的 Create table studen ...

  5. jQuery 中 children() 与 find() 用法的区别

    1.children() 与 find() 用法的区别 通过children获取的是该元素的下级元素,而通过find获取的是该元素的下级所有元素.

  6. C语言 约瑟夫圈问题:N个人围成一圈,从第一个人开始按顺序报数并编号1,2,3,……N,然后开始从第一个人转圈报数,凡是报到3的退出圈子。则剩下的最后一个人编号是多少。

    样例输入3  输出2 输入100   输出91 代码及分析: #include<stdio.h> int main() { int i,n,N,out,a[1000]; out=i=n=0 ...

  7. sql server和oracle的差异

    .部分SQL语句差异 (1)SQL:select top 10 * from table     ORA: select * from table where rownum<11(2)SQL:S ...

  8. 极客DIY:开源WiFi智能手表制作

    如果你喜欢拥有一款属于自己的无线手表,那么请不要错过,相信阅读完这篇文章对你会很有帮助. 硬件规格 ESP8266(32Mbit闪存) MPU-9250(陀螺仪传感器)以及 AK8963(内置磁力计) ...

  9. mac下U盘装机系统的制作(命令行)

    1,不插入U盘和插入U盘分别命令检测硬盘,确定要制作的U盘号:diskutil list 2,卸载usb盘,不推出,diskutil umountDisk /dev/disk1 3,将dmg写入U盘, ...

  10. Http方法:Get请求与Post请求的区别

    Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求Get是获取信息,而不是修改信息,类似数据库查询功能一样,数据不会被修改Get请求的参数会跟在url后进行传递,请求的数据会 ...