Android性能专项测试之Heap Snapshot工具

Speed up your app

Heap Snapshot能做什么?

获取Java堆内存详细信息,可以分析出内存泄漏的问题

Heap Dump启动

在内存面包中,点击图中红色标注的按钮,就会显示我们的Heap Snapshot面包

Heap Snapshot面板

Heap Snapshot详细信息面板

该面板里的信息可以有三种类型:app heap/image heap/zygote heap.

分别代表app 堆内存信息,图片堆内存信息,zygote进程的堆内存信息。

A区域

列举了堆内存中所有的类,一下是列表中列名:

名称 意义
Total Count 内存中该类的对象个数
Heap Count 堆内存中该类的对象个数
Sizeof 物理大小
Shallow size 该对象本身占有内存大小
Retained Size 释放该对象后,节省的内存大小

B区域

当我们点击某个类时,右边的B区域会显示该类的实例化对象,这里面会显示有多少个实体,以及详细信息。

名称 意义
depth 深度
Shallow Size 对象本身内存大小
Dominating Size 管辖的内存大小

当你点击某个对象时,将展开该对象内部含有哪些对象,同时C区域也会显示哪些对象引用了该对象:

C区域

的某对象引用树对象,在这里面能看出其没谁引用了,比如在内存泄漏中,可以看出来它被谁引用,比如上图,引用树的第一行,可以看出来,该对象被Object[12]对象引用,索引值为1,那我们展开后,可以看到,该Object[12]是一个ArrayList.

Android studio1.4的更新

1.4的面板有一些变化:

较之前添加了一个数据显示方式的选择,可以选择类名排列或者包名排列:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-06 07:57:40

Android性能专项测试之Heap Snapshot工具的相关文章

Android性能专项测试之Batterystats

Batterystats & Battery Historian Walkthrough Battery Historian Charts Android应用的耗电量统计 SupplicantState Viewing Battery Use Data batterystats使用条件 5.0以上系统 battery-historian脚本 batterystats的启动 启动统计Battery数据的话,首先要初始化batterystats数据 adb kill-server > adb d

Android专项测试之Heap Viewer工具

参考文章:Heap Viewer Heap Viewer能做什么? 实时查看App分配的内存大小和空闲内存大小 发现Memory Leaks Heap Viewer使用条件 5.0以上的系统,包括5.0 开发者选项可用 Heap Viewer启动 可以直接在Android studio工具栏中直接点击小机器人启动: 还可以在Android studio的菜单栏中Tools也可以: 如果你不用Android studio,可以在SDK下的tools下的monitor程序打开: Heap Viewe

Android性能专项测试之battery-historian

数据准备 battery-historian工具需要使用bugreport中的Battery History 数据,我们在开始的时候需要通过以下命令来打开电池数据的获取以及重置: <code class="hljs livecodeserver has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source C

Android性能专项测试之GPU Profile

Testing Display Performance Speed up your app GPU Monitor能做什么? 分析GPU的性能,实时查看绘制每一帧所花费的时间 GPU Monitor使用准备 root 手机 开发者选项中的Gpu profile开关打开 Android Studio 1.4+ GPU Monitor启动 在Android Monitor中点击GPU,就已经打开了该工具,这个时候你在所选App界面中操作的话,面板中就会实时显示绘制数据: GPU Monitor的4类

Android性能专项测试之耗电量统计API

参考文章:Android应用的耗电量统计 深入浅出Android App耗电量统计 Battery stats - CPU total vs CPU foreground 深入浅出 Android App 耗电量统计 浅析Wakelock机制与Android电源管理 耗电量API Android系统中很早就有耗电量的API,只不过一直都是隐藏的,Android系统的设置-电池功能就是调用的这个API,该API的核心部分是调用了com.android.internal.os.BatteryStat

Android性能专项测试测试点指导(二)

Android性能专项测试测试点指导(一) 上一篇文章通过导图的方式介绍了性能专项的几个测试点,那么今天将会详细阐述下. 内存: 内存泄漏: 老生常谈的最多就是这货,这家伙的测试方法其实是最简单也是最难的,为什么简单,因为你要定位到路径,只需要重复操作即可,比如你怀疑播放器泄漏了,重复进入退出N次,那么就可以确定是播放器出问题了,可以提单了:说难,你需要进一步分析到底是哪里泄漏了,通过MAT工具去对比,去分析定位到类,那就需要精力和时间了,通常还吃力不讨好-最近,出现了这样一个工具LeakCan

Android安全专项测试之Dex2jar

dex2jar 辅助工具 JD-GUI dex2jar包 下载完dex2jar包后,解压缩后得到下面的目录: 反编译 讲APK包后缀名改为.zip文件,然后解压缩,解压缩后得到的文件目录如下: 这个里面和apktool工具反编译的文件是有区别的,比如AndroidManifest.xml文件没有之前那么清晰,看不到原来数据: 当然这个地方我们不关心这个,我们主要看classes.dex文件,把这个文件copy到dex2jar目录下. 给d2j_invoke.sh添加执行权限,后执行如下命令: c

安卓 App 性能专项测试之流畅度深度解析-上篇

指标背景 流畅度,顾名思义是用户感知使用App页面时的流畅情况,"App卡不卡",这是用户最直接的感受. 但是要用量化之后的数据衡量流畅度,在Android平台这边并没有直接有效的方式/手段去监控. 帧率&刷新频率 首先需要了解到两个概念: 刷新频率(Refresh Rate) 代表屏幕在一秒内刷新操作的次数,这取决于硬件的固定参数,例如60HZ. 帧率(Frame Rate) 代表GPU在一秒内绘制操作的帧数,例如常见的24fps,60fps,单位是fps(每秒帧数),很多游

Android性能优化全方面解析

目的 公司的新需求终于解决完了,离测试和发布还有段时间,第一次体验了下没需求没bug的感觉,真是舒爽~然后翻了翻有什么可以学的.无意翻到了Android后期发展的五大趋势.一.性能优化.二.高级UI.三.JNI/NDK开发.四.架构师.五.RN开发.这也许将会是我的进阶趋势.早已知道在瓶颈期的我,似乎看到了突破的希望的.初级进阶中级也好,中级进阶高级也罢,现在的市场无非是根据经验规定的,根据能力的少之又少. 其实,关注我的或者在群里的小伙伴也知道,UI那块我问题不大.但是高级UI就有难度了.我们