Android: Где хранятся файлы базы данных?

Я создал базу данных SQLite на устройстве Android. Программа может читать/записывать в базу данных, поэтому файл базы данных, очевидно, был создан. Для SQLiteDatabase.mPath установлено значение

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

но когда я просматриваю каталоги на устройстве, я не могу найти файл clientDB.db. Я заглянул в каталог данных, но он кажется пустым.

Кто-нибудь знает, что здесь может быть не так?

Ответ 1

Если вы имеете в виду, что вы посетили /data и ничего не нашли в нем, и вы изучаете обычную часть оборудования Android, что ожидается. У DDMS нет разрешения на просмотр /data.

Однако, по крайней мере, если ваше приложение скомпилировано в режиме отладки, вы можете использовать команду adb pull на консоли, чтобы загрузить файл напрямую.

Ответ 2

попробуйте getDatabasePath на ContextWrapper (http://developer.android.com/reference/android/content/ContextWrapper.html). Если вы находитесь в классе Activity или Application, попробуйте:

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

Просто предположить, что его значение в /data/data/my.package.name/databases/ плохо, поскольку нет гарантии, что данные не были перемещены на SD-карту, или устройство/ОС только что решили в другом каталоге данных.

Ответ 3

В режиме отладки вы можете использовать adb shell и просматривать содержимое каталога. В оболочке вы можете вызвать sqlite3/data/data/dev.client.android/databases/clientDB.db для анализа БД.