博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 内存监测工具 DDMS --> Heap
阅读量:5329 次
发布时间:2019-06-14

本文共 926 字,大约阅读时间需要 3 分钟。

一、什么是内存泄露

    内存泄露是指程序中间动态分配了内存,但是在程序结束时没有释放这部分内存,从而造成那一部分内存不可用。导致系统运行变慢或应用程序崩溃。
二、如何检测Android中的内存泄露
    Android tools中的DDMS带有一个很不错的内存监测工具Heap,可以检测一个进程的内存变化,根据这个工具我们大致可以测试某个应用是否存在泄漏的可能。
三、具体操作
   1、打开eclipse,切换到DDMS,并确认Devices视图、Heap视图都是打开的;
   2、将手机通过USB链接至电脑,链接时,选择 “USB调试”模式;
   3、链接成功后,在DDMS的Devices视图中将会显示手机设备的序列号,以及设备中正在运行的部分进程信息
   4、在Devices 中,点击要监控的程序。
   5、点击Devices视图界面中最上方一排图标中的“Update Heap”
   6、点击Heap视图
   7、点击Heap视图中的“Cause GC”按钮;
   8、到此为止需检测的进程就可以被监视。如下图:

四、如何判断内存泄露

   Heap视图中部有一个Type叫做data object,即数据对象,也就是我们的程序中大量存在的类类型的对象。在data object一行中有一列是“Total Size”,其值就是当前进程中所有Java数据对象的内存总量,一般情况下,这个值的大小决定了是否会有内存泄漏。可以这样判断:
1.进入某应用,不断的操作该应用,同时注意观察data object的Total Size值
2.正常情况下Total Size值都会稳定在一个有限的范围内.
3.反之如果代码中存在没有释放对象引用的情况,则data object的Total Size值在每次GC后不会有明显的回落,随着操作次数的增多Total Size的值会越来越大,直到到达一个上限后导致进程被kill掉。
   
     在我们的程序中,要是出现某个进程出现了不断增加的现象,可能该应用就存在泄漏的问题。如果某个进程在操作过程中出现程序崩溃,可能该应用程序已申请不到空间,可能存在内存泄露。

转载于:https://www.cnblogs.com/liuxiaozhu/p/4870941.html

你可能感兴趣的文章
SQL Server用户权限详解
查看>>
Python正则表达式
查看>>
Linux进程间通信--命名管道
查看>>
UVa 10970 - Big Chocolate
查看>>
Java基础
查看>>
js输出
查看>>
set,env,export,set -x,set -e;
查看>>
H5多文本换行
查看>>
flask-script插件
查看>>
HAL层三类函数及其作用
查看>>
Odoo 去掉 恼人的 "上午"和"下午"
查看>>
web@h,c小总结
查看>>
java编程思想笔记(一)——面向对象导论
查看>>
Data Structure 基本概念
查看>>
微信内置浏览器不支持 onclick 如何解决?(原因是因为内面中的内容或者标签大部分是动态生成的)...
查看>>
Ubuntu改坏sudoers后无法使用sudo的解决办法
查看>>
记字符编码与转义符的纠缠
查看>>
NEYC 2017 游记
查看>>
【BZOJ 3669】 [Noi2014]魔法森林 LCT维护动态最小生成树
查看>>
[搬运] 写给 C# 开发人员的函数式编程
查看>>