Pandora 的魔盒里装了什么?

image
image

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

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

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

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

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

<a name="ApplicationUtils"></a>

ApplicationUtils

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

applicationutils.png
applicationutils.png

<br />

<a name="MainThread"></a>

MainThread

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

mainthread.png
mainthread.png

<br />

<a name="ToastUtils"></a>

ToastUtils

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

toastutils.png
toastutils.png

<br />

<a name="LifecycleHandler"></a>

LifecycleHandler

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

lifecyclehandler.png
lifecyclehandler.png

<a name="UiUtils"></a>

UiUtils

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

uiutils.png
uiutils.png

<a name="Predictions"></a>

Predictions

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

predictions.png
predictions.png

一句依赖即可拥有以上所有能力哟:

implementation 'me.yifeiyuan.pandora:pandora-basic:1.0.3'

github 地址:https://github.com/AlanCheen/Pandora

欢迎 star !~

推荐阅读更多精彩内容