Как использовать ADB в Android Studio для просмотра SQLite DB
Мне нужно посмотреть мой SQLite db, но я не знаю, как это сделать. Я перешел в http://www.sqlite.org/download.html и загрузил оболочку командной строки для своей ОС, но когда я запускаю программу и набираю adb ...
, я получаю ошибки.
Примечание. Я использую Android Studio, поэтому предполагаю, что мне не нужно устанавливать что-либо лишнее, потому что я помню, что Android Studio заявила, что ей нужны все инструменты SDK.
Ответы
Ответ 1
Самый простой способ: подключиться к Sqlite3 через оболочку ADB
Я не нашел никакого способа сделать это в Android Studio, но я получаю доступ к db с удаленной оболочкой, а не потянув за файл каждый раз.
Найти всю информацию здесь:
http://developer.android.com/tools/help/sqlite3.html
1- Перейдите в свою папку с инструментальными средствами в командной строке
2- Введите команду adb devices
, чтобы получить список ваших устройств
C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb devices
List of devices attached
emulator-xxxx device
3. Подключите оболочку к вашему устройству:
C:\Android\adt-bundle-windows-x86_64\sdk\platform-tools>adb -s emulator-xxxx shell
4a- Вы можете обойти этот шаг на корневом устройстве
run-as <your-package-name>
4b- Перейдите к папке, содержащей ваш файл db:
cd data/data/<your-package-name>/databases/
5 запустите sqlite3 для подключения к вашему db:
sqlite3 <your-db-name>.db
6-запустить команды sqlite3, которые вам нравятся, например:
Select * from table1 where ...;
Примечание. Найдите больше команд для запуска ниже.
Шифрование SQLite
Есть несколько шагов, чтобы увидеть таблицы в базе данных SQLite:
-
Список таблиц в вашей базе данных:
.tables
-
Перечислите, как выглядит таблица:
.schema tablename
-
Распечатайте всю таблицу:
SELECT * FROM tablename;
-
Перечислите все доступные команды командной строки SQLite:
.help
Ответ 2
Самый простой способ для меня - использовать Android Device Monitor, чтобы получить файл базы данных и браузер SQLite DataBase Browser для просмотра файла при использовании Android Studio для программирования Android.
1) Запустите и запустите приложение базы данных с эмулятором Android из Android Studio. (Я установил некоторые данные в приложение базы данных для проверки)
2) Запустите Android Device Monitor. Как запустить?; Перейдите к [your_folder] > sdk >tools
. Вы можете увидеть monitor.bat в этой папке. shift + right click
внутри папки и выберите "Open command window here
". Это действие запустит командную строку. тип monitor
и Android Device Monitor будут запущены.
3) Выберите эмулятор, который вы сейчас используете. Затем перейдите к data>data>[your_app_name]>databases
4) Нажмите на значок (расположенный в верхнем правом углу) (наведите указатель мыши на значок, и вы увидите "вытащить файл с устройства" ) и сохраните все, что вам нравится
5) Запустите браузер SQLite DataBase. Перетащите файл, который вы только что сохранили в этом браузере.
6) Перейдите на вкладку Browse Data
и выберите свою таблицу для просмотра.
![enter image description here]()
![enter image description here]()
Ответ 3
Проблема, с которой вы сталкиваетесь, является общей и не очень хорошо объясняется в документации. Обычные устройства не включают двоичную базу данных sqlite3, поэтому вы получаете ошибку. Android Emeulator, OSX, Linux (если установлен) и Windows (после установки) имеют двоичный файл, поэтому вы можете открывать базу данных локально на вашем компьютере.
Обходной путь заключается в том, чтобы скопировать базу данных с вашего устройства на локальный компьютер. Это может быть выполнено с помощью ADB, но требует нескольких шагов.
Перед началом работы вам понадобится информация:
- путь к SDK (если он не включен в среду вашей ОС)
- ваш
<package name>
, например, com.example.application
- a
<local path>
, чтобы разместить вашу базу данных, например. ~/Desktop
или %userprofile%\Desktop
Далее вам нужно будет понять, какой терминал каждая команда будет записана в первый символ в приведенных ниже примерах, не вводится, но позволяет узнать, в какой оболочке мы находимся:
-
>
= команда командной строки ОС
-
$
= Команда оболочки ADB Подсказка
-
!
= оболочка ADB в командной строке администратора
-
%
Далее введите следующие команды из терминала или команды (не вводите первый символ или текст в ()
)
> adb shell
$ su
! cp /data/data/<package name>/Databases/<database name> /sdcard
! exit
$ exit
> adb pull /sdcard/<database name> <local path>
> sqlite3 <local db path>
% .dump
% .exit (to exit sqldb)
Это действительно круглый способ копирования базы данных на локальную машину и локального чтения базы данных. Есть SO и другие ресурсы, объясняющие, как установить двоичный файл sqlite3 на ваше устройство с эмулятора, но в течение одного времени этот процесс работает.
Если вам нужно получить доступ к базе данных в интерактивном режиме, я бы предложил запустить ваше приложение в эмуляторе (уже имевшем sqlite3) или установке sqlite на ваши устройства/путь xbin.
Ответ 4
Что он упоминает при вводе adb?
step1. >adb shell
step2. >cd data/data
step3. >ls -l|grep "your app package here"
step4. >cd "your app package here"
step5. >sqlite3 xx.db
Ответ 5
- Откройте терминал
-
cd <ANDROID_SDK_PATH>
(для меня в Windows cd C:\Users\Willi\AppData\Local\Android\sdk
)
-
cd platform-tools
-
adb shell
(это работает только при запуске только одного эмулятора)
-
cd data/data
-
su
(получить привилегии суперпользователя)
-
cd <PACKAGE_NAME>/databases
-
sqlite3 <DB_NAME>
- выдавать операторы SQL ( important: завершать их с помощью
;
, в противном случае оператор не выдается, и вместо этого он разбивается на новую строку.)
Примечание. Используйте ls
(Linux) или dir
(Windows), если вам нужно указать содержимое каталога.
Ответ 6
В зависимости от устройств вы не можете найти команду sqlite3 в оболочке adb. В этом случае вам может понадобиться следующее:
adb shell
$run-as package.name
$cd./databases/
$ls -l # Начать текущие разрешения - r = 4, w = 2, x = 1
$chmod 666./dbname.db
$exit
$exit
adb pull /data/data/package.name/databases/dbname.db ~/Desktop/
adb push ~/Desktop/dbname.db/data/data/package.name/databases/dbname.db
adb shell
$run-as package.name
$chmod 660. /databases/dbname.db #Restore исходные разрешения
$exit
$выход
для справки перейдите к fooobar.com/questions/101163/....
Бывают случаи, когда вы получаете "удаленный объект не найден" после выполнения описанной выше процедуры. Затем измените разрешение папки базы данных на 755 в оболочке adb.
$chmod 755 баз данных /
Но, пожалуйста, учтите, что он будет работать только в версии для Android, 21.
Ответ 7
Вы можете использовать очень хороший инструмент под названием Stetho
, добавив его в файл build.gradle
:
compile 'com.facebook.stetho:stetho:1.4.1'
И инициализировал его внутри метода Application
или Activity
onCreate()
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Stetho.initializeWithDefaults(this);
setContentView(R.layout.activity_main);
}
Затем вы можете просмотреть записи db в хром по адресу:
chrome://inspect/#devices
Для получения дополнительной информации вы можете прочитать мое сообщение: Как легко просматривать ваши записи db