打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
每个Android项目都该用到的20个开源库


Android阻尼效果 | 自定义进阶之实现MIUI的拖动视差效果

吊炸天!74款APP完整源码!

Android MediaPlayer生命周期详解

译自:https://blog.mindorks.com/awesome-android-open-source-libraries-56a008c776c0

本文为著名的安卓开源项目作者Amit Shekhar在他的博客上总结和推荐的它认为每个安卓项目都应该用到的20个开源安卓库,他认为这20个安卓开源库是非常好的极力推荐值得在你的app里使用的开源库

Amit Shekhar认为好的第三方开源库的使用能节省你的开发时间和成本,减少开发app的bug。

因为这些android开源都是经过了大量测试和项目实践验证的。而且使用过程中也修复了很多的bug。

Amit Shekhar特别喜欢开源,也贡献了很多开源库,下面是他极力推荐的你的安卓项目中必用的开源库


1 、Fresco
github.com/facebook/fresco

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

2、Glide
github.com/bumptech/glide

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

OkHttp
github.com/square/okhttp

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

Fast Android Networking
github.com/amitshekhariitbhu/Fast-Android-Networking

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

RxJava
github.com/ReactiveX/RxJava

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

例子:https://github.com/amitshekhariitbhu/RxJava2-Android-Samples

EventBus
https://github.com/greenrobot/EventBus

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


Device Year Class

github.com/facebook/device-year-class

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

这个个人强烈推荐,能帮你提高app的性能。优化app

Network Connection Class
github.com/facebook/network-connection-class

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

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

Android Debug Database
github.com/amitshekhariitbhu/Android-Debug-Database

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

LeakCanary
github.com/square/leakcanary

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

MPAndroidChart
github.com/PhilJay/MPAndroidChart

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

ButterKnife
github.com/JakeWharton/butterknife

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

Dagger
github.com/google/dagger

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

GreenDao
github.com/greenrobot/greenDAO

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

Realm
github.com/realm/realm-java

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

Timber
github.com/JakeWharton/timber

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

Hugo
github.com/JakeWharton/hugo

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

Android GPU Image
github.com/CyberAgent/android-gpuimage

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

ExoPlayer
github.com/google/ExoPlayer

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

GSON
github.com/google/gson

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

看完本文有收获?请分享给更多人


Java和Android架构

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
GitHub 排名前 100 的安卓、iOS项目简介
【重磅】支付宝使用的开源组件总结!
Android 2016年你需要去掌握的技术,不看后悔
一套完整的Android通用框架 | 吴小龙同學
GitHub上最火的40个Android开源项目(一)
Android开发中用到的框架、库介绍
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服