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