开发的时候遇到一个需求,不升级版本的情况下,是想让第三方的测试人员方便看到当前包的版本号,以区分不同时间打的apk包。要求是在app内部得到提示。一般情况可以利用gradle的配置生成带有日期的apk名字作为区别。但因为这个需求,所以想到了检测classes.dex文件的生成时间来加以判断和显示。 代码如下: (这里面需要注意的是 ze.getTime() 获取的是文件修改的时间。所以如果是在代码没有修改和clean、rebuild的情况下,Classes.dex该文件是没有修改,生成的时间会是之前dex的时间,会导致显示的不是现在显示的时间) try { SimpleDateFormat formatTime = new SimpleDateFormat("yyyyMMdd"); PackageInfo mPackageInfo = getPackageManager().getPackageInfo(getPackageName(), 0); ZipFile zf = new ZipFile(mPackageInfo.applicationInfo.sourceDir); ZipEntry ze = zf.getEntry("classes.dex"); ((TextView) findViewById(R.id.buildid)).setText("BuildID :" + formatTime.format(ze.getTime())); } catch (Exception e) { e.printStackTrace(); }
根据日期生成apk版本识id
最新推荐文章于 2024-03-01 11:00:43 发布