App开发总会遇到内存泄漏的情况,在Eclipse时代我们一般使用MAT来配合分析,Android Studio会方便一些,因为它自带了一个Monitor Memory。下面我们来看看怎么使用这个工具。
首先打开Monitor Memory工具
在Monitor Memory界面上,我们可以实时观察Memory、CPU等的使用情况。
在Memory面板上有两个图标(红圈中),第一个卡车的图标是GC功能,点击可以触发GC;第二个桶状的图标则是统计Memory并生成hprof文件。
我们一般会先触发一次GC,然后再生成hprof文件。hprof文件可以用MAT工具打开来进行分析,当然我们也可以利用Android Studio自带工具来查看。
点击桶状图标,会在Memory面板上显示一个位置,表示生成这个hprof文件的时间位置,如图
同时生成hprof文件并自动打开Android Studio自带的查看工具,如图
这里有三块区域:一区是当前内存中的所有数据类型的相关信息;二区是某个数据类型下的所有对象实例的相关信息;三区是某个对象事例的引用路径。
刚打开的时候,二区和三区是空白的。
当在一区中选中一个数据类型,会在二区中显示这个类型的所有对象实例(注意有的类型的total count是0,表示没有实例)
在二区中选中一个实例,会在三区中显示这个实例的所有引用路径。
通过观察引用路径来找到该实例未回收的原因。
Android Studio的工具用起来很方便,但是功能比较单一,仅仅是查看。所以如果不能很快查找到原因,建议使用MAT或其他一些强大的工具来分析。

利用Android Studio的 Monitor Memory 查找内存泄漏相关推荐

  1. android菜单动画,利用 android studio 制作一个菜单动画

    目的:利用Android studio 编一个菜单动画,以便初步了解Android studio的基本操作,初步了解Android开发的思考方法. 技术: 1.RelativeLayout. 2.sr ...

  2. 使用Xcode的memory graph查找内存泄漏

    由donnywals于2019年12月9日发布 代码无法充分发挥功能的原因很多. 在一篇文章中,我向您展示了如何使用Time Profiler来测量代码中每种方法所花费的时间,以及如何分析结果. 尽管 ...

  3. Android studio 打开monitor 出现error提示 的解决办法 特别是使用了JDK-9

    查看电脑的环境变量中JAVA配置的路径中是不是如下图所示,有可能你的jdk版本为jdk-9,android studio目前还不支持jdk-9. 解决办法: 如果是jdk-9,需要卸载这个jdk,重新 ...

  4. 利用Android Studio实现的简单房贷计算器

    利用Android Studio 4.2.1实现的简单房贷计算器. 比较新颖的地方包括: (1)CheckBox图标的改变. (2)EditText格式的改变. (3)Spinner的使用. (4)房 ...

  5. Android 开发--利用android studio 制作简单文字打怪升级游戏(伪地牢类)1.开始

    本人目前是大三考研党,之前有学过一些杂七杂八的知识,但是没有办法利用这些知识制作一些真正有用的东西出来.后来自学了android开发,学会使用了android studio,终于决定利用android ...

  6. Android开发基础:利用 Android Studio开发看美女应用(4)

    利用 Android Studio开发看美女应用 今天我们会利用 Android Studio开发一个简单的看美女应用,通过它查看互联网上的美女图片.通过本篇文章,你将会学到Android应用简单开发 ...

  7. Android性能优化(2):常见内存泄漏与优化(二)

    文章目录 1. Android虚拟机:Dalvik和ART 1.1 JVM与Dalvik区别 1.2 Dalvik与ART区别 1.3 Dalvik/ART的启动流程 2. 常见内存分析工具 2.1 ...

  8. Android系统性能优化(67)----内存泄漏检测

    Android内存泄漏检测 一.      背景 内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等 ...

  9. java 内存泄漏 工具_Java剖析工具JProfiler入门使用教程:查找内存泄漏的方法

    JProfiler的内存视图会话提供了内存使用情况的动态更新视图以及分配点的信息视图.所有的视图都有几个聚集层并且能够显示现有存在的对象和作为垃圾回收的对象.本文主要介绍如何意识到内存泄漏以及查找内存 ...

最新文章

  1. Oracle 11g学习笔记(四)
  2. EasyUI combobox
  3. 国际最具潜力IT专业认证
  4. ETL异构数据源Datax_工具部署_02
  5. centos cmake安装mysql_CentOS下使用cmake编译安装mysql
  6. IDEA设置文件模板
  7. 省钱兄(微信小程序、h5版本)uniapp淘宝客小程序源码商城前端源码
  8. 2022年ps应该选择哪个版本
  9. 魔百盒ZXV10 B863AV3.2-M/B863AV3.1-M2_S905L3A-B_线刷+卡刷精简固件
  10. win10不能关机如何解决
  11. Python(2)——根据英文字符输出中文星期
  12. 中国第一个 Apache 顶级开源项目的突围之路!
  13. 微软技术大会-无人机为中国电信巡航基站
  14. 编程英语:常见代码错误 error 语句学习(12)
  15. h3c 云服务器操作系统,H3C云服务器安装系统的前期准备
  16. org.springframework.dao.InvalidDataAccessApiUsageException: ERR wrong number of arguments for ‘srem‘
  17. mumu的adb_MuMu进行adb操作
  18. 苹果拟在爱尔兰建数据中心 当地居民抗议
  19. HTML---下拉框、列表框使用详解(select 与 option)
  20. 松本行弘(Ruby发明者):Emacs怎样改变了我的人生

热门文章

  1. Bloom Filter(布隆过滤器)的概念和原理
  2. 11gOCP 1z0-052 :2013-09-11 MGR_ROLE role........................................................A66
  3. Android 关于长按back键退出应用程序的实现
  4. sharepoint2010 SP1 chrome 时常无滚动条
  5. redis部署与卸载
  6. Nmap——主机、端口扫描工具
  7. Junit内部解密之三: 单元测试用例运行的全过程
  8. UVa OJ 120
  9. 关于Session接口的update方法主要有如下几点要注意
  10. Linux学习记录-7