Intereting Posts
Стиль кнопки по умолчанию для Android не работает Мобильный сайт Facebook Войти с помощью приложения Facebook для регистрации К сожалению, системный интерфейс остановлен Android API для чтения и редактирования PDF Android Studio зависает / замораживается при сбое сборки проекта Firebase Auth получает дополнительную информацию о пользователе (возраст, пол) Вернуться к активности после того, как действие завершено в Android? BottomSheetBehavior не работает, когда обновление библиотеки дизайна до 24.2.0 Обнаружение приложения Android на фоне Как отслеживать уведомления, чтобы знать, когда показывать сводное уведомление Навигационный ящик onNavigationDrawerItemSelected вызывается перед MainActivity onCreate? Как передавать данные между фрагментами Разделите формат даты JSON на String, используя GSON на Android Spinner со стрелкой слева Как сделать линейный макет, добавить дочерний вид в новую строку?

Как просмотреть базу данных SQLite на устройстве Android?

У меня есть набор данных в базе данных SQLite. Мне нужно просмотреть базу данных на устройстве. Как мне это сделать?

Я проверил режим ddms. Данные в проводнике файлов пусты.

Solutions Collecting From Web of "Как просмотреть базу данных SQLite на устройстве Android?"

Вот пошаговые инструкции (в основном, взятые из комбинации других ответов). Это работает даже на устройствах, которые не внедрены.

  1. Подключите устройство и запустите приложение в режиме отладки.

  2. Вы можете использовать adb -d shell "run-as com.yourpackge.name ls /data/data/com.yourpackge.name/databases/" чтобы узнать, что такое имя файла базы данных.

Примечание. com.yourpackge.name – это имя вашего пакета приложений. Вы можете получить его из файла манифеста.

  1. Скопируйте файл базы данных из папки приложения на SD-карту.

    adb -d shell "run-as com.yourpackge.name cat /data/data/com.yourpackge.name/databases/filename.sqlite > /sdcard/filename.sqlite"

Примечание. Filename.sqlite – это имя вашей базы данных, которое вы использовали при создании базы данных

  1. Вытяните файлы базы данных на свой компьютер:

    adb pull /sdcard/filename.sqlite

Это скопирует базу данных с SD-карты на место, где находится ваш ADB.

  1. Установите Firefox SQLite Manager: https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/

  2. Откройте Firefox SQLite Manager (Tools-> SQLite Manager) и откройте файл базы данных с шага 3 выше.

  3. Наслаждайтесь!

Лучшим способом просмотра и управления вашей базой данных приложений Android является использование библиотеки DatabaseManager_For_Android .

Это один файл активности Java; Просто добавьте его в свою исходную папку. Вы можете просматривать таблицы в своей базе данных приложений, обновлять, удалять, вставлять строки в таблицу. Все изнутри вашего приложения.

После завершения разработки удалите файл Java из папки src. Вот и все.

Вы можете просмотреть 5-минутную демонстрацию, Database Manager для Android SQLite Database .

Взятый отсюда , вы можете попробовать:

  1. Библиотека Stetho с открытым исходным кодом Facebook

