AndroidStudio 获取编译apk时的日期 可用于app显示编译时间

2,377 阅读1分钟
开发中需要获取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 发布