2012-04-06 53 views
1

在我的应用程序中,我附加了一个现有的SQLite数据库。开始时,它被复制到手机,然后被使用。我知道如何检查这个数据库是否已被复制,但我想检查手机上的数据库是否与APK中存储的数据库相同。有什么方法可以比较它们吗?我想以编程方式做到这一点。比较Android上的SQLite数据库

原始数据库存储在assets文件夹中。

+0

尝试COMPA记录重新以字节为单位的文件大小? – idiottiger 2012-04-06 06:27:46

+0

是的,这是一个好主意。我怎样才能获得这些文件的大小?原始位于我的APK的'assets'文件夹中,并复制到'/ data/data/my.package/databases /'中。 – Roman 2012-04-06 06:57:26

+0

用于assert db:'context.getAssets()。open(“assert_db”)。available();''和'new File(“/ data/...”).length();'实际为db。 – idiottiger 2012-04-06 07:02:59

回答

1

如果你有一个根深蒂固的手机,那么你可以观看它的细节。但如果你的手机没有植根,那么你将无法看到它。

如果您已将应用程序复制到手机中,那么它肯定会起作用。

所以结论是,如果你有一个根深蒂固的手机,那么你将能够看到和比较,如果可能的话尝试比较它的大小或安装它的时间。

1

如果你已经附加了一个数据库与你的APK,你成功地复制到你的手机,这意味着你有你的旧数据库复制。所以我认为没有必要比较。如果你想比较然后比较所有记录表。

,如果你要记住,你的数据库已经复制然后使用份额preferences.Save一个标志,一旦copied.Then真检查它的价值

更新

要列出所有表

select name from sqlite_master where type = 'table' 

如果这两个数据的基础上再有同台比较这些对应的表

+0

原始的数据库内容将会改变,但它不会取代手机上的旧数据库,因为它已经在那里。这就是为什么我试图找到一种方法来比较它们。 – Roman 2012-04-06 06:43:26

+0

它不会取代那么你可以比较总表,如果两者都有相同的数字表然后比较记录,这是做它的方式 – Sameer 2012-04-06 06:46:57

+0

看我的编辑@罗曼 – Sameer 2012-04-06 06:48:51