您的位置:首页 > 其它

Fresco框架的介绍

2016-05-23 22:24 155 查看

Fresco介绍

Fresco是Facebook推出的一款强大的android图片处理库, github地址:https://github.com/facebook/fresco 里面有官方的使用配置文档,而且是中文的,参考文档为Facebook使用手册
Fresco的原理是,设计了一个ImagePipeline的概念,它负责先后检查内存、磁盘文件,如果没有再老老实实从网络下载图片。

可以像配置ImageLoader那样配置Fresco中的Image Pipeline,使用ImagePipelineConfig来做这个事情。

Fresco有三个线程池,其中三个线程用于网络下载图片,2个线程用于磁盘文件的读写,还有两个线程用于CPU 相关操作,比如图片解码、转换,以及放在后台执行的一些费时操作。

Fresco的三层缓存概念,这才是Fresco最核心的技术,他比其他图片SDK吃内存小,就在于这个缓存设计

第一层:Bitmap缓存

1:在Android5.0系统中,考虑到内存管理有了很大改进,所以Bitmap缓存位于java堆(heap)中

2:而在android 4.x和更低的系统,Bitmap缓存位于ashmem中,而不是位于java的堆(heap)中.这意味着

图片的创建和回收不会引发过多的GC,从而让app运行的更快。当App切换到后台时,Bitmap缓存会被清空。

第二层:内存缓存

内存缓存中存储了图片的原始压缩格式。从内存缓存中取出的图片,在显示前必须先解码。

存缓存也会被清空。

第三层:磁盘缓存

磁盘缓存,即本地存储。磁盘缓存中存储的也是图片的原始压缩格式。在使用前先解码,

在App切换到后台时,磁盘缓存不会丢失,即使关机也不会。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: