Самый простой способ: подключиться к Sqlite3 через ADB Shell
Я не нашел способа сделать это в Android Studio, но я получаю доступ к базе данных с помощью удаленной оболочки вместо того, чтобы каждый раз извлекать файл.
Всю информацию можно найти здесь:
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
4- Вы можете пропустить этот шаг на корневом устройстве.
run-as <your-package-name>
4b- Перейдите в папку, содержащую ваш файл db:
cd data/data/<your-package-name>/databases/
5- запустите sqlite3 для подключения к вашей базе данных:
sqlite3 <your-db-name>.db
6- запускайте команды sqlite3, которые вам нравятся, например:
Select * from table1 where ...;
Примечание. Ниже приведены дополнительные команды для выполнения.
Шпаргалка по SQLite
Чтобы просмотреть таблицы в базе данных SQLite, выполните несколько шагов:
Перечислите таблицы в вашей базе данных:
.tables
Перечислите, как выглядит таблица:
.schema tablename
Распечатать всю таблицу:
SELECT * FROM tablename;
Перечислите все доступные команды подсказки SQLite:
.help
/data/data
каталогcp /data/data/<your-package-name>/databases/<your-db-name>.db /sdcard
. Затем используйте файловый менеджер, например Explorer, чтобы отправить файл на вашу электронную почту. :)Самый простой способ для меня - использовать Android Device Monitor для получения файла базы данных и браузер SQLite DataBase для просмотра файла, все еще используя Android Studio для программирования Android.
1) Запустите и запустите приложение базы данных с эмулятором Android из Android Studio. (Я вставил данные в приложение базы данных для проверки)
2) Запустите Android Device Monitor. Как бежать ?; Идти к
[your_folder] > sdk >tools
. В этой папке вы можете увидеть файл monitor.bat.shift + right click
внутри папки и выберите "Open command window here
". Это действие запустит командную строку. type,monitor
и будет запущен Android Device Monitor.3) Выберите эмулятор, который вы используете в данный момент. Затем перейдите к
data>data>[your_app_name]>databases
4) Щелкните значок (находится в правом верхнем углу) (наведите указатель мыши на значок, вы увидите «вытащить файл с устройства») и сохраните в любом месте.
5) Запустите браузер базы данных SQLite. Перетащите файл, который вы только что сохранили, в этот браузер.
6) Перейдите на
Browse Data
вкладку и выберите таблицу для просмотра.источник
Проблема, с которой вы столкнулись, является распространенной и плохо объясняется в документации. Обычные устройства не включают двоичный файл базы данных sqlite3, поэтому вы получаете сообщение об ошибке. Android Emeulator, OSX, Linux (если установлен) и Windows (после установки) имеют двоичный файл, поэтому вы можете открыть базу данных локально на своем компьютере.
Обходной путь - скопировать базу данных с вашего устройства на локальный компьютер. Это можно сделать с помощью ADB, но для этого потребуется несколько шагов.
Перед тем, как начать, вам понадобится некоторая информация:
<package name>
, например,com.example.application
<local path>
для размещения вашей базы данных, например.~/Desktop
или же%userprofile%\Desktop
Затем вам нужно будет понять, в каком терминале каждая команда записывается, чтобы первый символ в приведенных ниже примерах не вводился, но позволяет узнать, в какой оболочке мы находимся:
>
= командная строка вашей ОС$
= Командная строка оболочки ADB!
= Оболочка ADB в качестве командной строки администратора%
Затем введите следующие команды из терминала или команды (не вводите первый символ или текст
()
)Это действительно обходной способ копирования базы данных на локальный компьютер и локального чтения базы данных. Есть SO и другие ресурсы, объясняющие, как установить двоичный файл sqlite3 на ваше устройство из эмулятора, но для однократного доступа этот процесс работает.
Если вам нужно получить доступ к базе данных в интерактивном режиме, я бы предложил запустить ваше приложение в эмуляторе (в котором уже был sqlite3) или установить sqlite на ваши устройства / путь xbin .
источник
cd <ANDROID_SDK_PATH>
(для меня в Windowscd C:\Users\Willi\AppData\Local\Android\sdk
)cd platform-tools
adb shell
(это работает, только если запущен только один эмулятор)cd data/data
su
(получить привилегии суперпользователя)cd <PACKAGE_NAME>/databases
sqlite3 <DB_NAME>
;
, иначе оператор не выдается и вместо этого переводится на новую строку).Примечание. Используйте
ls
(Linux) илиdir
(Windows), если вам нужно просмотреть содержимое каталога.источник
Что он упоминает, когда вы набираете 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
источник
adb
... Когда я набираю его в оболочке SQLite3, он дает мне...>
и ожидает продолжения команды. В основном он ждет;
. Если я ввожу точку с запятой, я получаюerror: near "adb": syntax error
... Вводadb shell
в командной строке говорит мне, что adb не является распознанной командой ... Должен ли я добавить adb в свои файлы путей?/system/bin/sh: sqlite3: not found
... И я уже добавил SQLite3 и ADB в качестве переменных пути ...Вы можете использовать очень хороший инструмент
Stetho
, добавив его вbuild.gradle
файл:compile 'com.facebook.stetho:stetho:1.4.1'
И инициализировал его внутри вашего метода
Application
orActivity
onCreate()
:@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Stetho.initializeWithDefaults(this); setContentView(R.layout.activity_main); }
Затем вы можете просмотреть записи db в chrome по адресу:
chrome://inspect/#devices
Для более подробной информации вы можете прочитать мой пост: Как легко просматривать свои записи в БД
источник
В зависимости от устройств вы можете не найти команду sqlite3 в оболочке adb. В этом случае вы можете сделать следующее:
оболочка adb
для справки перейдите на https://stackoverflow.com/a/17177091/3758972 .
Могут быть случаи, когда вы получите сообщение «удаленный объект не найден» после выполнения описанной выше процедуры. Затем измените разрешение папки вашей базы данных на 755 в оболочке adb.
Но учтите, что он будет работать только на Android версии <21.
источник