本地数据库的创建和管理是大多数移动应用工程中的核心组件之一,一般会通过直接使用 SQLite或 Jetpack Room 持久化库来完成。开发者们也在不断地寻求着更好的方式,使其能够在运行中的应用中直接检查和调试数据库。
最新的 Android Studio 4.1 (目前处于 Canary 版本) 内置了叫作 Database Inspector(数据库检查器) 的工具,它可以帮助开发者在已运行的应用中检查、请求以及修改数据库。
有了Database Inspector,修改数据库就和编辑电子表格一样简单。如果正在使用Jetpack Room并观察请求结果,对数据库的修改会直接体现在应用里。
这里,我用的是一个简易的NotePad应用来对Database Inspector的使用进行一些测试,这里使用NotePad是一个简易的笔记应用,提供了简单的添加、查询笔记的功能,大家感兴趣的可以克隆这个NotePad代码仓库,并且按照本文的操作自行尝试体验一下,也可以使用官方推荐的Sunflower应用来体验Database Inspector的一些操作,Sunflower的代码仓库。
Database Inspector的具体使用
==================================================================================
首先
NotePad App 的UI提供了两个简单的添加笔记和查询笔记的功能:
点击这两个按钮我们就可以分别进行笔记的新建和查询,我们下面的Database Inspector操作都会围绕着这两个功能进行。
查看数据库
从菜单栏依次选择View > Tool Windows > Database Inspector,就能在Android Studio里打开 Database Inspector。首次打开工程的时候,需要静待工程编译完成后才会出现Databa Inspector的选项。
△ 在菜单栏中依次选择 View > Tool Windows > Database Inspector 来打开 Database Inspector
这样就打开了 Database Inspector的窗口:
△ Database Inspector 窗口
但是运行 Database Inspector 需要在API Level 26 或者更高的设备上,在下拉菜单里选择你刚刚启动的应用的进程:
△ 在下拉菜单中选择运行中的应用进程
选择
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享
正在运行中的应用进程之后,数据库的架构就会出现在下面的面板上。如果要查看NotePad的数据库表,就需要你找到Databases并展开note_pad.db:
△ 一旦选择了进程,应用相关的数据库就会列出来
修改数据库
如上图所示,NotePad应用包含notes这一张表,表示我的笔记中的所有笔记信息。双击表,会在右侧视图中展示当前表中的所有数据:
△ 数据库表数据
表中的任何数据都是可以修改的,双击任意一项,修改之后,回车保存,这时候你在APP上刷新页面,就可以看到变化。
△ 在表中修改数据后,在app刷新页面即可看到变化
反之,你再APP上进行涉及到数据库操作的修改,只需要在 Database Inspector 上点击刷新即可看到修改。(注意,这不是实时的,你得手动刷新才能看到修改)。
△在app上修改后,需要刷新数据库才能看到修改
当然,你也可以在Database Inspector 里勾选Live updates (实时刷新)。当启用 Live updates 之后,Database Inspector 会自动显示应用里对数据库所做的修改。(注意,当你勾选Live updates之后,你无法再在Database Inspector中对数据进行修改)
△ 对数据库的修改会直接展示出来
除了查看和修改数据之外,Database Inspector还提供了一项能力,执行SQL语句,这是大多数据库软件所具备的功能之一。
通过点击Database Inspector窗口左侧表格视图上方的Open New Query tab按钮,就可以在右侧新建一个查询窗口。
△ 执行SQL语句
目前我只测试了比较简单的查询语句,较复杂的查询语句,比如嵌套查询等还没有尝试过,不知道Database Inspector对查询的支持是否友好,感兴趣的朋友可以自己试一试。
结合Room
当然,Room作为 Google 亲儿子,肯定少不了优待。你在 Room 中通过 @Query
注解标记的接口方法,可以在 Android Studio 中直接执行并在 Database Inspector 中直接展示执行结果。
从上面的 gif 也可以看到,当被执行的方法需要查询参数时,会让我们输入参数。对于 @Insert
、@Delete
等标记的非查询方法,是不支持直接运行的。
最后
=============================================================
可以说,Database Inspector大大提升了我们对数据库的使用体验,使我们在调试数据库的时候,可以像编辑Excel一样的简单,直接修改直接生效,不用再一点一点的去Debug了,可以说是非常实用的。
想体验 Database Inspector 工具可以点击这里下载最新的 Android Studio 4.1 Canary 版本。
参考文章:https://cloud.tencent.com/developer/article/1632543
作者:詹尧宇