数据库还可以这么看?(Android Studio 4.1 新特性)

简介:

云栖号资讯:【点击查看更多行业资讯
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!


对于大部分 Android 开发者来说,Sqlite 数据库肯定不陌生。记得我人生前几次的面试当中,还遇到过要求徒手写一个增删改查的客户端。那么,你们一般都是如何查看或者调试数据库的呢?

你是如何查看和调试数据库的 ?

我们都知道,数据库文件是存在应用沙盒中的,无法直接查看。当然 root 过的手机可以直接导出来,通过 Android Studio 自带的 Device File Explorer 也可以导出来,在 PC 端通过任何数据库软件都可以查看,例如 Navicat 等等。

这样做其实很麻烦,业界一些优秀的开源库提供了一种解决方案,那就是 Android-Debug-Database ,github 地址如下:

https://github.com/amitshekhariitbhu/Android-Debug-Database

在项目中集成之后,可以在浏览器端直接查看,修改,编辑当前应用的数据库文件。不仅仅是数据库文件,SharedPreference 文件也可以进行操作。由于都是私有目录中的文件,其实都是一样的原理。README 中给出了一张浏览器截图,大家可以看一下:

1

相比原来的导出到 PC 查看,效率大大提升。最近滴滴开源的 DoraemonKit 也提供了类似的浏览器查看数据库功能,相信原理也都是类似的。这里就不再介绍了。

太麻烦了 ?

什么?查看个数据库还要我集成一个库?还要我打开浏览器?不知道 Chrome 吃内存吗?

其实,这种无脑的工作就应该交给 IDE 来做嘛。在 Android Studio 4.1 Canary 5 以及更高版本 上,内置了 Database Inspector ,提供了以下功能:

  • 查询和修改表数据
  • 执行查询语句
  • 执行 Dao 文件中定义的 Room 查询语句

我这里以大家比较熟悉的 sunflower 工程为例,来演示一下以上功能。

Database Inspector 使用

查看和修改表数据

打开方式如下图所示:

1

Database Inspector 会自动列出当前可调试的进程,以及该进程的应用所包含的数据库中的所有表。如下图所示,sunflower 应用包含 garden_plantings 和 plants 两张表,分别表示 我的花园中的植物 和 所有的植物。

2

左侧会列出应用的所有数据库,双击数据库,下拉列表中会展示出该数据库下的所有表。双击表,会在右侧视图中展示当前表中的所有数据。
表中的任何数据都是可以修改的。双击任意一项,修改之后,回车保存。这时候你在 App 上刷新页面,就可以看到变化。

反之,你在 App 上进行涉及到数据库操作的修改,只需要在 Database Inspector 上点击刷新即可看到修改。(注意,这不是实时的,你得手动刷新才能看到修改)。

你可以在我的花园中添加植物之后,再去刷新 garden_plantings 表,就可以立即看到修改了。

执行 SQL

除了查看和修改表数据,Database Inspector 还提供了一项能力,执行 SQL 语句 ,这也是大多数 PC 上的数据库软件所具备的功能。通过下面的动图演示一下:

3

结合 Room

Room 作为 Google 亲儿子,肯定少不了优待。你在 Room 中通过 @Query 注解标记的接口方法,可以在 Android Studio 中直接执行并在 Database Inspector 中直接展示执行结果。通过下面的动图演示一下:

4

从上面的 gif 也可以看到,当被执行的方法需要查询参数时,会让我们输入参数。对于 @Insert 、@Delete 等标记的非查询方法,是不支持直接运行的。

最后

可以说,Database Inspector 大大提升了我们的数据库使用体验,特别是针对 Room 。别忘了使用条件:

  • Android Studio 4.1 Canary 5 及以上版本API 26 以上的手机
  • Android Studio 4.1 另一个大更新就是对 Jetpack Compose 的强力支持了。

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/zhibo

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-04-13
本文作者:秉心说TM
本文来自:“掘金”,了解相关信息可以关注“掘金”

相关文章
|
1月前
|
网络协议 关系型数据库 MySQL
如何实现无公网ip远程访问本地安卓Termux部署的MySQL数据库【内网穿透】
如何实现无公网ip远程访问本地安卓Termux部署的MySQL数据库【内网穿透】
|
3月前
|
存储 数据库连接 数据库
Android数据存储:解释SQLite数据库在Android中的使用。
Android数据存储:解释SQLite数据库在Android中的使用。
40 0
|
3月前
|
人工智能 IDE 开发工具
Studio Bot - 让 AI 帮我写 Android 代码
Studio Bot - 让 AI 帮我写 Android 代码
151 1
|
9天前
|
监控 API Android开发
构建高效安卓应用:探究Android 12中的新特性与性能优化
【4月更文挑战第8天】 在本文中,我们将深入探讨Android 12版本引入的几项关键技术及其对安卓应用性能提升的影响。不同于通常的功能介绍,我们专注于实际应用场景下的性能调优实践,以及开发者如何利用这些新特性来提高应用的响应速度和用户体验。文章将通过分析内存管理、应用启动时间、以及新的API等方面,为读者提供具体的技术实现路径和代码示例。
|
1月前
|
编译器 开发工具 Android开发
Android 12 新特性深度解析
【2月更文挑战第15天】 随着移动操作系统的不断进化,Android 12带来了一系列创新功能与性能提升。本文将深入剖析Android 12的核心新特性,包括隐私仪表盘、通知管理、设备控制以及性能优化等方面,为开发者和用户提供全面的更新指南。
|
1月前
|
存储 SQL 数据库
【Android 从入门到出门】第六章:使用Room数据库并测试
【Android 从入门到出门】第六章:使用Room数据库并测试
29 4
|
1月前
|
网络协议 关系型数据库 MySQL
安卓手机termux上安装MariaDB数据库并实现公网环境下的远程连接
安卓手机termux上安装MariaDB数据库并实现公网环境下的远程连接
|
1月前
|
关系型数据库 MySQL 测试技术
数据库专家带你体验PolarDB MySQL版 Serverless的极致弹性特性!
本次基于阿里云瑶池数据库解决方案体验馆,带你体验PolarDB MySQL Serverless形态下的性能压测环境,基于可选择的标准压测工具进行压测,构造弹性场景进行压测,实时动态展示弹性能力、价格和性价比结果,压测环境可开放定制修改、可重复验证。参与活动即有机会获得鼠标、小米打印机、卫衣等精美礼品。
数据库专家带你体验PolarDB MySQL版 Serverless的极致弹性特性!
|
2月前
|
关系型数据库 MySQL 测试技术
数据库专家带你体验PolarDB MySQL版 Serverless的极致弹性特性
本次基于阿里云瑶池数据库解决方案体验馆,带你体验PolarDB MySQL Serverless形态下的性能压测环境,基于可选择的标准压测工具进行压测,构造弹性场景进行压测,实时动态展示弹性能力、价格和性价比结果,压测环境可开放定制修改、可重复验证。参与活动即有机会获得鼠标、小米打印机、卫衣等精美礼品。
|
2月前
|
数据库 Android开发 数据库管理
【Android】使用android studio查看内置数据库信息
【Android】使用android studio查看内置数据库信息
60 0