【发布时间】:2013-11-10 19:20:40
【问题描述】:
我正在开发一个使用 SQLite 数据库的 Android 游戏。为了验证数据库是否正确下载,我使用 MD5。它工作正常,我的问题是当我对数据库进行查询时:MD5 更改但数据库大小保持不变。如果我不插入更新,有谁知道为什么它会更改 MD5?我只做选择。 有没有办法检查所有设备上的数据库是否正确?
//安装时MD5->
11-10 20:04:17.722: I/DebugCayroDev(4853): {MD5.java checkMD5} 2488C4CD2F70337BA21E4CA03EDEAFF0 和文件 md5: 2488c4cd2f70337ba21e4ca03edeaff0
//大小一样
11-10 20:04:46.212: V/DebugCayroDev(4853): {MD5.java checkMD5} 2113748992
// MD5 选择后
11-10 20:04:46.212: I/DebugCayroDev(4853): {MD5.java checkMD5} 2488C4CD2F70337BA21E4CA03EDEAFF0 和文件 md5: 67d0b72e0d375ee0c5578331c4b74802
【问题讨论】:
-
MD5 仅在检查下载的文件是否被正确复制时才有效。数据库内部就像一个文件系统,它可以随时更改。它还预先分配空间。甚至可以在不增加文件大小的情况下插入数据。在任何数据库访问之后,您不应该使用相同的 MD%。
-
感谢您的回答。我如何知道内部 Android 数据库是否与另一个外部数据库相同?
-
我不明白你的情况。你知道它下载好了,你想和什么比较,为什么?
-
我想知道设备数据库是否等于外部数据库。如果它们不相等,我想显示一个弹出窗口,告诉用户需要更新数据库。
标签: java android database sqlite md5