从设计到实现,一步步教你实现Android-Universal-ImageLoader-序

转载请标明出处,本文出自:chaossss的博客

Android-Universal-ImageLoader Github 地址

引言:在这段时间里,我巩固了 Java 的基础知识,学习了非常多有关架构和设计模式的知识,也阅读了许多 Android 框架层的源码,本着“学以致用”的思想,我决定在接下来的时间里分析 Android 各个方面最常用的库。有关这个系列博文的分析思路大致如下:将自己投入到开发库的实际场景中思考架构和设计,一步一步地将整个库还原。一方面,我把这系列博文看作这段时间所学习到知识的总结;另一方面,我希望不仅仅进行翻译,为大家提供学习资料,还能由自己的知识储备去生产出干货分享给大家。希望大家能在这系列博文中得到自己想要的

Android-Universal-ImageLoader 简介

Android-Universal-ImageLoader 是 Github 上一个有关图片加载的开源项目,作者是 nostra13,这个项目到今天已经累积了 8881 star,4167 fork 了,可以说是 Github 在 Android 领域中一个相当经典的库。

Tip:下面将把 Android-Universal-ImageLoader 简称为 AUI。

nostra13 希望通过 AUI 为 Android 开发者提供高效、灵活、高度定制的图片显示、缓存、加载三个方面的功能,AUI 为开发者提供特定的类对 AUI 进行配置,自主选择满足需求的图片加载类;此外,AUI 优秀的项目架构使开发者能够在 AUI 的基础上继续拓展。

总的来说,AUI 是一个使用场景非常广泛的图片加载库,但其性能并不能说是最好的。(例如 Fresco 在大量读取、显示图片的使用场景中性能就比 AUI 要好)

博文介绍

《从设计到实现,一步步教你实现Android-Universal-ImageLoader》系列博文将有七篇,每一篇博文的内容暂定如下:

序:序就是这篇博文啦,简要介绍决定写这系列博文的动机,然后简要介绍 AUI 和本系列博文的写作思路,以及每一篇对应的概要。

part1:分析 AUI 的 Cache 模块,学习 AUI 是如何实现和设计内存缓存和本地缓存两大功能类,以及学习对应具体实现类的一些知识。

part2:简要学习 AUI 如何封装库中常用的工具类。

part3:分析 AUI 中的图片显示模块,了解 AUI 如何实现解码、加载、显示功能。

part4:分析 AUI 中的辅助类,了解 AUI 如何实现类间低耦合、高内聚。

part5:剖析 AUI 中的核心类。

碎碎念

博文理论上每周会更新一篇,如果忙的话可能会拖沓一些,如果哪里说的有错误的话希望大家在评论区和我交流哈~

你可能感兴趣的:(android,imageloade)