一些场景下需要在编译时计算某个文件的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
来获取当前安装的app中指定文件的md5,可以和之前本地保存的进行比较。
网友评论