复制后,sqlite Db的Android MD5校验和会发生变化

时间:2015-02-24 23:07:44

标签: android sqlite compare md5 checksum

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

如果Db被修改,则应该提供下一个App Update。 所以,我想实现一个程序,我想把打包的Db的MD5校验和与设备上Db的校验和进行比较,如果发现不同则复制。

但是......在将Db复制到设备后,校验和会立即更改!

有人可以解释这是否是预期的行为,还是我错过了什么?

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

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

我从设备中提取了复制的Db,发现系统添加了一个" android_metadata"表进入Db。因此很明显校验和不同。这回答了我的第一个问题。

第二个问题仍然存在。

1 个答案:

答案 0 :(得分:2)

好的,所以解决方案是使用支持的区域设置值预创建“android_metadata”表。 如果表存在于Db中,则系统不会重新创建或更改它。 校验和比较完美无缺!

完全按照我喜欢的方式提供一个万无一失的解决方案!