前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pandora 的魔盒里装了什么?

Pandora 的魔盒里装了什么?

作者头像
程序亦非猿
发布2019-08-16 16:23:48
3920
发布2019-08-16 16:23:48
举报
文章被收录于专栏:程序亦非猿程序亦非猿

Photo by Preston Goff

在古希腊的神话中 Pandora 是世界上第一个女人,一个 all-gifted 的女人(具有一切天赋的女人),而潘多拉的魔盒里装着希望。

借着 all-gifted 的寓意,我创建了一个开源库 Pandora,一个非常常用的工具类的集合。

虽然算是 Utils 的集合,但是跟其他的库并不同,这里的类&方法的数量非常少,我只选了极少数我觉得真的非常有用且有大概率复用的类,在保证避免编写大量样板代码的基础之上,减少引入不必要类的可能,防止包体积增大。

所以也可以算是一个『Utils 心选』。

那么就介绍一下 Pandora 的能力啦。

ApplicationUtils

一个可以设置、获取全局 Application 的工具类,Context 在 Android 中非常常用,但是其实很多时候我们不需要传递 Activity 类型的 Context , 使用 ApplicationUtils 可以缓解我们到处传递 Context 的困境。(默认会从 ActivityThread 获取 Application)

applicationutils.png

MainThread

一个关于主线程的工具类,可以方便地将 Runnable post 到主线程执行

mainthread.png

ToastUtils

一个全局单例 Toast ,解决多次实例化 Toast 导致不停弹 Toast 的问题

toastutils.png

LifecycleHandler

在使用 Handler 的时候我们总是担心 Handler 会导致内存泄露,于是我们每次都会在 onDestroy 方法里移除 Handler 的消息,编写样板代码,LifecycleHandler 的出现就是为了解决这个困境,使用它,你不再需要关注 onDestroy 啦!

lifecyclehandler.png

UiUtils

Android 开发不可避免的要跟像素 dp 等打交道,UiUtils 包含一些数据单位转换的操作。

uiutils.png

Predictions

一个用来做”断言”的功能的工具类,用来验证判断参数是否合法。 虽然我们有 NonNull 等注解 ,但是依然避免不了外部传递非法参数,这个时候我们避免不了写样板代码,检测参数是否非法,如果是则抛出异常,Predictions 可以让你少写一些检查抛、异常的样板代码

predictions.png

有没有觉得很好用?

需要我们自己再写一遍吗?

Of course not!

心系船员的我早已经上传到就jcenter 啦,一句依赖即可拥有以上所有能力哟:

代码语言:javascript
复制
    implementation 'me.yifeiyuan.pandora:pandora:1.0.3-basic'

这么优秀的库一定要 star 一下!

GitHub 地址:

https://github.com/AlanCheen/Pandora

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序亦非猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Photo by Preston Goff
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档