自应用发布以来,我一直在使用Android Studio开发应用。

直到最近,一切都很好,我必须调试和检查数据库文件。由于我不知道如何直接看到数据库,当我调试生成数据库文件时,我不得不将数据库文件从我的手机导出到PC上。

为此,我必须打开DDMS >文件资源管理器。一旦我打开DDMS,我必须重新连接USB,我失去了调试线程。在检查数据库文件之后,我必须关闭DDMS并重新连接USB以回到调试模式。

这太复杂了。有人有更好的方法来做到这一点在Android Studio(我知道它更容易在Eclipse) ?


当前回答

在Android Studio 3及以上,你可以在Android Studio右下角看到一个“设备文件资源管理器”部分。

打开它,然后你可以看到文件树,你可以在这个路径下找到一个应用程序数据库:

/data/data/{package_name}/databases/

右键单击db文件并另存为…(然后保存到桌面)。

然后使用SQLite sqlitebrowser.org(先下载并安装),单击“打开数据库”,选择保存的*.db文件,然后选择“浏览数据”选项卡并选择表以查看其内容。

其他回答

最后,我找到了一个最简单的解决方案,不需要打开DDMS。

实际上,解决方案是基于@Distwo提到的,但它不必那么复杂。

首先,记住数据库文件在设备中的路径,它应该始终相同。 例如我的是:/data/data/com.XXX.module/databases/com.XXX.module.database

其次,执行这个命令,将数据库文件拉到PC上

 adb pull /data/data/com.XXX.module/databases/com.XXX.module.database /Users/somePathOnYourPC/

您需要做的就是复制并存储这个命令,然后您就可以一次又一次地使用它。

第三,如果你得到了Permission Denied或类似的情况,只需在前面的命令之前运行adb root。

Follow the above steps to open the database folder of your app in Android Device explorer and in there you can see six files, The first three is named as android and the last three is named as your database name. You only have to work with the last three files, save these three files at your preferred location. You can save these files by right-clicking to the file and click save as button (like I have my database named as room_database and so three files are named as room_database, room_database-shm, and room_database-wal. Rename the corresponding file as follows:-

1)从room_database到room_database.db 2) room_database-shm到room_database.db-shm 3) room_database-wal到room_database.db-wal

现在在任何SQLite浏览器中打开第一个文件,这三个文件都将被填充到浏览器中。

我把这个过程的unix命令行自动化放在一起,并把代码放在这里:

https://github.com/elliptic1/Android-Sqlite3-Monitor

它是一个shell脚本,以包名和数据库名作为参数,从附加的Android设备下载数据库文件,并针对下载的文件运行自定义脚本。然后,使用像“watch”这样的unix工具,你可以打开一个终端窗口,定期更新数据库脚本输出的视图。

我想知道为什么这里没有提到这个解决方案!

...在Android Studio 4.1及更高版本中…

1.在运行API级别26或更高的模拟器或连接设备上运行应用程序。

2.在菜单栏中选择“View > Tool Windows > Database Inspector”。

3.从下拉菜单中选择正在运行的app进程。

4.当前运行的应用程序中的数据库显示在“数据库”窗格中。展开要检查的数据库的节点。

最简单的方法是使用Android调试数据库库(GitHub上的7.7k星)。

优点:

快速实现 查看所有数据库和共享首选项 直接编辑、删除、创建数据库值 在给定的数据库上运行任何SQLite查询 在数据中搜索 下载数据库 添加自定义数据库文件 不需要根设备

使用方法:

添加debugImplementation 'com.amitshekhar.android:debug-db:1.0.6'来构建。gradle(模块); 启动应用程序; 找到日志中的调试链接(在LogCat中)(即D/DebugDB:在浏览器中打开http://192.168.232.2:8080,链接会不一样)并在浏览器中打开; 享受强大的调试工具!

重要的是:

不幸的是,它不能与模拟器一起工作 如果您通过USB使用它,请运行adb forward tcp:8080 tcp:8080 你的Android手机和笔记本电脑应该连接到同一个网络(Wifi或局域网)

欲了解更多信息,请访问GitHub上的图书馆页面。