Вопрос по android, sqlite, database – Android: где хранятся файлы базы данных?

44

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

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

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

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

Ваш Ответ

3   ответа
33

попробуйте 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

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

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

@VivekWarde: самое простое решение - запустить несколько тестов на эмуляторе, где выcan просматривать/data.
так где я могу увидеть мою базу данных sqlite, кроме папки активов
В моем файловом менеджере устройства я искалfilename.sqlite но я не получаю результата? Можешь сказать почему?
@VivekWarde: вы не можете просматривать внутреннее хранилище на рабочем устройстве.
6

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

Я пытался набрать это на вкладке «Терминал» в Android Studio во время отладки приложения, но оно не распознало команду. Каталог приложения на моем компьютере - это путь в консоли. Это где я должен вводить это?

Похожие вопросы