内存溢出的风险

1. 单例造成的内存泄漏,在应用中,应尽量避免传入Activity的context。
比如在调用Commutil.getInstance();传入的context,应尽量传Application的Context,Application的生命周期伴随着整个进程的周期。

2. 在界面不可见的时候会回调该方法 onTrimMemory().

3. 变成时将HashMap替换为SparseArray,可以有效的避免掉了基本数据类型转换成对象数据类型的时间。

关于内存溢出和内存泄漏的总结:
在什么情况下会造成内存泄漏:在activityA中创建一个子线程,子线程中做一个轮训操作,当关闭activity的时候,就有可能造成内存泄漏,因为activity内部一直在做轮训操作,无法释放activity对象,就会造成内存泄漏。
在什么情况下会造成内存溢出:activityB跳转到activityA,关闭A,重新再B中打开A,重复此动作,当内存大于系统分配的运行内存空间的时候,就会造成内存溢出,





多线程:
(1)AsyncTask类 android封装好的类,会提供各种的回到,比如进度,处理结果等等。
(2)view.post()
(3)handler
(4)activity.runUiThread();

线程池:


避免OOM溢出的方法如下:
在android中最主要造成内存溢出最主要的案例就是加载bitmap产生的,所以要对图片进行缩放操作。

UI性能优化:
减少视图的层级、
减少视图层级可以有效的减少内存消耗,因为视图是一个树形结构,每次刷新和渲染都会遍历一次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值