在Android Studio 4.1及更高版本中,数据库检查器允许你在应用程序运行时检查、查询和修改应用程序的数据库。这对于数据库调试特别有用。Database Inspector可与普通SQLite以及基于SQLite构建的库一起使用,例如Room。
注意:Database Inspector仅与API级别26或更高版本的Android操作系统中包含的SQLite库一起使用。它不适用于与你的应用程序绑定在一起的其他SQLite库。
打开Database Inspector
要在数据库检查器中打开数据库,请执行以下操作:
- 在运行API级别26或更高版本的模拟器或连接设备上运行你的应用程序
- 从菜单栏中选择View > Tool Windows > Database Inspector
- 从下拉菜单中选择正在运行的应用程序进程
- 当前正在运行的应用程序中的数据库将显示在“数据库”窗格中。展开要检查的数据库的节点。
查看和修改数据
Database面板显示应用程序中的数据库列表以及每个数据库包含的表。双击表名以在右侧的Inspector面板中显示其数据。你可以单击列标题以按该列对Inspector面板中的数据进行排序。
你可以通过双击单元格,键入新值,然后按Enter来修改表中的数据。如果你的应用程序使用Room且UI观察到了数据库(例如,使用LiveData或Flow),则你对数据所做的任何更改都将立即在运行的应用程序中显示。否则,更改仅在你的应用下次读取数据库中的修改数据时可见。
查看实时数据库更改
如果你希望Database Inspector在与正在运行的Application交互时自动更新其显示的数据,请选中Inspector面板顶部的“Live updates”复选框。启用实时更新后,Inspector面板中的表将变为只读状态,并且你无法修改其值。
或者,你可以通过单击Inspector面板顶部的“Refresh table”按钮来手动更新数据。
查询你的数据库
在Application运行时,Database Inspector可以对你的Application数据库进行查询。如果你的应用使用Room,该工具可以使用DAO查询,但它也支持自定义SQL查询。
运行DAO查询
如果你的应用程序使用Room,则Android Studio提供了gutter操作,可让你快速运行DAO类中已定义的查询方法。在你的应用程序运行且IDE中打开了Database Inspector时,可以执行这些操作。你可以在DAO中运行任何查询方法,方法是单击其@Query注解旁的按钮。
如果你的Application包含多个数据库,则Android Studio会提示你从下拉列表中选择要查询的数据库。如果你的查询方法包含命名的绑定参数,则Android Studio会在运行查询之前为每个参数请求值。查询结果显示在Inspector面板中。
运行自定义SQL查询
你还可以在Application运行时使用Database Inspector对Application的数据库运行自定义SQL查询。要查询数据库,可以按照下列步骤操作:
1.单击Database面板顶部的打开新查询按钮,以在Inspector面板打开一个新选项卡
2.如果你的Application包含多个数据库,从“新建查询”选项卡顶部的下拉列表中选择要查询的数据库
3.在“新建查询”选项卡顶部的文本字段中键入自定义SQL查询,然后单击“Run”
“新查询”选项卡中显示的查询结果是只读的,无法修改。 但是,您可以使用自定义SQL查询字段来运行修饰符语句,例如UPDATE,INSERT或DELETE。 如果您的应用程序使用Room且UI观察到了数据库(例如,使用LiveData或Flow),则您对数据所做的任何更改都将立即在运行的应用程序中显示。 否则,更改仅在您的应用下次读取数据库中的修改数据时可见。
保持数据库连接打开
Database Inspector只有在你的App维护与数据库的实时连接时,才能与该数据库进行交互。这意味着如果你的App频繁的与数据库连接或断开连接,则可能很难检查这些数据库。Database面板使用图标定义数据库打开,使用图标
定义数据库关闭。
此外,您可以通过在“数据库”窗格顶部将“保持数据库连接打开”从“关闭”()切换为“开启”(
)来防止数据库连接关闭。