专项:Android内存泄露实践分析

转载 2016年08月31日 10:45:36

影响

  • 导致OOM
  • 糟糕的用户体验
  • 鸡肋的App存活率

成效

  • 内存泄露是一个持续的过程,随着版本的迭代,效果越明显
  • 由于某些原因无法改善的泄露(如框架限制),则尽量降低泄露的内存大小
  • 内存泄露实施后的版本,一定要验证,不必马上推行到正式版,可作为beta版持续观察是否影响/引发其他功能/问题

内存泄露实施后,项目的收获:

  • OOM减少30%以上
  • 平均使用内存从80M稳定到40M左右
  • 用户体验上升,流畅度提升
  • 存活率上升,推送到达率提升

类型

  • IO
    • FileStream
    • Cursor
  • Bitmap
  • Context

    • 单例
    • Callback
  • Service

    • BraodcastReceiver
    • ContentObserver
  • Handler

  • Thread

技巧

  • 慎用Context

    • Context概念
    • 四大组件Context和Application的context使用参见下表

  • 善用Reference

    • Java引用介绍
    • Java四种引用由高到低依次为:强引用  >  软引用  >  弱引用  >  虚引用
    • 表格说明
    类型 垃圾回收时间 生存时间
    强引用 永远不会 JVM停止运行时终止
    软引用 内存不足时 内存不足时终止
    弱引用 垃圾回收时 垃圾回收时终止
    虚引用 垃圾回收时 垃圾回收时终止
  • 复用ConvertView

  • 对象释放

    • 遵循谁创建谁释放的原则

    • 示例:显示调用clear列表、对象赋空值

转自:https://testerhome.com/topics/5822

(转)专项:Android 内存泄露实践分析

今天看到一篇关于Android 内存泄露实践分析的文章,感觉不错,讲的还算详细,mark到这里。原文发表于:Testerhome;作者:ycwdaaaa ; 原文链接:https://testerho...
  • qq446282412
  • qq446282412
  • 2016年09月18日 19:53
  • 1038

Android 性能优化之使用MAT分析内存泄露问题

我们平常在开发Android应用程序的时候,稍有不慎就有可能产生OOM,虽然JAVA有垃圾回收机,但也不能杜绝内存泄露,内存溢出等问题,随着科技的进步,移动设备的内存也越来越大了,但由于Android...
  • xiaanming
  • xiaanming
  • 2015年01月09日 08:50
  • 33439

Android 内存泄露实践分析

专项:Android 内存泄露实践分析 微信分享 定义 ​内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。...
  • sjyttkl
  • sjyttkl
  • 2016年09月18日 15:12
  • 358

Android 内存泄漏总结(超级实用)

Android 内存泄漏总结内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释放,一直被某个或某些实例所持有却不...
  • a394268045
  • a394268045
  • 2016年06月22日 16:45
  • 7154

Android内存优化方案和内存泄露检测分析方法

常见内存泄露及优化方案1、单例错误写法:public class AppSettings { private static AppSettings sInstance; private ...
  • iromkoear
  • iromkoear
  • 2017年04月26日 20:54
  • 474

Android中常见的内存泄露分析

前言 Android应用因为本身可用内存的限制,需要特别重视内存泄露的问题,本文总结了Android中常见的一些内存泄露原因及避免方式。 一、单例造成的内存泄露 由于单例的静态特性使得单...
  • qqchenjian318
  • qqchenjian318
  • 2016年12月20日 17:32
  • 494

android 分析内存泄露情况

转自 guolin CSDN 虽说现在的手机内存都已经非常大了,但是我们大家都知道,系统是不可能将所有的内存都分配给我们的应用程序的。没错,每个程序都会有可使用的内存上限,这被称为堆大小(Hea...
  • sunny_wj
  • sunny_wj
  • 2016年01月20日 17:03
  • 1168

Android Studio 分析内存泄漏

内存分析入门
  • cxq234843654
  • cxq234843654
  • 2016年04月26日 15:12
  • 4634

【腾讯优测干货分享】Android 内存泄漏分析心得

本文来源:QQ空间终端开发团队公众号 前言对于C++来说,内存泄漏就是new出来的对象没有delete,俗称野指针; 对于Java来说,就是new出来的Object 放在Heap上无法被GC回收;本...
  • Tencent_Bugly
  • Tencent_Bugly
  • 2017年01月22日 15:22
  • 986

Android内存泄露案例分析(内存分析工具DDMS和MAT工具)

本文整理自:【技术公开课】Android内存泄漏案例分析(点击链接,观看视频),演讲PPT>>下载地址。 一款优秀的Android应用,不仅要有完善的功能,也要有良好的体验,而性能是影响体验...
  • macdroid
  • macdroid
  • 2015年09月08日 13:23
  • 2644
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:专项:Android内存泄露实践分析
举报原因:
原因补充:

(最多只允许输入30个字)