我已经检查了ddms模式。文件浏览器中的数据为空。
以下是逐步指南(大部分内容摘自其他答案),即使是未root的设备也可以使用。
将您的设备连接并启动调试模式。
您可能希望使用 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 Manager:https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/
打开Firefox SQLite Manager (工具->SQLite Manager) 并打开第3步中的数据库文件。
享受!
android.permission.WRITE_EXTERNAL_STORAGE
权限。否则,它会告诉您“拒绝许可”。 - Lukas Knuthshell
参数,改用 exec-out
!shell
会干扰二进制数据,将 \n
转换为 \r\n
,而 exec-out
是专门设计用于二进制数据传输的,不会破坏您的数据库文件,并且可以直接复制到您的电脑上,就像 adb -d exec-out "run-as com.example.app cat databases/example.db" 1> example.sqlite
。 - Pavlus2020年更新
数据库检查器(适用于Android Studio 4.1版本)。阅读Medium文章
对于较旧版本的Android Studio,我推荐以下3个选项:
在build.gradle中:
dependencies {
// Stetho core
compile 'com.facebook.stetho:stetho:1.5.1'
//If you want to add a network helper
compile 'com.facebook.stetho:stetho-okhttp:1.5.1'
}
Stetho.initializeWithDefaults(this);
你可以在Chrome中通过chrome://inspect
查看你的数据库。
adb pull
的解决方案所不可能的)。所有更改都实时反映,因此您无需像使用基于adb pull
的解决方案那样每次都复制数据库。 - Julien Kronegg目前我找到的最好的方法是使用Android-Debug-Database工具。
这个工具非常简单易用,只需要添加依赖并通过Web连接到设备数据库界面即可。不需要对手机进行root或添加其他活动等操作。以下是步骤:
步骤1
将以下依赖项添加到您的应用程序Gradle文件中并运行应用程序。
debugCompile 'com.amitshekhar.android:debug-db:1.0.0'
第二步
打开浏览器,访问手机的IP地址,端口为8080。URL应该像这样:http://YOUR_PHONE_IP_ADDRESS:8080
。您将看到以下内容:
注意:您还可以通过调用DebugDB.getAddressLog();
方法从代码中随时获取调试地址URL。
我目前使用 Ping Tools 来获取手机的IP地址,但有很多其他选择。
第三步
就是这样!
更多详情请参阅官方文档: https://github.com/amitshekhariitbhu/Android-Debug-Database
管理和查看Android应用程序数据库的最佳方法是使用库DatabaseManager_For_Android。
它是一个单独的Java活动文件;只需将其添加到源文件夹中即可。 您可以查看应用程序数据库中的表格,更新、删除、插入行到您的表格。全部在应用程序内部完成。
开发完成后,请从src文件夹中删除Java文件。就这样。
您可以观看5分钟演示,Database Manager for Android SQLite Database 。
getData
方法放入其中,然后像这样获取数据库:SQLiteDatabase sqlDB = ((AndroidDatabase)FlowManager.getWritableDatabase("Main")).getDatabase();
- androidguyadb shell
cd /go/to/databases
sqlite3 database.db
sqlite>
提示符下,输入 .tables
。这会给你数据库文件中的所有表格。select * from table1;
/data/data/COM.YOUR_PACKAGE.NAME/databases
,其中COM.YOUR_PACKAGE.NAME
是你想查看其数据库的包名。
然而第四个好像没有起作用。 - Mahsa2build.gradle
文件中添加一个依赖。 - Henrique de Sousa我一直在使用SQLite数据库浏览器查看Android开发中的SQLite DB内容。您需要首先从设备中提取数据库文件,然后在SQLite DB浏览器中打开它。
adb pull path_to_db_file_in_device path_to_save
将其保存到计算机上。 - Andrew T.它执行了这里描述的两个不同的方法:
\r
字符。从这里开始,您可以使用各种CLI或GUI SQLite应用程序,例如sqlite3
或sqlitebrowser
,浏览数据库的内容。
humpty.sh -d com.mypak.name databases/MyDB.db
它说成功!... 但在 dumps/com.mypak.name/databases 文件夹中只有一个批处理文件,它说: run-as: Package 'com.mypak.name' is unknown
。 - Choletski按照以下步骤操作:
1>从这里下载*.jar文件。
2>将*.jar文件放入eclipse/dropins/文件夹中,并重新启动Eclipse。
3>在Eclipse右上角,单击DDMS图标。
4>在左侧面板中选择正确的模拟器。
5>在主面板的文件浏览器选项卡中,进入/data/data/[YOUR.APP.NAMESPACE]/databases目录。
6>在DDMS图标下方,当您选择数据库时,应该会出现一个新的蓝色数据库图标。单击它,您将看到一个Questoid Sqlite Manager选项卡打开以查看您的数据。
*注意:如果数据库没有变亮,可能是因为您的数据库没有*.db文件扩展名。请确保您的数据库称为[DATABASE_NAME].db
*注意:如果您想使用没有.db扩展名的DB:
-下载此Questoid SqLiteBrowser:从这里下载。
-解压缩并将其放入eclipse/dropins(而不是Plugins)中。
-单击此处了解更多信息Click here。
cordova-sqlite-devtools
,这是一个开源CLI,用于从连接的Android设备中提取sqlite数据库。 https://www.npmjs.com/package/cordova-sqlite-devtools - Justin Lettau