2009-07-09 67 views
43

我在Android設備上創建了一個SQLite數據庫。該程序可以讀/寫數據庫,因此數據庫文件顯然已經創建。該SQLiteDatabase.mPath設置爲Android:數據庫文件存儲在哪裏?

db.mPath = "/data/data/dev.client.android/databases/clientDB.db" 

但是當我瀏覽器上的目錄,我不能找到該文件clientDB.db。我查看了數據目錄,但它看起來是空的。

有沒有人知道這裏會出現什麼問題?

回答

28

如果您的意思是您訪問了/data,但沒有發現任何內容,並且您正在檢查一個普通的Android硬件,這是預期的。 DDMS無權瀏覽/data

但是,至少如果您的應用程序是在調試模式下編譯的,則可以在控制檯上使用adb pull命令直接下載文件。

+0

在我的設備文件管理器中我搜索`filename.sqlite`,但我沒有得到任何結果?你能說出原因嗎? – 2014-07-25 08:51:21

+0

@VivekWarde:您無法瀏覽生產設備上的內部存儲。 – CommonsWare 2014-07-25 10:08:07

6

在調試模式下,您可以使用adb shell並瀏覽目錄內容。在shell中,您可以調用sqlite3 /data/data/dev.client.android/databases/clientDB.db來分析數據庫。

33

嘗試ContextWrapper上的getDatabasePath(http://developer.android.com/reference/android/content/ContextWrapper.html)。如果你是在一個活動或應用程序級的嘗試:

File dbFile = getDatabasePath(MY_DB_NAME); 
Log.i(dbFile.getAbsolutePath()); 

只是假設其在/data/data/my.package.name/databases/是壞,也不能保證數據沒有被移動到SD卡或設備/ OS剛剛決定在不同的數據目錄。