1、使用方式:
// 下面两个依赖包可选,根据需求二选一便可,
compile 'com.ladingwu.library:fresco:0.0.9'
compile 'com.ladingwu.library:glide:0.0.9'
// 这个是必须的
compile "com.ladingwu.library:imageloader-framework:0.0.9"
2、初始化缓存
// 初始化代码须要在Application中完成
ImageLoaderConfig config = new ImageLoaderConfig
// .Builder(LoaderEnum.FRESCO, new FrescoImageLoader())
.Builder(LoaderEnum.GLIDE,new GlideImageLocader())
// .Builder(LoaderEnum.UIL,new UilImageLoader())
.maxMemory(5 * 1024 * 1024L) // 单位为Byte
.build();
ImageLoaderManager.getInstance().init(this, config);网络
3、三个库的使用比较框架
前置条件ide
一、使用uisdk框架中 recycleview 加载
二、加载100个地址,地址指向的文件相同,图片大小:101kb
三、限速60kb
Imageloader:
网络下载且展现(16张图片):12.5秒
本地加载且展现(16张图片):0.8秒
帧率:54帧
快速滚动到底显示当前屏:很慢性能
glide:
网络下载且展现(16张图片):12.5秒
本地加载且展现(16张图片):0.7秒
帧率:52帧
快速滚动到底显示当前屏:很慢ui
fresco:
网络下载且展现(16张图片):12秒
本地加载且展现(16张图片):0.6秒
快速滚动帧率:56帧
快速滚动到底显示当前屏:比Imageloader、glide快三倍this
结论:加载速度、帧率和内存都是fresco更胜一筹,因此建议借鉴或者使用fresco。队列
fresco的优点:
一、5.0如下图片加载使用Android系统匿名共享内存(Anonymous Shared Memory),能够减小堆内存溢出问题和提升性能,提升性能的缘由是Android系统匿名共享内存是手动申请手动释放减小垃圾回收器的工做
二、图片加载队列管理的更加合理,不在当期屏的view则将对应的任务进行移除
三、根据不一样系统版本使用不同的解码器,提升图片解码效率
四、内存缓存策略增长未解码缓存,减小磁盘读写次数图片