自動打包-debug 和 release 模式,並自動生成包名
阿新 • • 發佈:2018-12-11
1.
我們在工作的時候,經常遇到測試的程式,但是測試程式只適合除錯使用,不能參與線上釋出。為了達到這個要求。我們通常定義一個靜態全域性變數。來控制測試程式碼和線上程式碼。
之前找了好多資料,都特別複雜,之後找到一個易用實用的方法。一句話程式碼:
UavStaticVar.isOpenTextEnvironment = BuildConfig.DEBUG;
BuildConfig 該類包含一個名為DEBUG的常量,其常量值會依據開發者的Build型別自動設定。如此,便可以利用BuildConfig.DEBUG來實現只在Debug模式下執行的程式碼。在生成程式碼的時候可以自動識別當前是什麼包,並賦予靜態變數引數。就達到我們的目的了。
2.
當我們在打包的時候預設都是app-release 或著 app-debug ,有時候傻傻分不清楚,尤其不同的功能和版本 需要測試測試的時候。如果不人為的去修改包名,往往會造成誤解,耽誤時間。
【高階構建定製】
在build.gradle中 定製
這樣就會自動打包時候生成當前時間 的 release 包名。 如下: 2018116-214-release.apkandroid { 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(); }