【问题标题】:Android MD5 checksum of sqlite Db changes after copying复制后sqlite Db更改的Android MD5校验和
【发布时间】:2015-02-24 23:07:44
【问题描述】:

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

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

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

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

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

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

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

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

【问题讨论】:

  • 你使用的是SQLiteOpenHelper还是SQLiteAssetHelper
  • @CL。我正在使用 SQLiteOpenHelper。已经查看了 SQLiteAssetHelper,但这需要手动设置 DATABASE_VERSION。我想避免这种手动干预并使过程自动化。这将使它万无一失。

标签: android sqlite compare md5 checksum


【解决方案1】:

好的,所以解决方案是使用支持的语言环境值预先创建“android_metadata”表。 如果 Db 中存在表,系统不会重新创建或更改它。 校验和比较完美!

一个万无一失的解决方案,正是我喜欢的方式!

【讨论】:

  • 谢谢你,这对我很有帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-02
  • 1970-01-01
  • 1970-01-01
  • 2016-01-18
  • 2013-05-28
  • 1970-01-01
相关资源
最近更新 更多