我在Android設備上創建了一個SQLite數據庫。該程序可以讀/寫數據庫,因此數據庫文件顯然已經創建。該SQLiteDatabase.mPath設置爲Android:數據庫文件存儲在哪裏?
db.mPath = "/data/data/dev.client.android/databases/clientDB.db"
但是當我瀏覽器上的目錄,我不能找到該文件clientDB.db。我查看了數據目錄,但它看起來是空的。
有沒有人知道這裏會出現什麼問題?
我在Android設備上創建了一個SQLite數據庫。該程序可以讀/寫數據庫,因此數據庫文件顯然已經創建。該SQLiteDatabase.mPath設置爲Android:數據庫文件存儲在哪裏?
db.mPath = "/data/data/dev.client.android/databases/clientDB.db"
但是當我瀏覽器上的目錄,我不能找到該文件clientDB.db。我查看了數據目錄,但它看起來是空的。
有沒有人知道這裏會出現什麼問題?
如果您的意思是您訪問了/data
,但沒有發現任何內容,並且您正在檢查一個普通的Android硬件,這是預期的。 DDMS無權瀏覽/data
。
但是,至少如果您的應用程序是在調試模式下編譯的,則可以在控制檯上使用adb pull
命令直接下載文件。
在調試模式下,您可以使用adb shell並瀏覽目錄內容。在shell中,您可以調用sqlite3 /data/data/dev.client.android/databases/clientDB.db來分析數據庫。
嘗試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剛剛決定在不同的數據目錄。
在我的設備文件管理器中我搜索`filename.sqlite`,但我沒有得到任何結果?你能說出原因嗎? – 2014-07-25 08:51:21
@VivekWarde:您無法瀏覽生產設備上的內部存儲。 – CommonsWare 2014-07-25 10:08:07