源码地址:点击打开链接
Android-Universal-Image-Loader的广泛使用,我们有必要好好研究下他,对于我们使用,和进步都有很多的帮助,
从架构图上看,该项目分为五大部分。
1、Displayer,显示图片模块。这部分主要作用显示图片的,包括好几种显示图片的方式,如切边显示图片等。
通过调用display(Bitmap bitmap, ImageAware imageAware, LoadedFrom loadedFrom);
2、Assist Classes,这部分是帮助类模块。主要是一些枚举类、存放任务的Queue,等一些帮助类
3、ImageLoader,这个部分的主要作用是初始化的一些设置和给用户的接口,
4、DisplayTask,显示任务模块。该类是一个线程,负责调用Displayer的display方法去显示图片
5,LoadTask,加载任务模块。该类也是一个线程,负责启动加载和下载图片线程。
6、Downloader,下载任务模块,该模块是负责下载的,网络连接通过两种方式,一个是HttpClient,一个是HttpURLConnection,前者是apache封装的一个类,会保存cookie等信息,支持需要校验用户登录信息的后台服务,后者则不支持,该模块还包括网络慢时候的处理和网络连接失败时候的处理。
7、cache,缓存模块,该模块包括本地缓存和内存缓存,缓存大小的设置在ImageLoader的初始化方法中进行。
8、Decode,解码模块。该模块是对图片进行解码的模块,根据inputstream获取bitmap。
以上的这么多模块,都是面向接口编程的,先定义接口,再针对不同的业务需求添加实现类。
Android-Universal-Image-Loader 架构梳理