Android: где хранятся файлы базы данных? - PullRequest
44 голосов
/ 09 июля 2009

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

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

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

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

Ответы [ 3 ]

33 голосов
/ 20 апреля 2011

попробуйте 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-карту или устройство / ОС только что определилось с другим каталогом данных.

28 голосов
/ 10 июля 2009

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

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

6 голосов
/ 28 июля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...