Есть ли способ для пользователя Android просматривать базы данных SQLite на своем телефоне и просматривать данные в базах данных?
Я часто использую бета-версию SoftTrace. Это здорово, но я не могу найти, чтобы загрузить данные, которые он отслеживает на ПК.
База данных для конкретного приложения живет в /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 .
.
Предполагается, что у вас есть разрешение на просмотр базы данных, которой у вас может не быть, если вы сами не пишете приложение... но в этом случае это вопрос программирования?
Если вы используете Eclipse, вы можете использовать плагин под названием "Questoid SQLite Browser" для просмотра базы данных SQL Lite на вашем эмуляторе Android:
Вот более подробный учебник: http://www.tylerfrankenstein.com/browse-android-emulator-sqlite-database-eclipse
Вот метод free
, который работал у меня на телефоне, который is not rooted
. Кредит идет этот ответ SO.
adb backup -f backup.ab -noapk app.package.name
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 (сменить каталог) повсюду.
Плагин Questoid, по-видимому, стоит $9 и требует регистрации. Еще одна альтернатива в Windows - загрузить открытый SQLLite-браузер с открытым исходным кодом (ссылка ниже), а затем вытащить базу данных с телефона. В Eclipse вы можете сделать это из браузера файлов, перейдя в каталог /data/data/ [packagename]/databases на телефоне или эмуляторе и нажав "Вытащить файл с устройства" в верхнем правом углу. Сохраните базу данных локально, затем откройте браузер SQLite.
На самом деле наиболее доступный (но все же хакерский) способ получения "живых" результатов из базы данных при разработке на эмуляторе, который я нашел, таков:
Создайте 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:
Выберите File->Reconnect
Run SQL
Основной трюк заключается в том, что при повторном подключении не выполняется reset SQL, введенное на шаге 4 (как это происходит, например, в SQLite Browser), поэтому вы можете повторить шаги 5,6, чтобы увидеть "живые" результаты из вашей базы данных Android.
Обратите внимание, что это работает только для эмулятора, оно не будет работать для реального устройства (даже корневого).
Вы можете просмотреть свою базу данных из своего приложения, используя эту библиотеку. https://github.com/sanathp/DatabaseManager_For_Android
С помощью этой библиотеки вы можете управлять своей базой данных SQLite приложения непосредственно из своего приложения. вы можете просматривать таблицы в базе данных приложений, обновлять, удалять, вставлять строки в свои таблицы.
Его единственный файл активности java, просто добавьте java файл в исходную папку. После завершения разработки удалите java файл из вашей папки src.
Это очень помогло мне. Надеюсь, это тоже поможет.
Вы можете посмотреть 1-минутную демонстрацию здесь: http://youtu.be/P5vpaGoBlBY
Если вам посчастливилось получить IntelliJ Ultimate, вы можете подключить устройство, откройте вкладку "База данных" справа, нажмите +, выберите SQLite. Остальное тривиально.
Одна вещь, о которой следует помнить, заключается в том, что вам нужно продолжать нажимать кнопку "Синхронизировать" в базе данных (или в выбранной таблице), чтобы увидеть изменения, сделанные извне, что очень раздражает.
См. этот ответ. Вы можете использовать библиотеку Stetho из Facebook, а затем просто просматривать свою базу данных из Chrome:)