什么是三级缓存
网络缓存,不优先加载,速度慢,浪费流量
本地缓存,次优先加载,速度快
内存缓存,优先加载,速度最快
为什么要使用缓存
- 访问内存速度最快
- 不浪费流量
- 增强用户体验
三级缓存原理
首次加载App时,要通过网络交互来获取图片,之后我们可以将图片保存在本地SD卡和内存中,之后运行App时,优先访问内存中的图片缓存,如果内存中没有,则加载本地SD卡中的图片,总之,只有在初次访问新内容的时候,才通过网络获取图片资源。
LruCache内存缓存算法
最近最少引用算法,比如往里边放数据1、2、3、4、5,第一次看是12345,如果指定看2,那么就变成了21345,就是刚看的往前边放,没看的放后边,因为LruCache缓存有大小的限制,再往里边放个6,内存满的话,后边的5就会被回收掉,那么就变成了62134,这样的话就会非常实用。
DeskLruCache本地缓存
DeskLruCache没有限制数据在SD卡上的缓存位置,可以自由的进行设定,但是通常情况下多数应用程序都会将缓存的位置选择为/sdcard/Android/data/包名/cache 这个路径。选择在这个位置有两点好处:第一,这是存储在SD卡上的,因此即使缓存再多的数据也不会对手机的内置存储空间有任何影响,只要SD卡上空间足够就行。第二,这个路径被Android系统认定为应用程序的缓存路径,当程序被卸载的时候,这里的数据也会一起被清除掉,这样就不会出现删除程序之后手机上还有很多残留数据的问题。