作者:阿米达
--------------------转载请注明:http://blog.csdn.net/liaoqianchuan00/article/details/8207345
引入原因
有的时候,我们需要用一份代码build出不同的release文件,那么怎么来动态改变源文件的内容呢?
我们可以使用ant中的replaceregexp标签。将源文件中需要修改的地方替换成我们需要的值,然后再编译。
例子
这里我们拿个简单的例
子来说明。比如我想修改源文件Config.java中的
Boolean mIsDemo = false;
To
Boolean mIsDemo = true;
然后编译源文件,生成一个demo版本的APK。
在build.xml中加入一下内容
<replaceregexp byline="true">
<regexp pattern=" Boolean mIsDemo = false;"/>
<substitution expression=" Boolean mIsDemo = true; "/>
<fileset dir="./src/com/test/test" includes="Config.java"/>
</replaceregexp>
然后运行ant脚本就能编译出我们需要的版本了。
Note:
1. 其实我们可以在pattern的值中设置入更为复杂的正则表达式,这个就需要根据实际的情况来编写表达式了。
2. 项目中引入多个不同的build.xml来打到编译出不同版本的效果。