zoukankan      html  css  js  c++  java
  • Android内存泄露总结

    Android可能发生内存泄露的地方总结:

    1.查询数据库没有关闭游标

    2.构建adapter时,没有使用缓存的convertView

    3.Bitmap对象不使用的时候调用recycle()方法释放内存

    4.释放对象的引用

    5.单例模式引用context,如果使用actvitiy-context,会造成内存泄露,

    可以使用getApplicationContext()); 或getApplication()代替。 

    参考文档:

    A​n​d​r​o​i​d​ ​内​存​泄​漏​调​试

    http://wenku.baidu.com/view/3dbfb0a1b0717fd5360cdc47.html

    分析内存泄露的办法:

    1.使用MAT分析内存泄露

    2.使用procrank记录内存走势

    使用procrank来跟踪某进程的使用哪个情况我们常常借助与脚本。这样就可以查看某一段时间的内存变化。
    如创建一个文件:trackmem.sh chmod 775 trackmem.sh
    内容如下:
    #!/bin/bash

    while true; do
    adb shell procrank | grep "com.example.studymemroyleak"
    sleep 1
    done
    运行该脚本:
    ./trackmem.sh

     这个脚本的用途是每1秒钟让系统输出一次指定进程的内存使用状况,主要观察Uss的数据,可以直接把数据输出到xls表格

     ./trackmem.sh > data.xls

    然后生成折线图(选择只绘制线条),注意去掉数字的单位(K)。生成图表时,先选择数据,然后再点插入图表即可。

  • 相关阅读:
    利用LibreOffice进行WORD转PDF
    SpringBoot实践
    Solr学习笔记(一)
    HashMap原理(转)
    PDF.js展示本地文件
    设计模式之代理模式
    (一)DUBBO基本学习
    如何架构一个框架
    冒泡排序
    js 函数传数组参数
  • 原文地址:https://www.cnblogs.com/androidstudy/p/3816778.html
Copyright © 2011-2022 走看看