美文网首页
解决OOM投机取巧的方法(largeHeap)

解决OOM投机取巧的方法(largeHeap)

作者: 浮夸初衷 | 来源:发表于2018-06-06 11:44 被阅读0次

largeHeap详解地址

https://blog.csdn.net/eoeandroida/article/details/77000033

https://blog.csdn.net/qq_33544860/article/details/53187742

以上遇到的问题

首先OOM是什么?

当程序需要申请一段“大”内存,但是虚拟机没有办法及时的给到,即使做了GC操作以后

这就会抛出 OutOfMemoryException 也就是OOM

如何避免OOM?

减少内存对象的占用

I.ArrayMap/SparseArray代替hashmap

II.避免在android里面使用Enum

III.减少bitmap的内存占用

inSampleSize:缩放比例,在把图片载入内存之前,我们需要先计算出一个合适的缩放比例,避免不必要的大图载入。

decode format:解码格式,选择ARGB_8888/RBG_565/ARGB_4444/ALPHA_8,存在很大差异。

IV.减少资源图片的大小,过大的图片可以考虑分段加载

内存对象的重复利用

大多数对象的复用,都是利用对象池的技术。

I.listview/gridview/recycleview contentview的复用

II.inBitmap 属性对于内存对象的复用ARGB_8888/RBG_565/ARGB_4444/ALPHA_8

这个方法在某些条件下非常有用,比如要加载上千张图片的时候。

III.避免在ondraw方法里面 new对象

IV.StringBuilder 代替+

投机取巧不报错的方法:

android:largeHeap="true"  可以增加内存的申请量(在AndroidManifest设置)

相关文章

  • 解决OOM投机取巧的方法(largeHeap)

    largeHeap详解地址 https://blog.csdn.net/eoeandroida/article/d...

  • OOM

    android:largeHeap="true"应用程序向安卓申请更大的空间,适用于加载大图片的时候的oom

  • Android基础(29)内存泄漏

    1)oom是什么?2)什么情况导致oom?3)有什么解决方法可以避免OOM?4)Oom 是否可以try catch...

  • Android内存溢出

    如何避免OOM 1. 图片过大导致OOM(解决方法) 方法1: 等比例缩小图片方法2:对图片采用软引用,及时地进行...

  • 五分钟快速了解各种OOM代码样例及解决方法

    针对目前大家对OOM的类型不太熟悉,那么来总结一下各种OOM出现的情况以及解决方法。把各种OOM的情况列出来,然后...

  • 爱奇艺面试题

    JMM,高并发高吞吐各自适应使用的GC方法,如何造成OOM,解决OOM手动回收对象栈中new的对象生存时间聊聊集合...

  • Java OOM 解决方法

    报错现象 Java 程序出现异常 java.lang.OutOfMemoryError: Java heap sp...

  • 2017面试题总结

    一、如何避免OOM异常 解决方法: 方法 1: 等比例缩小图片 方法 2:对图片采用软引用,及时地进行 recyl...

  • Android OOM问题的What Where How

    知己知彼,百战不殆。要想解决和避免OOM,必须先知道OOM是什么,在哪里会发生,最后才是怎样去解决OOM; Wha...

  • java中常见的线上问题(OOM, CPU过载)

    1.OOM 1.1 常见原因 1.2 定位与解决方法 1.2.1 判断是否是由于“内存分配确实过小” 1.2.2 ...

网友评论

      本文标题:解决OOM投机取巧的方法(largeHeap)

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