00:00
那我们继续,我们刚才讲了这个乱码问题,接下来我们就讲封装,所以蜗旅的话呢,是可以稍微做一点封装,比如说现在我们每次你看啊,这个队列,注意队列相当于是一个装集合的地方吧,那你每次就是六是不大好啊,你看你每次进这里来都要去遛一个啊,就每次遛一个这样的一些的话呢,势必会消耗一些资源,对吧?那我们能否这样呢?就是一初始化的时候就把它给什么,一进来的时候就是提前初始化以后直接用就可以了,对不对,我们可以做一些优化,意在这我们这个案例中呢,我们提前已经做好了,就把一把这代码过来给大家讲明白就可以了,好,这个部分好我把它把它拷贝过来,那一会跟他讲啊。好,那么这个部分的话嘞,我们粘贴到这里。
01:03
好大家看好,在我们这个里面是这个包里面是有两个类呀,好,这个类注意注意啊,我们这里面是有报了吧,有价报了,所以的话呢,这个时候他用到里面这个类里面它用到的这些队列,它不会报错了。你看我们点一下。它是是这个价报里面的吧,价格里面的,所以都不会报错了,因为它存在了好这个类。就是我们刚才这个这个叫manage对吧,好注意这是我们命名的,好那么封装的话怎么封装呢?好把这个队列写为静态。好,注意这个还有一个就是什么图片加载工具类,好这个工具类是谁的呢?是谁的。是也是的,OK也是的,然后这个构造方法不能直接明白了吧,好,那以后你怎么办呢?你要初始化。
02:06
使用请求网络的时候,首先要调用该方法,建议在库中去调用好,这个是体验的好的好,那这个代码刚才是我们在新闻中心里面去得到个队列过,好大家看好,这里面有这个队列过后,这里面怎么做呢?大家好,这时候告诉你的机器有多少内存,在计算缓存大小时会比较。大家看一下,这时你看啊,我们去得到我们的service,然后得到什么,那这个时候得到是可用内存,然可用内存过后呢,然后我们乘上1024啊,这个这个104,然后除以八,最后它其实就是啊,用1/8的可用内存来存什么图片,注意啊,用1/8再来存储图片,好那么这个是一个消息队列,那么这个一美九漏的呢,它中文名就用来什么。
03:05
加载图片用的那吧,主要是消息队列和加载图片,好,现在关键点来了。在我们这个地方里面呢,用1/8的可用内存是来缓存什么图片,那如果我们没有。用它来加载图片是这部分内存就自然就不会用到了,对吧?OK,大家注意这一点,好,那其实大多数情况下,我们软件如果是请求文本的话,一点问题都没有,但凡这个软件出现崩溃。基本上都会与加载图片有关,那么我们这个是用1/8缓存图片的话,这样的话呢就很好了,那么不光如此,我们这个时候还用了一个l catch这么一个类。大家看啊,这个类它是注意啊,这个类首先是自定义的啊,是在这个包里面吧。
04:01
好,这个类你可以任意取,但是它继承的是一个系统的一个类。你看啊,这个类是哪里的好,给你们看一下包是哪里的,安卓的好,它是我们系统的一个类,系统的一个类,它有什么一个特点呢?注意l ruu是什么意思嘞,它叫最近最少使用什么算法,看见没有叫近期最少使用算法,什么叫近期最少使用算法呢?或者也叫缓存的算法,什么意思呢?首先我们在加载图片,管理内存是这样管理的,首先我创建一个你可用内存的1/8用来装图片,然后哒哒哒哒你装一大不大图片进来。那么装满了,快要装满了,这个时候我就判断哪一张图片用的比较少,我就把这张图片从内存中给什么移除掉,明白吗?这样的话我就就用一个固定的空间去装图片,那你超出我就移除,超出移除,这样的话不至于内存一直变大吧,就保证了我们软件不易于什么不易于崩溃,明白了吗?啊,这个类是从我们的安卓3.0的时候引入的啊,正式使用的,那这样的话呢,它就特别的好用啊啊这个类似安卓自带的。
05:24
好,那这个方法是计算每张图片的大小。计算每张图片的大小,为什么呢?计算每张图片大小,大家想想,你把这些图片加载进来,但我空间是有限的,那么是加起来你的内存超出我的空间了,说我把一些不常用的给移除啊对不对,好,那在这个地方里面呢,它就是啊,就直接可以得到和注意,这是从集合中得到图片,好,然后保存图片,注意你技能了,过后就会这样,当然这个技能过后呢,这个地方还实现我们的啊image load的一个catch,这这这个又是谁的呀。
06:08
好,注意这个地方里面呢,又是什么窝里的了,明白吧,好里的一个回调,OK,用了这么一个类,后面关于l catch我们还会讲到啊。好,那有了后这个地方里面,这个地方就产生了两个类,一个是消息队列,一个是因漏的,那么这个时候我们就既然以实例化以后,我们就可以什么得到消息队列。然后既然消息这列数就会添加了,然后这个时候呢,就可以什么取消,好还可以得到一面漏的,可以做这样的事情了吧,好就这样一个简单的封装有了过后,接下来我们封装好过后就该怎么啦。用了好,接下来就要初始化,什么初始化什么我好什么初始化啊好还有个方法叫什么,它存进去,这就初始化,那一初始化过后,这个时候就去有了吧,有了过后有了后那么以后我们在新闻中心的这个请求。
07:21
新闻中心的这个请求我们看一下,我们还有必要每次去这个队列吗?没有必要了,好,我们这个时候这行代码就可以干掉,然后这个地方就可以这样子去get什么小率这点就可以了,明白了吗?这样的话是性能好一点了,为啥他直接得到得到这个队列,因为这个队列是之前六了吧。对不对,好一点点了,好,那么这个时候呢,我们就相当于就封装好了,明白了吗?就这么简单,好,那么这就是涡的封装,其实就封装成什么单立呗,以后都用同一个队列呗,对不对,因为以后你在任何地方是都有可能用去电换请求啊,那这个时候是我就可以用这样的代码就可以啊对不对,好,那同学们这就搞定了。
我来说两句