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会导致屏幕卡顿