数据库还可以这么看?(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 中给出了一张浏览器截图,大家可以看一下:
相比原来的导出到 PC 查看,效率大大提升。最近滴滴开源的 DoraemonKit 也提供了类似的浏览器查看数据库功能,相信原理也都是类似的。这里就不再介绍了。
太麻烦了 ?
什么?查看个数据库还要我集成一个库?还要我打开浏览器?不知道 Chrome 吃内存吗?
其实,这种无脑的工作就应该交给 IDE 来做嘛。在 Android Studio 4.1 Canary 5 以及更高版本 上,内置了 Database Inspector ,提供了以下功能:
- 查询和修改表数据
- 执行查询语句
- 执行 Dao 文件中定义的 Room 查询语句
我这里以大家比较熟悉的 sunflower 工程为例,来演示一下以上功能。
Database Inspector 使用
查看和修改表数据
打开方式如下图所示:
Database Inspector 会自动列出当前可调试的进程,以及该进程的应用所包含的数据库中的所有表。如下图所示,sunflower 应用包含 garden_plantings 和 plants 两张表,分别表示 我的花园中的植物 和 所有的植物。
左侧会列出应用的所有数据库,双击数据库,下拉列表中会展示出该数据库下的所有表。双击表,会在右侧视图中展示当前表中的所有数据。
表中的任何数据都是可以修改的。双击任意一项,修改之后,回车保存。这时候你在 App 上刷新页面,就可以看到变化。
反之,你在 App 上进行涉及到数据库操作的修改,只需要在 Database Inspector 上点击刷新即可看到修改。(注意,这不是实时的,你得手动刷新才能看到修改)。
你可以在我的花园中添加植物之后,再去刷新 garden_plantings 表,就可以立即看到修改了。
执行 SQL
除了查看和修改表数据,Database Inspector 还提供了一项能力,执行 SQL 语句 ,这也是大多数 PC 上的数据库软件所具备的功能。通过下面的动图演示一下:
结合 Room
Room 作为 Google 亲儿子,肯定少不了优待。你在 Room 中通过 @Query 注解标记的接口方法,可以在 Android Studio 中直接执行并在 Database Inspector 中直接展示执行结果。通过下面的动图演示一下:
从上面的 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
本文来自:“掘金”,了解相关信息可以关注“掘金”
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
面试被问微服务答不上?分享微服务设计指南,你有什么可豪横的!
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 每个人都听说过微服务。但你知道怎么设计吗? 微服务是当今软件工程师的一个热门话题。让我们了解如何使用微服务架构风格构建真正模块化、业务敏捷的IT系统。 正式定义 “微服务架构风格是一种将单个应用程序开发为一组小型服务的方法,每个小服务运行在自己的进程中,并且以轻量级机制(通常是HTTP REST API)通信。这些服务是围绕业务能力建立的,并且可以由完全自动化的部署机构独立部署。这些服务的集中管理只有最低限度,可以用不同的编程语言编写并使用不同的数据存储技术。” —— James Lewis and Martin Fowler 定义微服务的特性 每个服务都是一个轻量级、独立和松散耦合的业务单元。 每个服务都有自己的代码库,由一个小团队管理和开发(主要是用于敏捷环境中)。 每个服务负责一部分功能或者说业务能力,并且做得很好。 每个服务都可以为其用例选择最佳的技术栈(无需将整个应用程序绑定在一个框架中)。 每个服务都有自己的DevOps计划(测试、发布、部署、扩展、集成和独立维护)。 每个服...
- 下一篇
物联网在教育中的应用
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 物联网(IoT)对教育机构产生了重大影响。教育机构正在选择物联网生态系统,并利用从增强现实到云计算的各种技术。随着物联网技术的集成,物理环境将变得比以往任何时候都更智能、更互联。在讨论教育中的物联网时,人们可能会想到诸如先进的智能教室、数字白板和基于语音命令之类的东西。 但是,物联网已经取得了长足的进步,可以用来使父母了解孩子的接送情况、校园内的智能安全摄像头、学生出勤的自动跟踪等,并且可以在物联网生态系统中完成更多其他工作。 物联网在教育中的作用 随着科技的进步,我们的下一代已经沉迷于互联网。这就出现了一个问题,教育系统中的物联网会对学生产生积极影响还是消极影响。目前正在研究许多挑战,例如隐私和教育技术的额外成本。许多教育机构仍然不愿意接受物联网,并正在其系统中寻找其他更合适的解决方案。教育中的物联网可以大致分为学生和工作人员两个方面。 从工作人员的角度来看,物联网有潜力管理学生的出勤情况和必要教育设备的可用性。在教育机构的多个位置(如图书馆、自助餐厅和入口)安装物联网传感器有助于跟踪...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Red5直播服务器,属于Java语言的直播服务器
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19
- CentOS关闭SELinux安全模块
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度