环境: ubuntu 10.10, android sdk 9, ant 1.8.0
为什么要用ant来编译?
方便把整个项目与公司其它的项目编译环境整合, ......
下面分析了下Android中的Ant编译环境
1. Android为了方便用户使用ant, 定制并扩展了了ant
2. 相关的配置文件和工作目录
都在{your_sdk_path}/android-sdk-linux_x86/下
.
|-- add-ons
|-- docs
|-- extras
|-- google-market_billing
|-- google-market_licensing
|-- market_licensing
|-- platforms
|-- platform-tools
|-- samples
|-- temp
|-- tools /
|-- ant/
|-- lib_rules.xml -- 这个是用来支持把一些src编译成类似可供其它project引用的library的 配置文件
|-- main_rules.xml --关键的都在里面喽,后面会把它调出来研究下
|-- NOTICE.txt
|-- pre_setup.xml
|-- test_rules.xml
|-- lib\
|-- anttasks.jar -- 这个就是android对ant的扩展 具体的代码在{full_android_path}/mydroid/sdk/anttasks/...
|--...
|-- proguard\
|-- 会被用来进行代码混淆,至于如何使用混淆android的官方blog有一片详细的文档介绍
3. 下面就来看看main_rules中的内容(anttasks负责解析并按照该rules进行编译发布)
分为以下部分:
定义了6个task -- 当然也可以加自己喜欢的task,
定义了一些列的相关property(其中发现解析AndroidManifest.xml的时候使用了Xpath)