Просматривать данные в базе данных Android SQLite
Есть ли способ для пользователя Android просматривать базы данных SQLite на своем телефоне и просматривать данные в базах данных?
Я часто использую бета-версию SoftTrace. Это здорово, но я не могу найти, чтобы загрузить данные, которые он отслеживает на ПК.
Ответы
Ответ 1
База данных для конкретного приложения живет в /data/data/[packagename]/databases
Пакетное имя - это пакет, который вы определяете в своем манифесте, например /data/data/org.vimtips.supacount/databases/counts.db
.
Вы можете просмотреть его с помощью adb shell
и введите sqlite3 /data/data/org.vimtips.supacount/databases/counts.db
Или вы можете вытащить его из устройства, чтобы посмотреть на него с помощью сторонней утилиты, с командой вроде adb pull /data/data/org.vimtips.supacount/databases/counts.db .
.
Предполагается, что у вас есть разрешение на просмотр базы данных, которой у вас может не быть, если вы сами не пишете приложение... но в этом случае это вопрос программирования?
Ответ 2
Если вы используете Eclipse, вы можете использовать плагин под названием "Questoid SQLite Browser" для просмотра базы данных SQL Lite на вашем эмуляторе Android:
- Установите плагин
- Перезапустить eclipse
- Запустите свой эмулятор.
- Переключиться на DDMS
- Откройте базу данных с плагином (в качестве @synic, упомянутого ранее, база данных находится здесь, например, /data/data/my _project/databases).
Вот более подробный учебник: http://www.tylerfrankenstein.com/browse-android-emulator-sqlite-database-eclipse
Ответ 3
Вот метод free
, который работал у меня на телефоне, который is not rooted
. Кредит идет этот ответ SO.
- Используйте
adb backup -f backup.ab -noapk app.package.name
- В Windows загрузите jar
Android Backup Extractor
, найденный на SourceForge здесь, затем запустите java -jar abe.jar unpack backup.ab extractedbackup.tar
. В Linux вы можете следовать инструкциям dd
из ответа, который я дал в начале.
- Загрузите
SQLite Database Browser
из SourceForge здесь, затем откройте файл db
, содержащийся в extractedbackup.tar
.
Лично, чтобы облегчить этот процесс, я сначала добавил adb в свою среду PATH. Затем я создал резервную папку, в которой храню все файлы, упомянутые выше. Это мешает мне работать с cd (сменить каталог) повсюду.
Ответ 4
Плагин Questoid, по-видимому, стоит $9 и требует регистрации. Еще одна альтернатива в Windows - загрузить открытый SQLLite-браузер с открытым исходным кодом (ссылка ниже), а затем вытащить базу данных с телефона. В Eclipse вы можете сделать это из браузера файлов, перейдя в каталог /data/data/ [packagename]/databases на телефоне или эмуляторе и нажав "Вытащить файл с устройства" в верхнем правом углу. Сохраните базу данных локально, затем откройте браузер SQLite.
http://sourceforge.net/projects/sqlitedbrowser/
Ответ 5
На самом деле наиболее доступный (но все же хакерский) способ получения "живых" результатов из базы данных при разработке на эмуляторе, который я нашел, таков:
-
Создайте script, чтобы вытащить базу данных из эмулятора, что-то вроде этого
#!/bin/bash
ANDROID_HOME=/path/to/sdk
ADB=$ANDROID_HOME/platform-tools/adb
REMOTE_DB_PATH=/data/data/com.yourpackage.name/databases/your_db
LOCAL_DB_PATH=.
while true; do
echo copying DB...
`$ADB pull $REMOTE_DB_PATH $LOCAL_DB_PATH`
sleep 3
done
Запустите его.
-
Установите Плагин SQLite Manager для Firefox
-
Откройте локальную копию базы данных (которая постоянно переопределяется запуском script с шага 1)
-
Введите свой SQL:
![enter image description here]()
-
Выберите File->Reconnect
- Нажмите
Run SQL
Основной трюк заключается в том, что при повторном подключении не выполняется reset SQL, введенное на шаге 4 (как это происходит, например, в SQLite Browser), поэтому вы можете повторить шаги 5,6, чтобы увидеть "живые" результаты из вашей базы данных Android.
Обратите внимание, что это работает только для эмулятора, оно не будет работать для реального устройства (даже корневого).
Ответ 6
Если вам посчастливилось получить IntelliJ Ultimate, вы можете подключить устройство, откройте вкладку "База данных" справа, нажмите +, выберите SQLite. Остальное тривиально.
Одна вещь, о которой следует помнить, заключается в том, что вам нужно продолжать нажимать кнопку "Синхронизировать" в базе данных (или в выбранной таблице), чтобы увидеть изменения, сделанные извне, что очень раздражает.
Ответ 7
Вы можете просмотреть свою базу данных из своего приложения, используя эту библиотеку. https://github.com/sanathp/DatabaseManager_For_Android
С помощью этой библиотеки вы можете управлять своей базой данных SQLite приложения непосредственно из своего приложения.
вы можете просматривать таблицы в базе данных приложений, обновлять, удалять, вставлять строки в свои таблицы.
Его единственный файл активности java, просто добавьте java файл в исходную папку. После завершения разработки удалите java файл из вашей папки src.
Это очень помогло мне. Надеюсь, это тоже поможет.
Вы можете посмотреть 1-минутную демонстрацию здесь: http://youtu.be/P5vpaGoBlBY
Ответ 8
См. этот ответ. Вы можете использовать библиотеку Stetho из Facebook, а затем просто просматривать свою базу данных из Chrome:)