1.OOM的概念
①:outofMemoryError: 内存溢出;加载到内存的资源超过限制,所以闪退而崩掉了;
②:
2.分析出现OOM的原因:
集合中有对象的引用,使用完没有清空,导致内存泄漏,从而导致内存溢出;
①:导致OOM的原因:图片,for(1000000)不停的new对象;
②:2种解决思路:
对图片的显示要求不高,就是用二次采样;
对图片要求显示的清晰,就要使用分块显示;
3.解决OOM的方法:
二次采样
1.得到图片的宽高信息
2.得到屏幕的宽高信息
3.两两相除得到采样率
4.采样率设置给BitmapFactory,新图片bitmap对象,设置给控件;
好处:
1.加载图片的OOM问题;
2.可以使图片根据用户手机不同的性能进行不同效果的展示,好的手机,可以使图片变得好看,不好的手机呢,也不会出现OOM;