一些場(chǎng)景下需要在編譯時(shí)計(jì)算某個(gè)文件的md5,避免每次運(yùn)行都計(jì)算
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\"")
}
在項(xiàng)目中使用的時(shí)候,通過(guò)BuildConfig.VIDEO_MD5
來(lái)獲取當(dāng)前安裝的app中指定文件的md5,可以和之前本地保存的進(jìn)行比較挠他。