这个问题已经在这里有一个答案:
- 在设备上调试SQLite数据库 15个回答
我有一个SQLite数据库的一组数据。 我需要查看设备上的数据库。 我怎么做?
我在DDMS模式检查。 在文件浏览器中的数据是空的。
这个问题已经在这里有一个答案:
我有一个SQLite数据库的一组数据。 我需要查看设备上的数据库。 我怎么做?
我在DDMS模式检查。 在文件浏览器中的数据是空的。
下面是一步一步的指示(主要来自其他的答案的组合截取)。 这个工程即使在未解锁装置。
连接您的设备并启动在调试模式下的应用。
您可能需要使用adb -d shell "run-as com.yourpackge.name ls /data/data/com.yourpackge.name/databases/"
看到数据库文件名是什么。
注意: com.yourpackge.name
是你的应用程序包的名称。 您可以从清单文件中得到它。
从您的应用程序文件夹中的数据库文件复制到SD卡。
adb -d shell "run-as com.yourpackge.name cat /data/data/com.yourpackge.name/databases/filename.sqlite > /sdcard/filename.sqlite"
注意:filename.sqlite是在创建数据库你用你的数据库名称
拉数据库文件到您的计算机:
adb pull /sdcard/filename.sqlite
这将数据库从SD卡复制到您的ADB存在的地方。
安装Firefox的SQLite经理: https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/
打开Firefox的SQLite管理器(工具 - > SQLite的经理),并从上面的步骤3打开数据库文件。
请享用!
来自这里 ,你可以试试:
在的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
我迄今发现的最好方法是使用Android系统的调试,数据库工具。
它令人难以置信的简单使用和安装,只需通过网络添加的依赖,并连接到设备数据库的接口。 无需根电话或加入活动或任何责任。 具体操作步骤如下:
步骤1
添加下面的依赖关系到你的应用程序的摇篮文件并运行应用程序。
debugCompile 'com.amitshekhar.android:debug-db:1.0.0'
第2步
打开浏览器,并访问端口8080手机的IP地址,URL应该是这样: http://YOUR_PHONE_IP_ADDRESS:8080
。 您将看到以下:
注意:您还可以随时通过调用方法从你的代码调试地址URL DebugDB.getAddressLog();
为了得到我的电话的IP我目前使用Ping工具,但也有很多的替代品。
STEP 3
而已!
官方文档中的更多细节: https://github.com/amitshekhariitbhu/Android-Debug-Database
查看和管理您的Android应用程序的数据库的最佳方法是使用该库DatabaseManager_For_Android 。
这是一个Java活动文件; 只需将其添加到您的源文件夹。 你可以在你的应用程序查看数据库中的表,更新,删除,插入行到您的表。 从您的应用程序内的所有内容。
当开发完成后,从你的src文件夹中删除的Java文件。 而已。
您可以查看5分钟的演示, 为Android SQLite数据库数据库管理器 。
你可以这样做:
adb shell
cd /go/to/databases
sqlite3 database.db
sqlite>
提示符下,键入.tables
。 这将使你在database.db文件中的所有表。 select * from table1;
如果您使用的是真实的设备,它的根源并非是的话,那是不可能的,看看在你的数据库FileExplorer
,因为,由于一些安全原因,该文件夹被锁定在Android系统。 如果你是在一个模拟器使用它,你会发现在它FileExplorer
,/数据/数据/你的包名/数据库/ yourdatabse.db。
Try AndroidDBvieweR !
我一直在使用SQLite数据库浏览器看到Android开发内容的SQLite数据库。 你要拉从设备数据库文件,然后再打开它的SQLite数据库浏览器。
虽然这并不查看设备直接在数据库中,我已经出版了一本简单的shell脚本倾倒数据库到本地机器:
https://github.com/Pixplicity/dbdump
它执行这里描述的两种不同的方法:
\r
字符一些设备输出到壳。 从这里你可以使用各种CLI或GUI SQLite的应用程序,如sqlite3
或sqlitebrowser
,浏览数据库的内容。
跟着这些步骤
1>从下载* .jar文件在这里 。
2>把* .jar文件到文件夹蚀/的dropins /和重新启动Eclipse。
3>在Eclipse的顶部右侧,点击图标DDMS。
4>选择在左侧面板适当仿真器。
5在主面板上的文件浏览器选项卡,转到/data/data/[YOUR.APP.NAMESPACE]/databases。
6>下面的DDMS图标,应该有一个数据库光了一个新的蓝色图标,当你选择你的数据库。 点击它,你会看到一个Questoid sqlite的管理器选项卡打开,查看您的数据。
*注:如果数据库不亮,可能是因为你的数据库没有一个* .db文件扩展名。 确保您的数据库被称为[DATABASE_NAME] .db的
*注:如果你想使用DB不带.db拓:
-下载此Questoid SqLiteBrowser: 下载来回这里 。
-Unzip并把它到Eclipse /的dropins(未插件)。
-检查这个以了解更多信息请点击这里 。
尝试Facebook的Stetho。
Stetho是一个调试桥Android应用程序,从而实现强大的Chrome开发者工具等等。
https://github.com/facebook/stetho
步骤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);
这适用于Android 6.0(至少可调试的应用程序):
adb shell "run-as your.package.name cp /data/data/your.package.name/databases/you-db-name /sdcard/file_to_write"
然后,你可以简单地用查看DB aSQLiteManager的实例。
你可以试试SQLiteOnWeb 。 它管理在浏览器中的SQLite数据库。
希望这可以帮助你
使用终端第一点你的位置在那里的Andriod SDK是loacted
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
有TKlerx的Android的SQLite的浏览器为Eclipse ,它是全功能的Android旁边工作室。 我会推荐它,因为它是非常实用的。
要在设备监视器安装它,只需将JAR文件[Path to Android SDK folder]/sdk/tools/lib/monitor-[...]/plugins
。
使用文件资源管理器,你可以找到你这样的数据库文件:
data-->data-->your.package.name-->databases--->yourdbfile.db
然后你可以使用额探索你的数据库的任何SQLite的。 我使用SQLite经理Firefox的插件。 这是不错的,体积小,速度快。
我觉得很简单的库stetho来浏览Chrome应用的sqlite的分贝, 看到
第一篇文章( https://stackoverflow.com/a/21151598/4244605 )不会为我工作。
我写自己的脚本从设备获取数据库文件。 无根。 工作确定。
~/android-sdk/platform-tools
)。 ./getDB.sh -p <packageName>
为数据库获取命名。 用法: ./getDB.sh -p <packageName> -n <name of DB> -s <store in mobile device>
对于GET DB文件到这个(其中执行脚本)的目录。
我建议你设置DB的文件名为* .sqlite并与Firefox插件打开它:SQLite的经理。
(这是一个很长一段时间,当我在写东西猛砸,您可以编辑该代码。)
#!/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;