2012-04-06 66 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