美文网首页
Bitmap优化

Bitmap优化

作者: timber_wu | 来源:发表于2017-05-20 19:15 被阅读37次

Bitmap复用


Bitmap decode

  • 常见的jpg,png,webp(Android4.2才开始支持)是图像的存储格式
  • Android中要显示图片必须先经过解码(decode)读取图像的数据到内存中
  • BitmapFactory提供了常用的一些decode方法
  • 图片真正占用的内存大小要看decode之后的数据大小

Bitmap memory

  • <=2.3.3(api 10)
    BItmap解码之后 的数据存储在Native Memory中
    手动调用Recycle回收
  • 》=3.0
    Bitmap解码之后的数据存储在Dalyik heap(Java)中
    Dalvik自动回收

Re-using Bitmaps

  • 对象池(Object Pool)---相同的对象会互斥使用同一块内存空间
    mBitmapOptions.inBitmap=mCurrentBitmap;
    mCurrentBitmap=BitmapFactory.decodeFile(filename,
    mBitmapOptions)
  • 建立多个对象池
    第三方库----glide

预压缩Bitmap


createScaledBitmap(inBmp,64,128)---加载后缩放Bitmap到给定的宽高
mBitmapOption.inSampleSize=4;// 会把采样率变成最接近2的N次方的值
mCurrentBitmap=BitmapFactory.decodeFile(fileName,
mBitmapOptions);
查看原始的宽高
.inJustDecodeBounds=true;


减少占用字节


png--比较高质量的图像
ARGB_8888 每个像素占4字节(图像质量最高,支持透明度)
RGB_565 每个像素占2字节(缩略图,不支持透明度)
ARGB_4444 每个像素占2字节(缩略图,支持透明度)
ALPHA_8 每个像素占1字节
图标类节约内存:ALPHA_8+Color tint
节约COU:ARGB_8888
** Android默认都是以ARGB_8888解码的**
jpg --在Android中也是四个字节

开发中注意压缩PNG文件的大小

Script PNG
如不支持透明度,可以选择JPG格式的文件

  • 推荐web-p的文件

LRU cache(实现对象池)


当需要删除缓存时会替换掉那些不经常使用的缓存

    Bitmap bmpToDraw=mCahe.get(filename);
    if(bmptToDraw ==null){
    bmpToDraw=BitmapFactory.decodeFile(filename);
    mCache.put(filename,bmpToDraw);//将Bitmap对象加入对象池
    }

相关文章

  • 收集_Android源码文章

    一、Bitmap: Android bitmap压缩优化方案Android性能优化系列之Bitmap图片优化 二、...

  • 性能优化:Bitmap内存大小优化的几种常见方式

    性能优化:Bitmap内存大小优化的几种常见方式 Android中的bitmap是比较占用内存的,bitmap的大...

  • Bitmap

    获取Bitmap大小 Bitmap优化 一、主动释放Bitmap资源 二、主动释放ImageView的图片资源 三...

  • Android性能优化-Bitmap优化

    一、Bitmap质量压缩 二、Bitmap尺寸压缩 Bitmap优化加载的核心思想就是采用BitmapFactor...

  • Android性能优化之Bitmap加载优化

    目录 Bitmap优化 1.Bitmap.Config配置 这里我们用BitmapFactory.decodeRe...

  • Android性能优化

    Android性能优化包括布局优化、绘制优化、内存优化、线程优化、响应速度优化、Bitmap优化和ListView...

  • Android进阶之性能优化

    一、性能优化分类 布局优化 绘制优化 内存泄漏优化 响应速度优化 ListView优化 Bitmap优化 线程优化...

  • Bitmap

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

  • Android Bitmap 到底占了多少内存

    前言 在Android的内存优化中,对Bitmap的优化绝对是主角,因为Bitmap对内存的影响很大,稍有不慎就很...

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

    在上一篇《Android性能优化(四)之内存优化实战》中谈到那个内存中的大胖子Bitmap,Bitmap对内存的影...

网友评论

      本文标题:Bitmap优化

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