Bitmap相关

本文深入探讨了Android中Bitmap的高效加载方法,避免内存溢出,节省内存开销,提升应用流畅度。介绍了BitmapFactory.Options的使用,特别是inJustDecodeBounds和inSampleSize属性的作用,以及Android中的缓存策略,包括LruCache和DiskLruCache的实现。
摘要由CSDN通过智能技术生成

相关视频:Bitmap高效缓存

0、相关文章:

Bitmap源码解析与优化(阅读量58,详细)

深入了解Bitmap源码解析及经验总结(阅读量3000,详细)

漫画:Bitmap算法 整合版

Android性能优化(五)之细说Bitmap

Bitmap 比你想的更费内存 | 吊打 OOM

Android中详细的Bitmap

Bitmap的基本概念:

  • Bitmap,位图。它不是Android中特有的概念,它是计算机图形学的一个概念。它的主要作用就是把图片转换为像素信息加载到内存中。然后我们就可以对这些像素信息进行操作,从而实现我们的需求。
  • Bitmap是Android系统中图像处理最重要的类之一。
  • 通过Android我们可以获取到图片的信息:宽的像素值、高的像素值等;
  • 获取到信息后,可以对其进行缩放、裁剪等操作;
  • 总结:Bitmap为我们程序员提供了对图像文件的操作支持,就像File类为我们提供了对本地文件操作一样。

Bitmap的加载方式:

   decode  译(码),解(码);

  • BitmapFactory.decodeByteArray();字节数组
  • BitmapFactory.decodeFile();文件路径
  • BitmapFactory.decodeResource();资源ID
  • BitmapFactory.decodeStream();流

如何高效加载Bitmap:

为什么要高效加载Bitmap?

  • 1、防止内存溢出
  • 2、尽可能的节省内存开销
  • 3、使我们的应用跑的更加的流畅

理论依据:BitmapFactory.Options这个类为我们的高效加载提供了可能,这个类有以下几个重要属性:
inJustDecodeBounds: 布尔值,如果设置为true,那么我们在BitmapFactory.decode的时候,就不会返回bitmap,而是返回bitmap的width和height,并把width和height存放到outWidth&outHeight中。
inSampleSize:采样率。通过采样率我们可以极大地减少图片所占用的内存。

Android缓存

1、缓存的概念;   
    缓存就是将从服务器请求到的数据(Json,File)等保存到本地。
2、缓存常见的使用场景和优势;
    优势:

  •     1、对一些不是经常发生变化的数据,直接使用本地缓存,提升应用响应速度;
  •     2、不再频繁地请求服务器,可以降低服务器的负载压力;
  •     3、一些特定场景下的使用,例如:离线阅读;

    常见使用场景:

  •     1、对bitmap和file等大数据进行缓存,无需每次都重新下载,尤其是ListView;
  •     2、数据更新不需要实时更新,采用缓存机制。

3、缓存策略;

  •     1、android LruCache实现内存缓存;
  •     2、android DiskLruCache实现硬盘缓存;
  •     3、SQLite实现缓存(不重要,SQLite主要用来实现持久化数据存储,缓存会被清理掉)

LruCache


1、LruCache缓存的概念:

  •     1、Lru是计算机科学经常使用的一种近期最少使用算法;
  •     2、LruCache内部采用的是LinkedHashMap,LruCache就是对LinkedHashMap的增删改查加了一层封装;
  •     3、LruCache的出现是为了取代SoftReference。在Android3.0以前,图片缓存使用的就是SoftReference,但在Android3.0以后,虚拟机更倾向于回收SoftReference,所以使用LruCache来取代它。

2、使用中要注意的问题:

  •     1、内存缓存使用的还是我们宝贵的内存,所以要根据系统动态调整大小。
  •     2、注意版本适配,尽量使用support-v4中的LruCache。

DiskLruCache

硬盘缓存,优酷和今日头条就是用这个进行的离线缓存。


    

 

 

 

    
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值