Bitmap 的加载和 Cache
Bitmap 的高效加载
Bitmap 在 Android 中指的是一张图片,通过 BitmapFactory 类来加载,其提供了四类方法:decodeFile,decodeResource,decodeStream,decodeByteArray,分别用于支持从文件系统,资源,输入流,字节组中加载出一个 Bitmap 对象。
对于高效加载,通过 BitmapFactory.Options 来加载所需尺寸的图片,主要是通过它的 inSampleSize 参数(采样率)。
Android 中的缓存策略
常用的一种缓存算法,LRU:近期最少使用算法。它的核心思想是当缓存满时,会优先淘汰那些近期最少使用的缓存。采用 LRU 算法的缓存有两种:
- LruCache:用于实现内存缓存
- DiskLruCache:充当了存储设备缓存
LruCache
它是一个泛型类,内部采用一个 LinkedHashMap 以强引用的方式存储外界的缓存对象,其提供了 get 和 put 方法来完成缓存的获取和添加操作,当缓存满时,LruCache 会移除较早使用的缓存对象,然后再添加新的缓存对象。
DiskLruCache
用于实现存储设备缓存,即磁盘缓存,它通过将缓存对象写入文件系统从而实现缓存的效果。
链接
参考资料:
Android 开发艺术探索