根據日期生成apk版本識id

開發的時候遇到一個需求,不升級版本的情況下,是想讓第三方的測試人員方便看到當前包的版本號,以區分不同時間打的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();
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章