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

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

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

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


当前回答

不使用模拟器时最简单的方法

$ adb shell
$ run-as your.package.name
$ chmod 777 databases
$ chmod 777 databases/database_name
$ exit
$ cp /data/data/your.package.name/databases/database_name /sdcard
$ run-as your.package.name # Optional
$ chmod 660 databases/database_name # Optional
$ chmod 660 databases # Optional
$ exit # Optional
$ exit
$ adb pull /sdcard/database_name

警告:

我有段时间没测试了。API>=25时可能不起作用。 如果cp命令不适合你,试试下面的命令:

# Pick a writeable directory <dir> other than /sdcard
$ cp /data/data/your.package.name/databases/database_name <dir>

# Exit and pull from the terminal on your PC
$ exit
$ adb pull /data/data/your.package.name/databases/database_name

解释:

第一个块将数据库的权限配置为可读。这利用了run-as,它允许您模拟包的用户来进行更改。

$ adb shell
$ run-as your.package.name
$ chmod 777 databases
$ chmod 777 databases/database_name
$ exit # Closes the shell started with run-as

接下来,我们将数据库复制到一个世界可读/可写目录。这允许adb拉用户访问。

$ cp /data/data/your.package.name/databases/database_name /sdcard

然后替换现有的读写权限。这对于您的应用程序的安全性很重要,但是特权将在下次安装时被替换。

$ run-as your.package.name
$ chmod 660 databases/database_name 
$ chmod 660 databases
$ exit # Exit the shell started with run-as

最后,将数据库复制到本地磁盘。

$ exit # Exits shell on the mobile device (from adb shell) 
$ adb pull /sdcard/database_name

其他回答

在Android 4.1 Canary 5预览版中引入了新的数据库检查器,您现在可以直接从IDE - https://developer.android.com/studio/preview/features?linkId=86173020#database-inspector检查、查询、修改和调试正在运行的应用程序中的SQLite数据库

支持数据库实时查询以及- https://developer.android.com/studio/preview/features?linkId=86173020#query

最简单的方法是使用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上的图书馆页面。

简单和容易的方法来查看Android工作室中的数据库内容。

# Android Studio 4.1 Canary 6及更高版本

你可以使用非常简单的Android Studio的数据库检查器功能。 在这里,您可以使用新的数据库检查器检查,查询和修改应用程序的数据库。例如,你可以通过修改数据库中的值来调试正在运行的应用程序,并在不离开Android Studio的情况下在设备上实时测试这些更改。

首先,将应用程序部署到运行API级别26或更高的设备上,并从菜单栏中选择“查看>工具Windows >数据库检查器”。

# Android Studio 4.0及以下版本

首先,在Android Studio中安装数据库导航插件

第二,重启Android Studio

第三,将数据库保存到默认位置,如:(C:\Users\User . 名称\文档\AndroidStudio\DeviceExplorer\模拟器或设备\数据\数据\包名\数据库)

第四,连接数据库导航器中保存的dbname_db文件

给出第三步中使用的相同的DB文件路径

i.e . (C)

最后,只需测试DB连接和打开控制台,做任何你想做的事情。

如果你想要刷新数据库,请重复步骤2并保存或刷新。

编码快乐! !

Android Studio 3。X

视图->工具Windows ->设备文件资源管理器 在文件资源管理器中data->data->com. com。(个人包)- >数据库 右键单击数据库并保存到本地机器上。要打开文件,可以使用SQLite Studio,只需拖动数据库文件。

下面是SQLite Studio的链接: https://sqlitestudio.pl/index.rvt?act=download

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

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

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

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

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

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