1. 程式人生 > >自動打包-debug 和 release 模式,並自動生成包名

自動打包-debug 和 release 模式,並自動生成包名

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