-
网络请求
-
图片加载
-
数据库
-
异步分发
-
IOC
-
数据解析
-
权限
==============================================================
Retrofit是一个网络加载框架,底层是使用OKHttp封装实现的,可以理解为OkHttp的加强版。网络请求的工作是靠OkHttp完成,而
Retrofit 仅负责网络请求接口的封装。
Retrofit的一个特点是包含了特别多注解,方便简化你的代码量。并且还支持很多的开源库(如:Retrofit + RxJava)。
OkHttp是对Http协议的高度封装,支持get请求和post请求,支持基于Http的文件上传和下载,支持加载图片,支持下载文件透明的GZIP压缩,支持响应缓存避免重复的网络请求,支持使用连接池来降低响应延迟问题。
OkHttp已经在Android中替代了HttpUrlConnection和Apache HttpClient(Android API
23,即sdk 6.0中已经替换)。
Volley和Retrofit一样,也是一个网络请求框架,以通过它访问普通的网络数据,如JSON格式的数据,也可以下载图片。
Volley适合通信数据量不大但请求频繁的网络操作,不适合数据量较大的网络操作,如文件下载等。
==============================================================
Glide 是 Google 员工的开源项目, Google I/O
上被推荐使用,一个高效、开源、Android设备上的媒体管理框架,它遵循BSD、MIT以及Apache
2.0协议发布。Glide具有获取、解码和展示视频剧照、图片、动画等功能,它还有灵活的API,这些API使开发者能够将Glide应用在几乎任何网络协议栈里。创建Glide的主要目的有两个,一个是实现平滑的图片列表滚动效果,另一个是支持远程图片的获取、大小调整和展示。
Glide和Picasso有90%的相似度,但是在细节方面会有差别。而且Glide采用链式编程方法。
Glide与Picasso的差别主要体现在:下载图片的方式、图片的缓存机制、加载到内存的机制。
Facebook出品,支持图像渐进式呈现(先加载小图再加载大图),并且采用三级缓存机制(两级内存,一级文件)。但是体积会增大不少,而且侵入性强,需要使用SimpleDraweeView来替代ImageView控件。
使用简单,扩展性强,支持各种来源的图片,包括网络、Resources、assets、files、content
providers等。内部集成了OkHttp的网络框架(毕竟都是一家的产品)。 Picasso的特点:
1、在Adapter中取消了不在视图范围内的ImageView的资源加载,因为可能会产生图片错位; 2、使用复杂的图片转换技术降低内存的使用
3、自带内存和硬盘的二级缓存机制
=============================================================
GreenDao号称android平台最快ORM框架,特点是内存占用小,易于操控的API及依赖库体积小。
相比GreenDao,OrmLite更显轻量级,而且学习成本更低。
Room持久库在SQLite上提供了一个抽象层,使得大家可以更流畅地反问数据库,并且能够利用SQLite的全部强大功能。
==============================================================
采用发布/订阅模式实现模块间解耦的事件总线库。简化代码,消除模块间依赖,加速开发。
RxBus是利用RxJava实现的事件总线库。
JVM的响应式扩张,使用可观测的序列来组成异步的、基于观察者模式的实现的库。
android版本的RxJava。
=============================================================
ButterKnife是一个Android系统中View注入框架,通过Annotation方式替代findViewById等对View的操作。并且在编译时生成class文件,避免了反射带来的性能问题。
Dagger2也是通过依赖注入来解决对象之间依赖的问题,缺点是入户门槛较高。