2017/10/12学习笔记

本文详细介绍了ImageLoader框架的工作原理及应用,包括图片加载流程、内存缓存机制、图片尺寸控制等内容。同时对比了HTTP协议中的GET与POST请求特点,并介绍了当前常用的HttpUrlConnection请求方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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客户端只需要通过调用代理类的方法去调用真实类的方法,虚拟代理,在真正需要的时候再去创建真实类。安全代理,访问真实类需要权限的时候。远程代理,隐藏服务端。真实类不需要考虑其它非本职工作。

  行为型设计模式:观察者模式,比较常用,耦合性较低,方便简历触发机制。

 

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值