В build.gradle:

 dependencies { // Stetho core compile 'com.facebook.stetho:stetho:1.5.0' //If you want to add a network helper compile 'com.facebook.stetho:stetho-okhttp:1.5.0' } 

Инициализировать библиотеку в объекте приложения:

 Stetho.initializeWithDefaults(this); 

И вы можете просмотреть свою базу данных в Chrome от chrome://inspect

  1. Другим вариантом является этот плагин (не бесплатный)

Если вы используете реальное устройство и оно не внедрено, тогда невозможно увидеть вашу базу данных в FileExplorer , потому что из-за какой-то причины безопасности эта папка заблокирована в системе Android. И если вы используете его в эмуляторе, вы найдете его в FileExplorer , / data / data / имя вашего пакета / databases / yourdatabse.db .

Лучший способ, который я нашел до сих пор, – использовать инструмент Android-Debug-Database.

Его невероятно прост в использовании и настройке, просто добавьте зависимость и подключитесь к интерфейсу базы данных устройства через Интернет. Не нужно укорачивать телефон или добавлять какие-либо действия или что-то еще. Вот шаги:

ШАГ 1

Добавьте следующую зависимость к файлу gradle вашего приложения и запустите приложение.

 debugCompile 'com.amitshekhar.android:debug-db:1.0.0' 

ШАГ 2

Откройте ваш браузер и перейдите на IP-адрес вашего телефона на порт 8080. URL-адрес должен быть следующим: http://YOUR_PHONE_IP_ADDRESS:8080 . Вам будет представлено следующее:

Введите описание изображения здесь

Чтобы получить IP-адрес myphone, я в настоящее время использую Ping Tools, но есть много альтернатив.

ШАГ 3

Это оно!


Более подробная информация в официальных документах: https://github.com/amitshekhariitbhu/Android-Debug-Database

Вы можете сделать это:

  1. adb shell
  2. cd /go/to/databases
  3. sqlite3 database.db
  4. В .tables строке sqlite> введите .tables . Это даст вам все таблицы в файле database.db.
  5. select * from table1;

Попробуйте AndroidDBvieweR !

  • Нет необходимости, чтобы ваше устройство было ЗАКРЫТО
  • Нет необходимости импортировать файл базы данных приложения
  • Несколько конфигураций, и вам хорошо идти!

AndroidDBvieweR

Если вы не хотите использовать

  1. ADB
  2. Сторонняя библиотека или
  3. Зависимость градиента и т. Д.

И просто хотите получить файл базы данных в SDCard , это решение.

Скопируйте класс DatabaseUtil.java в свой проект

 package com.util; import android.content.Context; import android.os.Environment; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.nio.channels.FileChannel; /** * Shayan Rais (http://shanraisshan.com) * created on 8/17/2016 */ public class DatabaseUtil { //You need to declare permission // <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> //in your Manifest file in order to use this class //______________________________________________________________________________________________ //todo -> rename the database according to your application final static String DATABASE_NAME = "MyDatabase.sqlite"; //example WhatsApp : /data/data/com.whatsapp/databases/msgstore.db final static String FOLDER_EXTERNAL_DIRECTORY = Environment.getExternalStorageDirectory() + "/shanraisshan"; //______________________________________________________________________________________________ public static void copyDatabaseToExtStg(Context ctx) { //external storage file File externalDirectory = new File(FOLDER_EXTERNAL_DIRECTORY); if(!externalDirectory.exists()) . . 

И просто вызовите метод copyDatabaseToExtStg () из любой активности вашего приложения


Это скопирует папку базы данных по адресу sdcard / shanraisshan / your_database_file

Изображение показывает, что MyDatabase.sqlite присутствует на SD-карте


Для дальнейшего подробного объяснения проверьте Android-Database-Viewer на Github. https://github.com/shanraisshan/Android-Database-Viewer

Хотя это не позволяет напрямую просматривать базу данных на вашем устройстве, я опубликовал простой сценарий оболочки для сброса баз данных на ваш локальный компьютер:

https://github.com/Pixplicity/dbdump

Он выполняет два различных метода, описанных здесь:

  1. Во-первых, он пытается сделать файл доступным для других пользователей и пытается вытащить его с устройства.
  2. Если это не удается, оно передает содержимое файла через терминал на локальный компьютер. Он выполняет дополнительный трюк для удаления символов \r которые некоторые устройства выводят в оболочку.

Здесь вы можете использовать различные приложения CLI или GUI SQLite, такие как sqlitebrowser или sqlitebrowser , для просмотра содержимого базы данных.

Я использую SQLite Database Browser для просмотра базы данных SQLite DB в Android-разработке. Сначала вы должны вывести файл базы данных с устройства, а затем открыть его в SQLite DB Browser.

Попробуйте facebook Stetho.

Stetho – это отладочный мост для приложений для Android, позволяющий использовать мощные инструменты для разработчиков Chrome и многое другое.

https://github.com/facebook/stetho

Надеюсь, это поможет вам

Использование терминала Сначала укажите местоположение, в котором sdk andriod отключен

 eg: C:\Users\AppData\Local\Android\sdk\platform-tools> 

Затем проверьте список подключенных устройств.

  adb devices 

А затем запустите эту команду, чтобы скопировать файл с устройства в вашу систему

 adb -s YOUR_DEVICE_ID shell run-as YOUR_PACKAGE_NAME chmod -R 777 /data/data/YOUR_PACKAGE_NAME/databases && adb -s YOUR_DEVICE_ID shell "mkdir -p /sdcard/tempDB" && adb -s YOUR_DEVICE_ID shell "cp -r /data/data/YOUR_PACKAGE_NAME/databases/ /sdcard/tempDB/." && adb -s YOUR_DEVICE_ID pull sdcard/tempDB/ && adb -s YOUR_DEVICE_ID shell "rm -r /sdcard/tempDB/*" 

Вы можете найти файл базы данных по этому пути

  Android\sdk\platform-tools\tempDB\databases 

Следуй этим шагам

1 > Загрузите файл * .jar отсюда .

2 > Поместите файл * .jar в папку eclipse / dropins / и перезапустите eclipse.

3 > В правом верхнем углу затмения щелкните значок DDMS.

4 > Выберите правильный эмулятор на левой панели.

5 На вкладке «Проводник» на главной панели перейдите в /data/data/[YOUR.APP.NAMESPACE]/databases.

6 > Под значком DDMS при выборе базы данных должен появиться новый синий значок базы данных. Нажмите на нее, и вы увидите вкладку Questoid Sqlite Manager, открывающуюся для просмотра ваших данных.

* Примечание. Если база данных не загорается, это может быть связано с тем, что в вашей базе данных нет расширения * .db. Убедитесь, что ваша база данных называется [DATABASE_NAME] .db

* Примечание: если вы хотите использовать БД без расширения .db-Extension:

-Загрузить этот Questoid SqLiteBrowser: скачать здесь .

-Unzip и поместите его в eclipse / dropins (а не в плагины).

-Проверьте это для получения дополнительной информации Нажмите здесь .

Это работает с Android 6.0 (отладочные приложения как минимум):

 adb shell "run-as your.package.name cp /data/data/your.package.name/databases/you-db-name /sdcard/file_to_write" 

Затем вы просто можете просмотреть БД с помощью aSQLiteManager .

Вы можете попробовать SQLiteOnWeb . Он управляет вашей базой данных SQLite в браузере.

Шаг 1 Скопируйте этот класс в свой пакет.

Шаг 2 поместите следующий код в свой класс, который расширяет SQLiteOpenHelper.

  //-----------------for show databasae table---------------------------------------- public ArrayList<Cursor> getData(String Query) { //get writable database SQLiteDatabase sqlDB =this.getWritableDatabase(); String[] columns = new String[] { "mesage" }; //an array list of cursor to save two cursors one has results from the query //other cursor stores error message if any errors are triggered ArrayList<Cursor> alc = new ArrayList<Cursor>(2); MatrixCursor Cursor2= new MatrixCursor(columns); alc.add(null); alc.add (null); try{ String maxQuery = Query ; //execute the query results will be save in Cursor c Cursor c = sqlDB.rawQuery(maxQuery, null); //add value to cursor2 Cursor2.addRow(new Object[] { "Success" }); alc.set(1,Cursor2); if (null != c && c.getCount() > 0) { alc.set(0,c); c.moveToFirst(); return alc ; } return alc; } catch(SQLException sqlEx) { Log.d("printing exception", sqlEx.getMessage()); //if any exceptions are triggered save the error message to cursor an return the arraylist Cursor2.addRow(new Object[] { ""+sqlEx.getMessage() }); alc.set(1,Cursor2); return alc; } catch(Exception ex) { Log.d("printing exception",ex.getMessage()); //if any exceptions are triggered save the error message to cursor an return the arraylist Cursor2.addRow(new Object[] { ""+ex.getMessage() }); alc.set(1,Cursor2); return alc; } } 

Шаг 3 зарегистрировать в манифесте

 <activity android:name=".database.AndroidDatabaseManager" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar"/> 

Шаг 4

 Intent i = new Intent(this, AndroidDatabaseManager.class); startActivity(i); 

В Eclipse есть браузер Android SQLite от TKlerx, и он полностью функциональен вместе с Android Studio. Я рекомендую это, потому что это очень практично.

Чтобы установить его на Device Monitor, просто поместите JAR-файл в папку [Path to Android SDK folder]/sdk/tools/lib/monitor-[...]/plugins .

Используя проводник файлов, вы можете найти файл своей базы данных следующим образом:

 data-->data-->your.package.name-->databases--->yourdbfile.db 

Затем вы можете использовать любой SQLite для изучения вашей базы данных. Я использую аддон SQLite Manager Firefox. Это хорошо, мало и быстро.

Я нашел очень простой библиотечный stetho для просмотра sqlite db приложения в хром, см.

Первое сообщение ( https://stackoverflow.com/a/21151598/4244605 ) не работает для меня.

Я написал собственный скрипт для получения файла DB с устройства. Без корня. Работает нормально.

  1. Скопируйте сценарий в каталог с помощью adb (например: ~/android-sdk/platform-tools ).
  2. Устройство должно быть подключено к ПК.
  3. Используйте ./getDB.sh -p <packageName> для получения имени баз данных.

Использование: ./getDB.sh -p <packageName> -n <name of DB> -s <store in mobile device> для получения файла DB в этом (где выполняется скрипт).

Я рекомендую вам установить имя файла DB как * .sqlite и открыть его с помощью Firefox addon: SQLite Manager.

(Это долгое время, когда я написал что-то в Bash. Вы можете отредактировать этот код.)

 #!/bin/sh # Get DB from Android device. # Hoption=false Poption=false Noption=false Soption=false Parg="" Narg="" Sarg="" #-----------------------FUNCTION--------------------------: helpFunc(){ #help echo "Get names of DB's files in your Android app. Usage: ./getDB -h ./getDB -p packageName -n nameOfDB -s storagePath Options: -h Show help. -p packageName List of databases for package name. -p packageName -n nameOfDB -s storagePath Save DB from device to this directory." } #--------------------------MAIN--------------------------: while getopts 'p:n:s:h' options; do case $options in p) Poption=true Parg=$OPTARG;; n) Noption=true Narg=$OPTARG;; s) Soption=true Sarg=$OPTARG;; h) Hoption=true;; esac done #echo "------------------------------------------------------- #Hoption: $Hoption #Poption: $Poption #Noption: $Noption #Soption: $Soption #Parg: $Parg #Narg: $Narg #Sarg: $Sarg #-------------------------------------------------------"\\n #echo $# #count of params if [ $Hoption = true ];then helpFunc elif [ $# -eq 2 -a $Poption = true ];then #list ./adb -d shell run-as $Parg ls /data/data/$Parg/databases/ exit 0 elif [ $# -eq 6 -a $Poption = true -a $Noption = true -a $Soption = true ];then #get DB file #Change permissions ./adb shell run-as $Parg chmod 777 /data/data/$Parg/databases/ ./adb shell run-as $Parg chmod 777 /data/data/$Parg/databases/$Narg #Copy ./adb shell cp /data/data/$Parg/databases/$Narg $Sarg #Pull file to this machine ./adb pull $Sarg/$Narg exit 0 else echo "Wrong params or arguments. Use -h for help." exit 1; fi exit 0;