安卓所谓的(图片)三级缓存
一.三级缓存
Android采用Task来管理多个Activity,当我们启动一个应用时,Android就会为之创建一个Task,
开启一个应用时,也会为该应用创建一个DVM。
首先需要一个连网权限和写入SD卡的权限,--以便做二级缓存。
<uses-permissionandroid:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
避免程序oom
1 当我们app启动的时候,系统会分配给我们一定的内存:
//获取虚拟机分配给我们的最大的内存 16 32
Runtime.getRuntime().maxMemory();
//拿出系统分配给我们的app的四分之一用来加载大图片 4 8
Runtime.getRuntime().maxMemory()/4;
三级缓存:
1 内存缓存 map
2 SD卡缓存(文件缓存)
3 联网缓存 ---说实话这个还不算一个缓存。
避免程序oom的优化算法:
Lru(最近使用最少的图片给清理掉)
三种算法:
1 b c d e f
2 a(10) c(999) d(100) e(20) f
3 a(1000Kb) b(2MB) d(20KB) e(100KB) f
在往内存缓存里面丢图片的时候,都需要检查一下现在的内存是否够加载一张图片。.