Пожалуйста, помогите мне с этой проблемой.
Я вставляю значения в свою базу данных Sqlite.
Как я могу проверить или просмотреть вставленные данные.
Есть ли какой-либо инструмент или другие методы для отображения данных?
вы хотите видеть эти данные в файле .db или отображать их в приложении?
ваши записи контактов в журнал :) @BivinVinod
Пожалуйста, обратитесь к этому, stackoverflow.com/questions/19194576/…
Получите базу данных из папки данных с помощью монитора устройства Android. Затем откройте файл .db с помощью браузера sqlite. Скачать по этой ссылке: sqlitebrowser.org
@elsunhoty вам не нужен обмен данными между процессами только для вставки значений в sqlite




Если вы хотите показать данные на Log, попробуйте следующий код:
for (Contact cn : contacts) {
String log = "Id: "+cn.getID()+" ,Name: " + cn.getName() + " ,Phone: " + cn.getPhoneNumber();
// Writing Contacts to log
Log.d("Name: ", log);
Другой способ показать database см. Ниже шаги:
Tools -> DDMS или щелкните значок Device Monitor рядом с SDK Manager на панели инструментов.data -> data -> your project name.. После этого откроется файл с базами данных. Щелкните pull a file from device icon.. Сохраните файл с расширением .db.Tools -> SQLiteManager.Если Вы скачиваете базу данных на DDMS, то Вы скачиваете
DB.Browser.for.SQLite-3.10.1-win64
и поместите файл database в это программное обеспечение, и вы получите данные.
Я обновлю свой ответ до тех пор, пока не обновится Android Studio в Android Studio 3.1 или до другой версии, такой как сейчас 3.2, в этой студии. Функция DDMS недоступна, но не волнуйтесь, у меня есть другое решение.
В вашей студии Android См. Правую сторону в нижнем углу есть один вариант, например Проводник устройства Нажмите эту кнопку
После этого вы можете увидеть, как на вашем экране открыто изображение ниже:
Теперь выберите data -> data -> your project name. :)
Подход DDMS не работает на некорневом устройстве
Я следую Как проверить базу данных на устройстве Android без рута, чтобы импортировать базу данных Sqlite с устройства на ПК.
Следуйте приведенным ниже инструкциям:
adb shell run-as [пакет] chmod 777 / data / data / [пакет] / баз данных /
adb shell run-as [пакет] chmod 777 / data / data / [пакет] / баз данных / [db_file_name]
adb shell run-as [пакет] cp / data / data / [package] / databases / [db_file_name] / sdcard /
adb pull / sdcard / [имя_файла_бД]
4.Проверьте извлеченную базу данных SQLite в папке sdk> platform-tools
Теперь вы можете использовать любую программу просмотра SQLite для просмотра извлеченной базы данных.
Примечание. В файле манифеста требуются два разрешения, иначе данные не будут скопированы в извлеченную БД.
android.permission.WRITE_EXTERNAL_STORAGE android.permission.READ_EXTERNAL_STORAGE
Не могу поверить, что никто об этом не упомянул, но вы, вероятно, ищете База данных отладки Android
Также отлично работает с Android Room, и вы можете просматривать, редактировать таблицы и записи.
Хотя вы одобрили ответ Cassius Clay's, если вам нужно обработать необработанные данные
root не нужен (если его нет на SD-карте, следуйте ответу @Ankit)
import os
import sys
import subprocess
import sqlite3
import pandas as pd
arg_folder = sys.argv[1] # root folder to recursively search db files from
output_lines = subprocess.check_output(['adb', 'shell', ('ls -R %s' % arg_folder)]).decode('utf-8').splitlines()
db_files = []
current_folder = ''
for line in output_lines:
"""
Output example for 'ls -R /data/data':
/data/data/org.fdroid.fdroid/files/fdroid/repo/icons:
/data/data/org.fdroid.fdroid/shared_prefs:
apks-pending-install.xml
org.fdroid.fdroid_preferences.xml
/data/data/ru.meefik.busybox:
cache
files
lib
shared_prefs
if line contains '/' it's a directory, we want to extract the full path for '.db' files
"""
if line.__contains__('/'):
current_folder = line
elif line.endswith('.db'):
db_files.append('%s/%s' % (current_folder[:-1], line))
print("Listing databases..")
while True:
try:
for idx, full_path in enumerate(db_files):
print("{}) {}".format(idx + 1, full_path))
i = input("Enter database number : ")
db = db_files[int(i) - 1] # selected database
subprocess.check_output(['adb', 'pull', db]) # pulling the .db file from device to local
db = db.split('/')[-1] # "/data/data/com.app/folder/private.db".split('/')[-1] = private
conn = sqlite3.connect(db)
# getting list of current database tables
tables = conn.execute("SELECT name FROM sqlite_master WHERE type='table';").fetchall()
for table in tables:
table = table[0] # little fix, it comes as a tuple
print('%s%s' % (db[:-2], table))
with pd.option_context('display.width', 1000): # setting terminal width to view all table columns inline
print(pd.read_sql_query("SELECT * FROM %s" % table, conn)) # print table content
print('- ' * 50) # table print separator
# cleanup
if input('remove database file (from local) [y/N] ? ').lower() == 'y':
print('removing ', db)
os.remove(db)
# repeat
c = input("Press ENTER to continue or CTRL+C to Quit..")
except KeyboardInterrupt:
exit(0)
Вот менее дружелюбный для человека очень длинный однострочный
read -p "enter root folder to recursively search db files from: " f;dbs=( $(adb shell ls -R $f |
while read line
do
line=$(echo $line | tr -d '\r')
if [[ "$line" =~ ^/.*:$ ]]
then
dir=${line%:}
elif [[ "$line" = "opendir failed" ]]
then
echo "$dir - permission denied"
else
if [[ "$dir" = "/" ]]; then dir = ""; fi
echo "$dir/$line" | grep '\.db$'
fi
done)
);echo ${dbs[@]}; dbs+=(exit);select db in "${dbs[@]}"; do
[[ $db == exit ]] && break
echo "You have chosen $db"
adb pull $db
python -c 'import sqlite3;import pandas as pd;db=sqlite3.connect("'${db##*/}'");tables=db.cursor().execute("SELECT name FROM sqlite_master WHERE type=\"table\";").fetchall();print([pd.read_sql_query("SELECT * FROM %s" % t[0], db) for t in tables]);'
done
GIF, потому что мне лень документировать
Вы можете добавлять, редактировать, проверять все данные ваших таблиц БД, включая данные общих настроек, с помощью этой библиотеки (база данных отладки) Перейдите по этой ссылке, чтобы установить.
Все, что вам нужно сделать, это просто поместить зависимость, скомпилировать и запустить программу, вы найдете ссылку вроде (your_package_name D / DebugDB: Open http://172.16.6.117:8081 в вашем браузере) в logcat, которая покажет всю вашу БД в браузере
Лучший инструмент отладки Sqlite для приложений Android - это
Stetho By Facebook
http://facebook.github.io/stetho/
Stetho - это сложный мост отладки для приложений Android. Если этот параметр включен, разработчики получают доступ к функциям Chrome Developer Tools, изначально являющимся частью настольного браузера Chrome. Разработчики также могут включить дополнительный инструмент dumpapp, который предлагает мощный интерфейс командной строки для внутренних компонентов приложения.
Скачать или В качестве альтернативы вы можете включить Stetho из Maven Central через Gradle или Maven.
// Gradle dependency on Stetho
dependencies {
compile 'com.facebook.stetho:stetho:1.5.1'
}
<dependency>
<groupid>com.facebook.stetho</groupid>
<artifactid>stetho</artifactid>
<version>1.5.1</version>
</dependency>
Строго требуется только основная зависимость от стето, однако вы также можете использовать один из сетевых помощников:
dependencies {
compile 'com.facebook.stetho:stetho-okhttp3:1.5.1'
}
Или же
dependencies {
compile 'com.facebook.stetho:stetho-okhttp:1.5.1'
}
Или же
dependencies {
compile 'com.facebook.stetho:stetho-urlconnection:1.5.1'
}
Интеграции
Настраивать
Предполагается, что интеграция со Stetho будет простой и простой для большинства существующих приложений Android. В вашем Application class: есть простой этап инициализации.
public class MyApplication extends Application {
public void onCreate() {
super.onCreate();
Stetho.initializeWithDefaults(this);
}
}
Это вызывает большую часть конфигурации по умолчанию, но не включает некоторые дополнительные перехватчики (в первую очередь, проверку сети). См. Ниже подробные сведения об отдельных подсистемах.
Enable Network Inspection
Если вы используете популярную библиотеку OkHttp в выпуске 2.2.x + или 3.x, вы можете использовать систему Interceptors для автоматического подключения к существующему стеку. В настоящее время это самый простой и понятный способ включить проверку сети.
Для OkHttp 2.x
OkHttpClient client = new OkHttpClient();
client.networkInterceptors().add(new StethoInterceptor());
Для OkHttp 3.x
new OkHttpClient.Builder()
.addNetworkInterceptor(new StethoInterceptor())
.build();
Поскольку перехватчики могут изменять запрос и ответ, добавьте перехватчик Stetho после всех остальных, чтобы получить точное представление о сетевом трафике.
Если вы используете HttpURLConnection, вы можете использовать StethoURLConnectionManager для помощи в интеграции, хотя вы должны знать, что у этого подхода есть некоторые предостережения. В частности, вы должны явно добавить Accept-Encoding: gzip в заголовки запросов и вручную обрабатывать сжатые ответы, чтобы Stetho сообщал о размерах сжатых полезных данных.
для получения дополнительной информации посетите стето
Поиск по контент-провайдеру