【发布时间】: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