开发中需要获取apk的编译日期显示在app上, 用于测试区分安装的包时新包还是老包, 避免bug回归的时候用错包, 首先想到肯定是每次打包手动更改, 但这样容易遗忘, 而且组内成员之间也可能不统一, 就想怎么样通过代码的方式获取?
其实android 为我们提供了一个BuildConfig的类, 平常我们用得多收我BuildConfig.DEBUG, 这个类包含着编译时的各个参数,所以只需要在这个类中使用buildConfigField增加一个常量,然后设定这个常量的值就是编译时的时间即可
- 在gradle里的buildTypes配置(注意buildConfigField设置的变量)
buildTypes { debug { buildConfigField("String", "BUILD_TIME", getDate()) minifyEnabled false } release { buildConfigField("String", "BUILD_TIME", getDate()) minifyEnabled true signingConfig signingConfigs.release proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }
- 定义获取时间
String getDate() { Date date = new Date(); return "\""+date.format("yyyy-MM-dd HH:mm:ss", TimeZone.getTimeZone("GMT+08:00"))+"\""; }
本文由博客群发一文多发等运营工具平台 OpenWrite 发布
网友评论