1.对ImageLoader的理解
该开源框架支持从网络,本地缓存,assets等位置加载图片
ImageLoader的加载大概流程为:UI层请求图片->先去内存中通过Key寻找图片资源->如果内存中没有去磁盘空间中寻找图片资源,如果有则通过BitapFactory中的方法解析图片并回传->若磁盘空间中没有->异步请求网络图片->请求成功后保存在内存和磁盘空间中,并显示在UI层
ImageLoader的内存是通过LruMemoryCache实现的,它是通过双链表结构的HashLinMap为存储结构,这样就实现了在内存空间有限的情况下,内存中尽量保存最近使用过的图片资源,get方法会改变资源位置,将其置于队列尾部,而put方法置入的资源也在列表尾部,这就是“最近使用图片”的判断方式。
图片大小是根据ImageView的宽高决定的。
可以较好的控制图片加载的过程,在ListView,GridView中可以较好的控制图片加载的开始和暂停
2.Http协议
请求端组成:请求行,请求报头(date,Host,accept,keep-alive等),空行,请求数据
HttpClient 6.0中已经将该库移除
它的get请求:由于它的请求参数都是防砸URL中,因此安全性较差,并且携带参数由于不同浏览器的影响,导致携带参数一般有限制
它的Post请求:与get请求的区别是,多了请求数据这一组成部分,请求参数都是放在这个请求数据中的,因此安全性能更高,并且携带参数的大小是受到服务器影响,因此可以携带较多的参数。
HttpUrlConnection是我们当前比较常用的请求方式。
3.设计模式:
创建型设计模式:单例模式,简单工厂模式,工厂模式等,减少类实例的创建,使用者只需要了解创建所需参数,不需要了解其中逻辑,但是要增加子类的时候需要改变工厂类中的逻辑,违反开闭原则。
结构型设计模式:代理模式,有公共的抽象类,抽象类中的方法在真实类与代理类中都会实现,Client客户端只需要通过调用代理类的方法去调用真实类的方法,虚拟代理,在真正需要的时候再去创建真实类。安全代理,访问真实类需要权限的时候。远程代理,隐藏服务端。真实类不需要考虑其它非本职工作。
行为型设计模式:观察者模式,比较常用,耦合性较低,方便简历触发机制。