Android 运行卡,内存优化,oom优化

Android内存溢出,卡,oom现象出现原因:

 

1、该释放的内存没有释放(比较常见)

  a、对象、变量等,可以使用LeakCanary等内存检测工具检测

    尽量少使用static关键字,若必须使用,需注意父容器生命周期,若static修饰对象不为空,gc就五法回收,导致该对象的父容器也五法回收,就会产生oom

2、加载资源(本地、网络资源)过大

  a、本地资源:

    图片资源(常见):虚拟机加载图片所耗内存算法:分辨率*深度/8(深度一般为24,例如:1080*1920*24/8)=加载所需内存kb

  b、网络图片资源:

    自己写的图片加载,需注意bitmap的回收及bitmap的图片格式,Android格式有:

      ALPHA_8:每个像素占用1byte内存

      ARGB_4444:每个像素占用2byte内存

      ARGB_8888:每个像素占用4byte内存

      RGB_565:每个像素占用2byte内存

 

    使用网络加载工具:Glide,fresco等

    

3、频繁的gc会导致屏幕卡顿

              

 

posted @ 2017-03-15 15:41  猴子1  阅读(127)  评论(0编辑  收藏  举报