专项: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://test...

Android 内存泄露实践分析

定义 ​内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。(其实说白了就是该内存空间使用完毕之后未回收)即所谓内存泄漏。...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

Android 内存泄露实践分析

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

Android 内存泄露实践分析

原文地址:https://testerhome.com/topics/5822 定义 ​内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存...

Android 内存泄露实践分析

定义 ​内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。(其实说白了就是该内存空间使用完毕之后未回收)即所谓内存泄漏。...

android内存泄露分析

android内存泄露分析–DDMS和MAT的使用MAT下载地址:(https://www.eclipse.org/mat/)1.Android Studio 打开DDMS,如下图所示打开后的界面 ...

Android 内存泄露分析

工具:Android Studio MAT 参考文章: http://www.jianshu.com/p/216b03c22bb8https://www.ibm.com/developerw...

Android 内存泄露分析

一、概述         Java编程中经常容易被忽视,但本身又十分重要的一个问题就是内存使用的问题。Android应用主要使用Java语言编写,因此这个问题也同样会在 Android开发中出现。 本...

Android内存泄露分析

本文参照自Android 内存泄漏总结,做了一些整理,后面对相关类容会继续完善。常常提到Android内存泄露和内存溢出(OOM)等问题,内存泄漏大家都不陌生了,简单粗俗的讲,就是该被释放的对象没有释...

Android内存泄露分析

1 什么是内存泄露java使用有向图机制,通过GC自动检查内存中的对象,如果GC发现一个或一组对象为不可到的状态,则该对象从内存中回收。也就是说,一个对象不被任何引用指向的时候,则该对象会被GC发现的...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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