我又开发了一个非常好用的开源库,调试Android数据库有救了 (1)

并且,我对Glance的定位不仅仅只是一个协助查看数据库内容的工具,同时也是一个非常好的学习项目。在编写Glance的时候,我特意使用了许多Google目前最推荐使用的各项新技术,包括Kotlin、协程、Paging3、App Startup、MVVM等等等等,基本都是按照最标准的项目开发规范去实现的。所以,学习这个项目的源码相信也会对你的开发水平有非常大的帮助。

我大概是从8月中旬的时候开始着手编写的这个项目,到11月份的时候基本就将所有主要的功能都开发完成了。期间还进行了一轮小范围的内部测试,几位热心群友帮我发现了好几个颇为严重的bug,我又对此一一进行了修复。

那么现在,我认为这可以算是一个相对比较稳定的版本了。但是由于毕竟是全新的开源库,我还不敢直接发布1.0.0版本,因此这次发布的是1.0.0-alpha01版本。大家如果在使用的过程中发现了任何问题,很正常,反馈给我即可,我会尽快进行修复。

好了,接下来就向大家介绍Glance的具体用法吧。其实真的非常非常简单,只需要使用如下语句将Glance引入到你的项目当中:

dependencies {
debugImplementation ‘com.glance.guolindev:glance:1.0.0-alpha01’
}

然后就结束了。

没错,就是这么简单,Glance没有提供任何对外的API,所以也不需要你进行什么代码对接操作,只要将依赖库引入到你的项目当中,就算是对接完成了。

注意上述的引用语句中我们使用的关键字是debugImplementation,这个关键字相信大家用的比较少,通常我们使用的都是implementation关键字。那么debugImplementation是什么意思呢?它表示只有在你的项目是debug版的时候,才会将Glance引入到你的项目当中,而release版是不会包含Glance库的。

这是一种最为安全的做法,因为如果release版中引入了Glance库,相当于给你的应用程序留了个后门,是有可能引起数据库安全问题的。

接下来就像平常那样运行你的程序就可以了,你会发现,你的手机桌面上将会多出一个Glance的图片,如下图所示。

这个图标就是引入了Glance库之后自动生成的,点击该图标即可打开Glance的可视化界面,如下图所示。

在这里,Glance会自动开始扫描当前应用程序的内置和外置存储空间,将所有的数据库文档全部搜索到,并一一列出。

比如上图中的demo1.db就是我当前项目工程中的一个数据库文件,internal storage表示它是存放在内置存储空间下的。

点击demo1.db,即可打开这个数据库文件,并将该数据库中的所有表罗列出来,如下图所示。

当然这里列出的表并不全部都是由我们自己创建的,比如android_metadata、sqlite_sequence这些表就是自动生成的。但Glance并不会对此进行区分,而是会把它们全部罗列出来。

接下来点击magazine表,我们即可查看表中的数据。横向滚动可以查看所有的列,纵向滚动可以查看所有的行,如下图所示。

这里对表中的数据进行加载使用了分页技术,所以即使你的表中有上百万条数据,也会非常快速地加载出来。而Glance的分页技术是使用Paging3实现的,对Paging3感兴趣的朋友可以参考参考这部分的源码。

到这里为止,我们就可以非常方便地随时查看当前应用程序数据库中的数据了。相比于之前还要想办法导出数据库文件,发送到电脑上,再借助第三方工具进行查看,是不是简单了千百倍?

即使相比于Database Inspector,我认为Glance也是有很大优势的,毕竟你不需要借助电脑,也不需要打开Android Studio才能查看。

另外,假如你的数据库文件发生了变化,Glance也可以迅速地感知到。比如我们向当前应用程序的外置存储空间当中添加一个新的数据库文件,如下图所示。

可以看到,当回到Glance的可视化界面之后,迅速就能发现新增了一个demo2.db,external storage表示它是存放在空间存储空间下的。

然后我们就可以立刻查看demo2.db当中的全部数据了。

那么关于Glance的用法介绍到这里大概就差不多了。因为毕竟它的主要功能就是一个辅助型的工具,并不是什么需要去开发和对接的库,所以整体用法是非常简单的。

接下来我想聊一聊Glance的限制,至少在目前第一个版本中,这些限制是需要提醒大家的。

首先,Glance只提供对数据库进行查看的功能,并不提供修改和删除的功能。当然之所以不支持修改和删除,并不是因为什么其他特殊的原因,纯粹只是因为我没时间。为了能赶在今年内上线第一个版本,我选择了只开发了最核心的查看功能。

在接下来的版本更新当中,修改和删除数据库的功能会有极大的概率被加入进去。

第二,Glance只支持使用AndroidX架构的项目,并且未来也只会支持AndroidX架构。如果你的项目还在使用Support Library架构,那么很遗憾,你将无法使用Glance。

关于这个限制我其实思考了很久,因为本身查看数据库功能和AndroidX架构一点关系都没有。但是我在Glance当中使用了大量最新的Google技术,如协程、Paging3、App Startup等等,这些新技术都是只支持AndroidX架构的。那么到底是为了更好的兼容性而不使用这些新技术,还是为了让Glance更具有学习意义而使用这些新技术,我最终选择了后者。

另外我相信,AndroidX终将是趋势,即使现在还在使用Support Library的项目,在不久的将来也必然会转换到AndroidX架构上,所以对此我并不是很担心。

好了,关于Glance第一个版本的所有介绍就到这里。也很高兴我将今年定下的最后一个小目标也实现了,这一年真的可以说是收获满满。

最后附上Glance的开源库地址,想学习源码的朋友不要错过哦。另外也请帮我随手点个star,谢谢大家。
github.com/guolindev/G…


如果想要学习Kotlin和最新的Android知识,可以参考我的新书 《第一行代码 第3版》点击此处查看详情

关注我的技术公众号,每个工作日都有优质技术文章推送。

微信扫一扫下方二维码即可关注:

最后

为了方便有学习需要的朋友,我把资料都整理成了视频教程(实际上比预期多花了不少精力)

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

  • 无论你现在水平怎么样一定要 持续学习 没有鸡汤,别人看起来的毫不费力,其实费了很大力,这四个字就是我的建议!!
  • 我希望每一个努力生活的IT工程师,都会得到自己想要的,因为我们很辛苦,我们应得的。

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

无论你现在水平怎么样一定要 持续学习 没有鸡汤,别人看起来的毫不费力,其实费了很大力,没有人能随随便便成功。

加油,共勉。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
,共勉。**
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值