自动打包-debug 和 release 模式,并自动生成包名

版权声明:本博客为博主原创,欢迎大佬批评指点! https://blog.csdn.net/qq_31332467/article/details/79079004

1.

我们在工作的时候,经常遇到测试的程序,但是测试程序只适合调试使用,不能参与线上发布。为了达到这个要求。我们通常定义一个静态全局变量。来控制测试代码和线上代码。

之前找了好多资料,都特别复杂,之后找到一个易用实用的方法。一句话代码:

  UavStaticVar.isOpenTextEnvironment = BuildConfig.DEBUG;
BuildConfig 该类包含一个名为DEBUG的常量,其常量值会依据开发者的Build类型自动设定。如此,便可以利用BuildConfig.DEBUG来实现只在Debug模式下运行的代码。在生成代码的时候可以自动识别当前是什么包,并赋予静态变量参数。就达到我们的目的了。
2.

当我们在打包的时候默认都是app-release 或着 app-debug ,有时候傻傻分不清楚,尤其不同的功能和版本 需要测试测试的时候。如果不人为的去修改包名,往往会造成误解,耽误时间。

【高级构建定制】

在build.gradle中 定制

android {
 android.applicationVariants.all { variant ->
        def file = variant.outputs[0].outputFile
        variant.outputs[0].outputFile = new File(
                  file.parent, file.name.replace("app-release.apk", getDate() + "-release" + ".apk"))
    }
}

 String getDate() {
    Calendar calendar = Calendar.getInstance();
    StringBuilder dates = new StringBuilder();
    dates.append(calendar.get(Calendar.YEAR));
    dates.append(calendar.get(Calendar.MONTH) + 1);
    dates.append(calendar.get(Calendar.DAY_OF_MONTH));
    dates.append("-");
    dates.append(calendar.get(Calendar.HOUR_OF_DAY));
    dates.append(calendar.get(Calendar.MINUTE));
    return dates.toString();
}
这样就会自动打包时候生成当前时间 的 release 包名。  如下:  2018116-214-release.apk




猜你喜欢

转载自blog.csdn.net/qq_31332467/article/details/79079004