[Android] 利用 ant 脚本修改项目包名在开发android应用项目的时候,经常会有这样的需求,一个应用项目,要求
房价上半年下行 下半年或回暖
在不同的OEM下有不同的包名,不同的资源,不同的功能点什么的。尽管可以利用eclipse adt自带的功能来做这件事,但是,当按照这样的需求来定制的越来越多的时候,手动去修改就开始变得力不从心起来。这个时候,一个良好的自动化脚本呼之欲出,你完全可以利用perl/python/Makefile来做,不过这里如果直接使用ant来做的话,似乎很多事情变得简单起来。毕竟,ant提供给我们良好的接口,而隐藏那些实现细节。
- 准备config.xml
encoding="UTF-8"?>name="myproject" default="myproject" basedir=".">
Build project for different partnerlocation="src"/> location="res"/> description="Prepare files for different partner" > dir="${build.bin}" /> />
match='android.versionCode="(.*)"'
replace='android.versionCode="${ver.code}"'
byline="false">file="AndroidManifest.xml"
match='android.versionName="(.*)"'
replace='android.versionName="${ver.name}"'
byline="false">file="AndroidManifest.xml"
match='package="(.*)"'
replace='package="${pkg.name}"'
byline="false">pattern="import(.*)com.myproject.com.R;" /> expression="import com.${pkg.name}.R;" /> dir="${src}" includes="***.java" /> - 运行定制脚本
$ ant -f config.xml -Dpartner.dir="xxx" -Dpkg.name="xxx"
-Dver.code="xxx" -Dver.name="xxx" preparefiles - 编译
$ ant debug
或者
$ ant release
具体www.hc3600.comwww.dgdaming.com的定制细节可以参考上面的脚本和如下链接里提到的内容