• Android引导页过多导致OOM内存泄漏


      

      摘要:前几天推广我们APP的时候,有些手机加载引导页的时候会闪退或崩溃,在Bugly显示是OOM异常。

            然后Bugly上面显示的解决方案是:

          

      该异常表示未能成功分配字节内存,通常是因为内存不足导致的内存溢出。
      [解决方案]:OOM就是内存溢出,即Out of Memory。也就是说内存占有量超过了VM所分配的最大。怎么解决OOM,通常OOM都发生在需要用到大量内存的情况下(创建或解析Bitmap,分配特大的数组等),这里列举常见避免OOM的几个注意点:
      1.适当调整图像大小。
      2.采用合适的缓存策略。
      3.采用低内存占用量的编码方式,比如Bitmap.Config.ARGB_4444比Bitmap.Config.ARGB_8888更省内存。
      4.及时回收Bitmap。
      5.不要在循环中创建过多的本地变量。
      6.自定义对内存分配大小。
      7.特殊情况可在mainfests的Application中增加 android:largeHeap="true"属性,比如临时创建多个小图片(地图marker)

      
      这里并没有我想要的答案,我想要简单粗暴的一种方式。
      直到我看到了这篇文章

      
      解决方案:
      Step1: 将initViewPage中
          imageView.layoutParams=params
          imageView.setBackgroundResource(imageIdArray[i])
          注释掉!!!主要是这里面其实就要求内存加载这些图片了,所以这里先就不设置图片了。

      Step2:然后将注释掉的代码贴到PageAdapter的instantiateItem(ViewGroup container,int position)中
         在这里面设置背景图片,提高加载速度,解决OOM问题。






    既然选择了,便不顾风雨兼程。Just follow yourself.
  • 相关阅读:
    《财富自由之路》读后感及读书笔记
    echarts3.x 入门
    Ubuntu 16.04 硬盘安装
    语义化版本控制的规范(转载)
    appcan IDE 无法 请求数据
    jQuery extend 函数
    63342 接口 奇遇 IDEA
    C++调用Java的Jar包
    无法打开 源 文件“stdafx.h”的解决方法
    CString的头文件
  • 原文地址:https://www.cnblogs.com/Jason-Jan/p/7688333.html
Copyright © 2020-2023  润新知