一些場景下需要在編譯時計算某個文件的md5,避免每次運行都計算
static def generateMD5(File s) {
MessageDigest md = MessageDigest.getInstance("MD5")
s.eachByte(4096, { bytes, size ->
md.update(bytes, 0, size)
})
return md.digest().collect { String.format "%02x", it }.join()
}
def video_md5 = ""
task getMD5 {
video_md5 = generateMD5(new File(rootProject.getRootDir().toString() + '/app/src/main/res/raw/welcome_video.mp4'))
println "#### video_md5 == ${video_md5}"
}
android{
...
defaultConfig{
...
buildConfigField("String", "VIDEO_MD5", "\"$video_md5\"")
}
在項目中使用的時候,通過BuildConfig.VIDEO_MD5來獲取當(dāng)前安裝的app中指定文件的md5,可以和之前本地保存的進(jìn)行比較。