美文网首页
Bitmap问题

Bitmap问题

作者: 仲达_dc6c | 来源:发表于2019-04-18 15:04 被阅读0次

Bitmap是导致OOM的头号杀手,我在开发中就遇到了两个关于bitmap导致的内存泄漏。

1.pos机电子签名,需要在屏幕上面进行签名,创建了一个bitmap变量过大,导致的内存溢出。

2.使用照相机,扫描二维码,弹出来的预览画面需要放到临时变量里面,临时变量申请过大,导致内存溢出。

常用的总结操作如下:

1.recycle

Bitmap存在两个地方,java内存和native内存。recycle会释放和这个对象有关的native内存,和相关的引用。但是不是立即执行,而是通知GC。执行了recycle后,就不能执行相关的方法了,因为已经被标记为dead了,再调用相关方法会出现异常。google不建议主动去调用recycle方法,也会主动地清理内存。但是平时可以根据自己的场景来主动调用,养成良好习惯。

2.LRU

主要使用在存储bitmap的三级缓存,最近最少使用的缓存对象清除队列。

实现原理:通过泛型类,内部LinkedHashMap,提供对应的put get remove trimtosize(缓存满的时候移除较早较少使用的对象,添加新的缓存对象)。

3.计算inSamplesize

在合适的时间,加载合适的图片。根据maxWith,maxHeight计算最合适的inSampleSize,缩减比例。

4.缩略图

和inSampleSize分不开。

inJustDecodeBound,先设置为true。把图片加载进来,这是病不是真正的加载,而是获取到他的信息。然后在设置为false,计算出缩放比例,在设置为true。

5.三级缓存

1.网络,文件,内存;避免频繁的进行网络请求,导致ui卡顿。

相关文章

  • Android基本点总结

    1.Bitmap 具体的方法 Bitmap.recycle() 内存如果bitmap没有回收,会造成什么问题?首先...

  • Bitmap问题

    Bitmap是导致OOM的头号杀手,我在开发中就遇到了两个关于bitmap导致的内存泄漏。 1.pos机电子签名,...

  • Bitmap

    Bitmap使用需要注意哪些问题 ? 要选择合适的图片规格(bitmap类型):通常我们优化Bitmap时,当需要...

  • Android Bitmap

    Bitmap 1.Bitmap使用需要注意哪些问题? 参考回答:要选择合适的图片规格(bitmap类型):通常我们...

  • Bitmap相关问题

    1.recycleBitmap是存储在native内存和java内存上,当其被对象回收的时候,需要分两部分来回收,...

  • 安卓相机开发

    1,简要记录问题,当bitmap设置给imagview之后,假如bitmap对象被回收,imagview当时不会有...

  • 关于Bitmap.createBitmap创建新的Bitmap,

    出现问题的代码如下: 把bitmap回收之后,发现tempBitmap也被回收了,经过判断bitmap==temp...

  • Bitmap那些事

    Author:杨空明 Date:2018-11-15 1.何为bitmap? 2.开发中bitmap遇到的那些问题...

  • Android 图片加载配置 RGB_565的使用和变绿

    本文主要讲解Bitmap.Config以及其中RGB_565使用和问题。 先看看Bitmap.Config枚举: ...

  • Bitmap方法总汇

    Bitmap缩放 Bitmap裁剪 Bitmap旋转

网友评论

      本文标题:Bitmap问题

      本文链接:https://www.haomeiwen.com/subject/qhftgqtx.html