如何用MAT分析Android程序的内存泄露

如何用MAT分析Android程序的内存泄露,第1张

Android应用开发过程中,稍一不小心经常会出现内存泄露,如何用工具来检测下我们的应用是否存在内存泄露呢?MAT就是一款非常好用的分析应用内存使用情况的工具,使用起来也非常简单,下面小编就来和大家分享下具体的 *** 作步骤。

工具/原料

Eclispe

MAT

方法/步骤

在Eclipse中新建一个Android工程,名字叫做:memoryleak。功能很简单,只有一个MainActivity和一个ImageUtil。我们在MainActivity中使用ImageUtil来加载。注意我们的ImageUtil是单例类。在创建的时候需要传入context。

应用起来以后,转屏。转屏以后,MainActivity会重建,导致ImageUtil重新加载。很不幸的是,因为ImageUtil并没有重建,还持有之前的Context,也就是之前的那个MainActivity实例。多次转屏以后,我们在Eclipse的DDMS里面,导出内存映像文件。导出的文件叫做:comexamplememoryleakhprof。

DDMS导出的内存映像文件并不能被MAT直接使用。需要转换一下。在命令行输入:hprof-conv comexamplememoryleakhprof memoryleakhprof。

用MAT打开memoryleakhprof。

点击“Histogram”

在Class Name后面的输入框输入应用的名字:comexamplememoryleak。

可以看到有4个MainActivity实例,如果没有泄露的情况下只应该有一个实例,说明存在内存泄露。在MainActivity上点击右键->"Merge Shortest Paths To GC Roots"->"exclude all phantom/weak/soft etcrefrences"。

在打开的页面中,点击可以看到详细的引用信息。

%================================================

%

这是存储数据的基本步骤

%================================================

1将数据存在文件里(可以是写字板,txt文本,Excel或者其他的数据文件)

2打开file/Import

Data

(假设文件名为test)

3出现Import

Wizard

对话框,点击next,finish

4在Matlab的workspace窗口中出现变量名test,右击选save

as,将数据以mat存放在你需要的位置以后调用只需在对应的路径下,load

testmat或者load('matlab\testmat');此时,程序中将出现test的变量,即数据变量,在程序中直接运用即可,如:

第一、用load命令,具体为load+文件名mat,就可以将mat中的数据放到工作空间里,然后查看修改就容易了。

第二、用save命令,具体为save+文件名(自己取一个)mat,就可以将当前工作区间里的数据保存下来供调用了。

编程环境:

这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。

随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面。

扩展资料:

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等。MATLAB的基本数据单位是矩阵。

它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。

参考资料来源:百度百科-MATLAB

以上就是关于如何用MAT分析Android程序的内存泄露全部的内容,包括:如何用MAT分析Android程序的内存泄露、matlab 如何导入mat数据并查看数据、matlab中的mat文件是什么,怎么用呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9480023.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存