zoukankan      html  css  js  c++  java
  • 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.
  • 相关阅读:
    约合¥1720 LG法国称G Watch将于6月开卖
    c语言中的位移位操作
    兼容的动态加载JS【原】
    Oracle 10g AND Oracle 11g手工建库案例--Oracle 10g
    面向对象思想----不看懊悔!
    学习设计模式--观察者模式(C++)
    使用POI 导入excel
    机器学习 F1-Score, recall, precision
    阿里无线11.11:手机淘宝移动端接入网关基础架构演进之路
    ICE 迁移64位安装问题
  • 原文地址:https://www.cnblogs.com/Jason-Jan/p/7688333.html
Copyright © 2011-2022 走看看