【Android】获取app的打包时间

分享是让牛逼的人更牛逼。
做有质量技术交流平台,闲话少说~
欢迎进群交流,群号 414302560
初学者勿扰,谢谢~

很多时候,发个包给测试,明明修复了bug,但却一直在说”我这还不行”。很多时候由于版本没有变更,很难判断当前正在运行的app是不是最新的打包产物。所以如果能够在线下的版本中显示app的打包时间,这样就能节省好多不必要的沟通。

上代码。原理是获得打包签名文件的生成时间。

    /**
     * 获得app的打包时间
     * 
     * @return
     */
    private String getAppBuildTime() {
        String result = "";
        try {
            ApplicationInfo ai = getPackageManager().getApplicationInfo(getPackageName(),0);
            ZipFile zf = new ZipFile(ai.sourceDir);
            ZipEntry ze = zf.getEntry("META-INF/MANIFEST.MF");
            long time = ze.getTime();
            SimpleDateFormat formatter = (SimpleDateFormat) SimpleDateFormat.getInstance();
            formatter.applyPattern("yyyy/MM/dd HH:mm:ss");
            result = formatter.format(new java.util.Date(time));
            zf.close();
        } catch (Exception e) {
        }

        return result;
    }

上述方法貌似在5.0之后不好用,所以现在建议使用Gradle生成打包时间,然后再引用。核心代码如下:

buildTypes {
        release {
            buildConfigField("String", "releaseTime", "\""+new Date().format("yyyy/MM/dd HH:mm:ss")+"\"")
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    ....
  }

主要是使用buildConfigField生成打包时间。
然后使用 TextView.setText(BuildConfig.releaseTime);

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值