我注意到如果我连续两次编译安卓应用程序,而且没有任何更改,那么生成的两个APK文件会具有不同的MD5校验和。无签名和已签名APK文件都会产生相同的结果。
您可以将其作为ZIP文件打开,里面的内容在两个文件中具有相同的MD5校验和,因此我很好奇。
还有什么其他的区别?这两个APK文件之间有什么不同之处?
我注意到如果我连续两次编译安卓应用程序,而且没有任何更改,那么生成的两个APK文件会具有不同的MD5校验和。无签名和已签名APK文件都会产生相同的结果。
您可以将其作为ZIP文件打开,里面的内容在两个文件中具有相同的MD5校验和,因此我很好奇。
还有什么其他的区别?这两个APK文件之间有什么不同之处?
ZIP文件格式会将最后修改日期存储在文件头中:http://en.wikipedia.org/wiki/Zip_(file_format)#File_headers
因此,MD5校验和会因为文件头略有不同而有所不同。
unzip test.apk; rm test.apk; zip -r test.zip ./*; mv test.{zip,apk}; adb install test.apk
可以运行。即使 MD5 校验和不同:950b9077d8a2a3be45ba207c0c0a2251 test.apk e0ae339a5ecd3080f8359fc06a4c3e29 test.zip.apk - reox也许“signed”会导致MD5校验和不同?