sqlite Db的Android MD5校验和在复制后发生更改



我提供了一个与应用程序打包的SQLite Db,该应用程序在第一次启动时被复制到/data/data/文件夹。此Db的内容仅供阅读,永远不会更改。

如果Db被修改,那么它应该与下一个应用程序更新一起提供。因此,我想实现一个过程,在这个过程中,我想将打包Db的MD5校验和与设备上Db的校验和进行比较,如果发现不同,则进行复制。

但是。。。Db复制到设备后,校验和立即更改!

有人能解释一下这是预期的行为吗,还是我遗漏了什么?

如果这是预期的行为,那么比较Db的最佳方法是什么?

*******更新*******

我从设备中提取了复制的Db,看到系统在Db中添加了一个"android_metadata"表。所以很明显校验和是不同的。这回答了我的第一个问题。

第二个问题仍然悬而未决。

好的,所以解决方案是用支持的区域设置值预先创建"android_metadata"表。如果Db中存在该表,则系统不会重新创建或更改它。校验和比较非常有效!

一个愚蠢的解决方案,正是我喜欢的方式!

相关内容

  • 没有找到相关文章

最新更新