gradle自动修改android版本号的方法,取java静态变量重命名apk文件
16lz
2021-01-25
修改根目录下的settings.gradle,增加以下代码
gradle.beforeProject { //定义变量 def pattern def matcher def result //获取Config.java中的变量值 //从public static final String ServAddr = "https://10.0.0.111:9093";中抽取111 def cfgFile = file("app/src/main/java/com/jeff/demo/config/Config.java") pattern = Pattern.compile("(?:^|\\n)[^/].*?.(\\d+):") matcher = pattern.matcher(cfgFile.getText()) matcher.find() def flag = matcher.group(1) //修改build.gradle中的short_ip值 def buildFile = file("app/build.gradle") result = buildFile.getText() pattern = Pattern.compile("short_ip\\s.*'(\\d*)'") matcher = pattern.matcher(result) matcher.find() result = matcher.replaceAll("short_ip = \'" + flag + "\'") //修改版本号 pattern = Pattern.compile("versionCode\\s+(\\d+)") matcher = pattern.matcher(result) matcher.find() def versionCode = Integer.parseInt(matcher.group(1)) result = matcher.replaceAll("versionCode " + ++versionCode) //修改版本名 pattern = Pattern.compile("versionName\\s+\"(.+)\"") matcher = pattern.matcher(result) matcher.find() int no = 0 int decade = 0 int hundred = 0 int thousand = 0 int remain = versionCode int base = 10 int operand = base**3 if (versionCode >= operand) { thousand = remain / operand remain = remain % operand } operand = base**2 if (remain >= operand) { hundred = remain / operand remain = remain % operand } operand = base**1 if (remain >= operand) { decade = remain / operand remain = remain % operand } if (remain > 0) { no = remain % operand } def versionName = "\"" + thousand + "." + hundred + "." + decade + "." + no + "\"" result = matcher.replaceAll("versionName " + versionName) //重写文件 buildFile.write(result)}
更多相关文章
- Android(安卓)WebView不调用默认的 Browser
- 【Android】PA4D_CH7 文件、保存状态和首选项
- 【已解决】Android(安卓)Studio 加载自定义properties文件出错ja
- Android中四种实现点击事件的方法
- Android(安卓)TextView跑马灯效果
- androidsetClickable不起作用没…
- Android(安卓)apk安装的几种方法
- apple android windows app meta tags
- Android(安卓)Studio里c++保存opencv mat的图片