背景
android打包时经常会有一些属性变量需要动态配置,比如Java类中有一个构建时间,希望打包的时候,动态修改它。
实现
利用ant 的的replaceregexp即可实现(ant的使用这里就不详细讲解了,所以大家对ant还不了解的话,可以先去了解了解它的教程)
例子
我本地有一个java类,里面有一个buildTime属性,代码如下:
public class Setting {
public static long buildTime = 20170819223718;
}
我希望打包的时候动态修改该buildTime的属性值。下面动手实现,新建一个build.xml文件(ant打包用到),内容如下:
<?xml version="1.0"?>
<project name="replaceVarBuildTime" default="buildTimeTarget">
<!-- 获取当前时间 -->
<tstamp>
<format property="TODAY_CN" pattern="yyyyMMddHHmmss" locale="zh"/>
</tstamp>
<!-- 替换任务 -->
<target name="buildTimeTarget" >
<replaceregexp
byline="false"
file="./Setting.java" <!-- 要替换属性值所在的java类 -->
match="public static long buildTime = (.*);"
replace="public static long buildTime = ${TODAY_CN};" />
</target>
</project>
编写完以上build.xml文件,即可实现动态替换该Setting.java类中buildTime的属性值。