AndroidX技术栈之开源框架

一、网络框架

1.http/https

2.TCP/UDP

3.Okhttp原理:

4.Retrofit

二、消息通知

EventBus原理:

三、异步编程

RxJava原理:

四、图片加载库

1.ImageLoader

2.Fresco

MVC设计模式, 5.0以下采用共享内存->共享内存怎么用->Fresco怎么实现圆角,怎么配置缓存。

3.Glide

LruCache结合弱引用 ->LruCache原理->LinkedHashMap原理

4.Picasso

//===================区别============================

Image-Loader
优点:支持下载进度监听(ImageLoadingListener) * 可在View滚动中暂停图片加载(PauseOnScrollListener) * 默认实现多种内存缓存算法(最大最先删除,使用最少最先删除,最近最少使用,先进先删除,当然自己也可以配置缓存算法)
缺点:2015年之后便不再维护,该库使用前需要进行配置。

Picasso
优点:包较小(100k) * 取消不在视野范围内图片资源的加载 * 使用最少的内存完成复杂的图片转换 * 自动添加二级缓存 * 任务调度优先级处理 * 并发线程数根据网络类型调整 * 图片的本地缓存交给同为Square出品的okhttp处理,控制图片的过期时间。
缺点:
功能较为简单,自身无法实现“本地缓存”功能。

Glide
优点:多种图片格式的缓存,适用于更多的内容表现形式(如Gif、WebP、缩略图、Video) * 生命周期集成(根据Activity或者Fragment的生命周期管理图片加载请求) * 高效处理Bitmap(bitmap的复用和主动回收,减少系统回收压力) * 高效的缓存策略,灵活(Picasso只会缓存原始尺寸的图片,Glide缓存的是多种规格),加载速度快且内存开销小(默认Bitmap格式的不同,使得内存开销是Picasso的一半)。
缺点:方法较多较复杂,因为相当于在Picasso上的改进,包较大(500k),影响不是很大。

Fresco
缺点:最大的优势在于5.0以下(最低2.3)的bitmap加载。在5.0以下系统,Fresco将图片放到一个特别的内存区域(Ashmem区) * 大大减少OOM(在更底层的Native层对OOM进行处理,图片将不再占用App的内存) * 适用于需要高性能加载大量图片的场景。
缺点:包较大(2~3M) * 用法复杂 * 底层涉及c++领域

五、消息推送

消息推送原理->如何实现心跳链接?

results matching ""

    No results matching ""