Pandora 的魔盒里装了什么?
在古希腊的神话中 Pandora 是世界上第一个女人,一个 all-gifted 的女人(具有一切天赋的女人),而潘多拉的魔盒里装着希望。
借着 all-gifted 的寓意,我创建了一个开源库 Pandora,一个非常常用的工具类的集合。
虽然算是 Utils 的集合,但是跟其他的库并不同,这里的类&方法的数量非常少,我只选了极少数我觉得真的非常有用且有大概率复用的类,在保证避免编写大量样板代码的基础之上,减少引入不必要类的可能,防止包体积增大。。
所以也可以算是一个『Utils 心选』。
那么就介绍一下 Pandora 的能力啦。
<a name="ApplicationUtils"></a>
ApplicationUtils
一个可以设置、获取全局 Application 的工具类,Context 在 Android 中非常常用,但是其实很多时候我们不需要传递 Activity 类型的 Context , 使用 ApplicationUtils
可以缓解我们到处传递 Context 的困境。(默认会从 ActivityThread 获取 Application)
<br />
<a name="MainThread"></a>
MainThread
一个关于主线程的工具类,可以方便地将 Runnable post 到主线程执行。
mainthread.png<br />
<a name="ToastUtils"></a>
ToastUtils
一个全局单例 Toast ,解决多次实例化 Toast 导致不停弹 Toast 的问题。
toastutils.png<br />
<a name="LifecycleHandler"></a>
LifecycleHandler
在使用 Handler 的时候我们总是担心 Handler 会导致内存泄露,于是我们每次都会在 onDestroy 方法里移除 Handler 的消息,编写样板代码,LifecycleHandler 的出现就是为了解决这个困境,使用它,你不再需要关注 onDestroy 啦!
lifecyclehandler.png<a name="UiUtils"></a>
UiUtils
Android 开发不可避免的要跟像素 dp 等打交道,UiUtils 包含一些数据单位转换的操作。
uiutils.png<a name="Predictions"></a>
Predictions
一个用来做”断言”的功能的工具类,用来验证判断参数是否合法。<br />虽然我们有 NonNull 等注解 ,但是依然避免不了外部传递非法参数,这个时候我们避免不了写样板代码,检测参数是否非法,如果是则抛出异常,Predictions 可以让你少写一些检查抛、异常的样板代码。
predictions.png一句依赖即可拥有以上所有能力哟:
implementation 'me.yifeiyuan.pandora:pandora-basic:1.0.3'
github 地址:https://github.com/AlanCheen/Pandora
欢迎 star !~