Подтвердить что ты не робот

Как использовать ADB в Android Studio для просмотра SQLite DB

Мне нужно посмотреть мой SQLite db, но я не знаю, как это сделать. Я перешел в http://www.sqlite.org/download.html и загрузил оболочку командной строки для своей ОС, но когда я запускаю программу и набираю adb ..., я получаю ошибки.

Примечание. Я использую Android Studio, поэтому предполагаю, что мне не нужно устанавливать что-либо лишнее, потому что я помню, что Android Studio заявила, что ей нужны все инструменты SDK.

4b9b3361

Ответ 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 hereenter 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