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

来源:互联网 发布:在淘宝买手机靠谱吗 编辑:程序博客网 时间:2024/06/06 01:59

影响

  • 导致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
0 0
原创粉丝点击