你的每个安卓项目都该用到的 19 个开源库

11,283 阅读6分钟
原文链接: www.geeksense.cn
编者按

著名的安卓开源项目作者Amit Shekhar在他的博客上总结了他认为每个安卓项目都应该用到的19个开源安卓库,原文请点击 这里

未经许可,禁止转载

我也是一个非常喜欢开源软件的人,自己用心做了不少安卓上使用的库,也同样收到了社区的回馈。我只能说开发者社区实在是太棒了。下面这些安卓库强烈推荐,你应该把他们用在你每一个安卓项目里:

安卓项目必用的开源库
Fresco

github.com/facebook/fr…

在网页端用类IDE的体验浏览和搜索 fresco 的源代码

经常被查看的文件:

Latest analyzed version: on

Fresco是一个强大的安卓图形显示库,它帮助你处理图像的读取和显示。它能够读取网络或者本地介质上的资源,也能够以占位符显示没有处理完毕的图像。它有两级缓存:内存缓存以及在本地存储介质中的缓存。

Glide

github.com/bumptech/gl…

在网页端用类IDE的体验浏览和搜索 glide 的源代码

经常被查看的文件:

Latest analyzed version: on

Glide是一个高效快捷的开源安卓媒体管理和图像读取框架,它把媒体解码,内存和磁盘缓存,资源池结合成一个简单易用的界面。这个库专注实现光滑滚动。

OkHttp

github.com/square/okht…

在网页端用类IDE的体验浏览和搜索 okhttp 的源代码

经常被查看的文件:

Latest analyzed version: on

OkHttp是一个适用于安卓和JAVA程序的HTTP+HTTP/2客户端。在安卓系统上,Http引擎是网络通信的首选。

Fast Android Networking

github.com/amitshekhar…

在网页端用类IDE的体验浏览和搜索 Fast-Android-Networking 的源代码

经常被查看的文件:

Latest analyzed version: on

基于OkHttp的Fast Android Networking能让网络通信变得简洁(不用样板代码),使得开发者能轻易写出通信代码。它是一个轻量级的快速网络通信库。试试看,你会爱上它。

RxJava

github.com/ReactiveX/R…

在网页端用类IDE的体验浏览和搜索 RxJava 的源代码

经常被查看的文件:

Latest analyzed version: on

RxJava — Reactive Extensions for the JVM — 一个用JVM里面的observed sequence来构建异步和基于事件库。

EventBus

github.com/greenrobot/…

在网页端用类IDE的体验浏览和搜索 EventBus 的源代码

经常被查看的文件:

Latest analyzed version: on

为安卓优化的事件总线(event bus),简化了Activities, Fragments, Threads, Services之间的通信。

Device Year Class

github.com/facebook/de…

在网页端用类IDE的体验浏览和搜索 device-year-class 的源代码

经常被查看的文件:

Latest analyzed version: on

Device Year Class会告知当前设备的内存,CPU核和时钟频率在哪一年的产品线里属于高配。它可以让开发者根据手机的硬件性能来让app做出不同的行为。

Network Connection Class

github.com/facebook/ne…

在网页端用类IDE的体验浏览和搜索 network-connection-class 的源代码

经常被查看的文件:

Latest analyzed version: on

Network Connection Class能够查询当前用户的网络连接质量。它会根据网络质量的不同分成好几种”Connection Classes”(连接分类)让开发更容易。这个库通过监听app已有的网络流量情况并在通信速度改变的时候通知用户。开发者能够通过网络连接情况调节app的行为(比如使用更低质量的影音,停止使用输入提示等等)。

另外,Fast Android Networking 也有这个功能。

Android Debug Database

github.com/amitshekhar…

在网页端用类IDE的体验浏览和搜索 Android-Debug-Database 的源代码

经常被查看的文件:

Latest analyzed version: on

Android Debug Database是一个功能强大的用于调试安卓数据库和共享首选项(shared preference)的库。它是一个在浏览器里浏览数据库和共享首选项的简单易用的工具。

LeakCanary

github.com/square/leak…

在网页端用类IDE的体验浏览和搜索 leakcanary 的源代码

经常被查看的文件:

Latest analyzed version: on

LeakCanary是一个安卓和Java上用于检测内存泄漏的一个库。

MPAndroidChart

github.com/PhilJay/MPA…

在网页端用类IDE的体验浏览和搜索 MPAndroidChart 的源代码

经常被查看的文件:

Latest analyzed version: on

安卓上强大的图表浏览库,支持诸如线形图,柱形图,饼图,蜡烛图等的图形显示,并提供缩放,拖放和动画支持。

ButterKnife

github.com/JakeWharton…

在网页端用类IDE的体验浏览和搜索 butterknife 的源代码

经常被查看的文件:

Latest analyzed version: on

ButterKnife是一个视图绑定(view binding)的工具。它利用标注(annotation)为我们自动生成样板代码。这个工具本质上能帮我们在处理视图的时候避免类似findViewById(R.id.view)这样的重复代码,让我们的项目看起来更整洁。

Dagger

github.com/google/dagg…

在网页端用类IDE的体验浏览和搜索 dagger 的源代码

经常被查看的文件:

Latest analyzed version: on

安卓和java的快速的依赖注入库。它简化了对于共用实例的读写,使复杂的依赖设置变的简单,让单元测试和集成测试更加容易。

GreenDao

github.com/greenrobot/…

在网页端用类IDE的体验浏览和搜索 greenDAO 的源代码

经常被查看的文件:

Latest analyzed version: on

GreenDAO是一个开源的安卓ORM,它让开发SQLite更有趣。它让开发者不再需要处理数据库底层操作,节省开发的时间。

Realm

github.com/realm/realm…

在网页端用类IDE的体验浏览和搜索 realm-java 的源代码

经常被查看的文件:

Latest analyzed version: on

简单存储,高速查询,节省大量开发时间。Realm Mobile Database是SQLite的一个替代品。

Timber

github.com/JakeWharton…

在网页端用类IDE的体验浏览和搜索 timber 的源代码

经常被查看的文件:

Latest analyzed version: on

在安卓原有的Log class之上提供有小型,可扩展API的一个Logger.

Hugo

github.com/JakeWharton…

在网页端用类IDE的体验浏览和搜索 hugo 的源代码

经常被查看的文件:

Latest analyzed version: on

通过标注触发为你的debug build自动记录方法调用的日志。作为一个程序员,你经常需要加入logging函数打印程序里面的函数调用,以及参数和返回值,并花时间执行。这不是什么问题,我们每个人都这样做。只是能不能够让它变得更简单一些呢?只要在函数头加上@DebugLog你就能得到我们刚才所讲的所有信息。

Android GPU Image

github.com/bumptech/gl…

在网页端用类IDE的体验浏览和搜索 glide 的源代码

经常被查看的文件:

Latest analyzed version: on

提供安卓上高效的基于OpenGL的滤镜的库。

ExoPlayer

github.com/google/ExoP…

在网页端用类IDE的体验浏览和搜索 ExoPlayer 的源代码

经常被查看的文件:

Latest analyzed version: on

ExoPlayer是一个应用级的安卓媒播放器。它提供的API支持播放本地或者网络上的音频。ExoPlayer支持当前安卓媒体播放器API不支持的功能,比如DASH和Smooth Streaming adaptive playbacks(根据带宽自动实时调节播放分辨率).

GSON

github.com/google/gson

在网页端用类IDE的体验浏览和搜索 gson 的源代码

经常被查看的文件:

Latest analyzed version: on

一个提供Java对象序列化/反序列化至JSON格式的库。