Android阻尼效果 | 自定义进阶之实现MIUI的拖动视差效果
译自:https://blog.mindorks.com/awesome-android-open-source-libraries-56a008c776c0
本文为著名的安卓开源项目作者Amit Shekhar在他的博客上总结和推荐的它认为每个安卓项目都应该用到的20个开源安卓库,他认为这20个安卓开源库是非常好的极力推荐值得在你的app里使用的开源库
Amit Shekhar认为好的第三方开源库的使用能节省你的开发时间和成本,减少开发app的bug。
因为这些android开源都是经过了大量测试和项目实践验证的。而且使用过程中也修复了很多的bug。
Fresco是Facebook出品的一个强大的安卓图形显示库,它帮助你处理图像的读取和显示。它能够读取网络或者本地介质上的资源,也能够以占位符显示没有处理完毕的图像。它有两级缓存:内存缓存以及在本地存储介质中的缓存。
Glide是一个高效快捷的开源安卓媒体管理和图像读取框架,它把媒体解码,内存和磁盘缓存,资源池结合成一个简单易用的界面。这个库专注实现光滑滚动。
OkHttp是一个适用于安卓和JAVA程序的HTTP+HTTP/2客户端。在安卓系统上,Http引擎是网络通信的首选。
基于OkHttp的Fast Android Networking能让网络通信变得简洁(不用样板代码),使得开发者能轻易写出通信代码。它是一个轻量级的快速网络通信库。试试看,你会爱上它。
RxJava — Reactive Extensions for the JVM — 一个用JVM里面的observed sequence来构建异步和基于事件库。
例子:https://github.com/amitshekhariitbhu/RxJava2-Android-Samples
为安卓优化的事件总线(event bus),简化了Activities, Fragments, Threads, Services之间的通信。
Device Year Class会告知当前设备的内存,CPU核和时钟频率在哪一年的产品线里属于高配。它可以让开发者根据手机的硬件性能来让app做出不同的行为。
这个个人强烈推荐,能帮你提高app的性能。优化app
Network Connection Class能够查询当前用户的网络连接质量。它会根据网络质量的不同分成好几种”Connection Classes”(连接分类)让开发更容易。这个库通过监听app已有的网络流量情况并在通信速度改变的时候通知用户。开发者能够通过网络连接情况调节app的行为(比如使用更低质量的影音,停止使用输入提示等等)。
另外,Fast Android Networking 也有这个功能。
Android Debug Database是一个功能强大的用于调试安卓数据库和共享首选项(shared preference)的库。它是一个在浏览器里浏览数据库和共享首选项的简单易用的工具。
LeakCanary是一个安卓和Java上用于检测内存泄漏的一个库。
安卓上强大的图表浏览库,支持诸如线形图,柱形图,饼图,蜡烛图等的图形显示,并提供缩放,拖放和动画支持。
安卓和java的快速的依赖注入库。它简化了对于共用实例的读写,使复杂的依赖设置变的简单,让单元测试和集成测试更加容易。
GreenDAO是一个开源的安卓ORM,它让开发SQLite更有趣。它让开发者不再需要处理数据库底层操作,节省开发的时间。
简单存储,高速查询,节省大量开发时间。Realm Mobile Database是SQLite的一个替代品,一个ORM解决框架。
在安卓原有的Log class之上提供有小型,可扩展API的一个Logger.
通过标注触发为你的debug build自动记录方法调用的日志。作为一个程序员,你经常需要加入logging函数打印程序里面的函数调用,以及参数和返回值,并花时间执行。这不是什么问题,我们每个人都这样做。只是能不能够让它变得更简单一些呢?只要在函数头加上@DebugLog你就能得到我们刚才所讲的所有信息。
提供安卓上高效的基于OpenGL的滤镜的库。
ExoPlayer是一个应用级的安卓媒播放器。它提供的API支持播放本地或者网络上的音频。ExoPlayer支持当前安卓媒体播放器API不支持的功能,比如DASH和Smooth Streaming adaptive playbacks(根据带宽自动实时调节播放分辨率).
一个提供Java对象序列化/反序列化至JSON格式的库。
看完本文有收获?请分享给更多人
Java和Android架构
联系客服