当前位置: 首页 > article >正文

android 性能分析工具(03)Android Studio Profiler及常见性能图表解读

说明:主要解读Android Studio Profiler 和 常见性能图表。

Android Studio的Profiler工具是一套功能强大的性能分析工具集,它可以帮助开发者实时监控和分析应用的性能,包括CPU使用率、内存使用、网络活动和能耗等多个方面。以下是对Android Studio Profiler工具的总体介绍:

  • CPU Profiler:CPU Profiler用于监测应用的CPU使用率和线程活动,可以查看实时的CPU使用情况,并分析线程活动及函数调用。它可以帮助开发者了解应用的处理器时间分配,发现代码中的性能瓶颈。
  • Memory Profiler:Memory Profiler用于监测内存使用情况,帮助识别可能导致应用卡顿、冻结甚至崩溃的内存泄漏和内存抖动。它允许开发者检查应用的内存使用情况,并识别内存泄漏。
  • Network Profiler:Network Profiler用于监测网络请求,显示请求耗时和数据传输情况。这对于分析和优化网络性能非常有用,尤其是在移动应用中,网络延迟和数据传输效率对用户体验有着直接的影响。
  • Energy Profiler:Energy Profiler用于监测应用的能耗,为开发者提供优化建议。它展示了应用在前台和后台时消耗电池的情况,以及不同组件(如GPS、WiFi、传感器)的电池使用情况。

Profiler界面可以通过点击Android Studio底部工具栏的“Profiler”标签来打开。在打开的窗口中,你将看到CPU、Memory、Network和Energy这四种性能数据的图表。开发者可以通过这些工具实时监控应用的资源使用情况,从而识别出可能导致应用性能下降的问题所在。

使用Profiler进行性能分析的基本步骤包括:

  1. 启动应用并连接设备。
  2. 在Profiler界面中选择相应的性能分析工具(CPU、Memory等)。
  3. 记录性能数据,进行操作。
  4. 分析记录的数据,查找性能瓶颈。

Android Studio Profiler提供了丰富的功能,包括但不限于Call Chart、Flame Chart、Top Down和Bottom Up等多种数据图表,帮助开发者从不同维度分析性能数据。通过这些工具,开发者可以更深入地理解应用的性能特性,并进行相应的优化。接下来我们开始解读。

1 Android Studio自带Profiler

android自带的profiler工具目前一共有4个,CPU Profiler、memory Profiler、Network Profiler和 Battery Profiler。关于Android Profiler的整体介绍:Android 开发者之Android Profiler概览

1.1 关于CPU Profiler的解读

CPU性能分析:用于实时检查应用的 CPU 使用率和线程活动,也可以检查记录的方法轨迹、函数轨迹和系统轨迹的详情。

概览:Android 开发者之使用 CPU 性能剖析器检查 CPU 活动

关于Simpleperf的解读,概览->:Android 开发者之Simpleperf

关于Simpleperf的说明:Android Studio 3.0之后的版本中已经包含了 Simpleperf 的图形前端,用于CPU性能分析。一般来说图形前端够用了,但也可以直接使用 Simpleperf。Simpleperf 是一个通用的命令行 CPU 性能剖析工具,包含在面向 Mac、Linux 和 Windows 的 NDK 中。关于Simpleperf命令行工具 详细使用文档->:simplePerf工具命令行指南(?)

1.2 关于 memory Profiler的解读

内存性能分析:主要帮助识别可能会导致应用卡顿、冻结甚至崩溃的内存泄漏和内存抖动。

概览:Android 开发者之使用内存性能分析器查看应用的内存使用情况

1.3 关于network Profiler的解读

网络性能分析:监控实时网络活动,包括发送和接收的数据以及当前的连接数。

概览:Android 开发者之利用网络性能剖析器检查网络流量

Android 开发者之使用内存性能分析器查看应用的内存使用情况

1.4 关于energy Profiler的解读

能耗性能分析:会监控 CPU、网络无线装置和 GPS 传感器的使用情况,并直观地显示其中每个组件消耗的电量。能耗性能剖析器还会显示可能会影响耗电量的系统事件(唤醒锁定、闹钟、作业和位置信息请求)的发生次数(注意:能耗性能剖析器并不会直接测量耗电量,而是使用一种模型来估算设备上每项资源的耗电量)

概览:Android 开发者之使用能耗性能剖析器检查耗电量

2 常见性能图表解读

2.1 调用关系图

调用图提供了一种图形化的表示方法,用于展示方法跟踪或函数跟踪,其中调用的周期和时间在水平轴上表示,其被调用者沿垂直轴显示。对系统API的调用以橙色显示,对您应用自身方法的调用以绿色显示,对第三方API(包括Java语言API)的调用以蓝色显示。图长这样:

官方链接为:Call chart  |  Android Studio  |  Android Developers

2.2 事件表

事件表列出了所选线程中的所有调用。您可以通过点击列标题对它们进行排序。通过选择表中的一行,您可以在时间轴上导航到所选调用的开始和结束时间。这使您能够准确定位时间轴上的事件。图长这样:

官方链接为:Events table  |  Android Studio  |  Android Developers

2.3 火焰图

火焰图标签提供了一个倒置的调用图,它聚合了相同的调用栈。也就是说,相同的方法或函数,如果拥有相同的调用者序列,会被收集并表示为火焰图中的一个更长的条形(而不是像调用图中那样显示为多个较短的条形)。这样做可以更容易地看出哪些方法或函数消耗了最多的时间。然而,这也意味着水平轴不代表时间线;相反,它表示每个方法或函数执行所需的相对时间量。图长这样:

官方链接为:Flame chart  |  Android Studio  |  Android Developers

2.4 进程内存

对于部署在运行 Android 9 或更高版本的设备上的应用程序,进程内存(常驻集)部分显示了应用程序所使用的物理内存量。

官方链接为:Process Memory (RSS)  |  Android Studio  |  Android Developers

2.5 自上而下和自下而上的图表

2.5.1 自上而下表(子上而下调用)

2.5.2 自下而上表(自上而下被调用)

官方链接为:Top down and bottom up charts  |  Android Studio  |  Android Developers


http://www.kler.cn/a/407313.html

相关文章:

  • 一种简单高效的RTSP流在线检测方法,不需要再过渡拉流就可以获取设备状态以及对应音视频通道与编码格式
  • 基于YOLOv8深度学习的智慧农业果园果树苹果类果实目标检测系统(PyQt5界面+数据集+训练代码)
  • Redis的过期删除策略和内存淘汰机制以及如何保证双写的一致性
  • 文件管理 II(文件的物理结构、存储空间管理)
  • 云服务器部署WebSocket项目
  • 【Python TensorFlow】进阶指南(续篇三)
  • 绝世唐门:雨浩黑发泪痣形象,王东无新建模,动画漫画对比凸显
  • 百度在下一盘大棋
  • 简述C++STL-队列
  • PHP 二分法查找算法
  • React.memo 的使用
  • [Redis#4] string | 常用命令 | + mysql use:cache | session
  • 摄影:相机控色
  • Linux系统Docker部署开源在线协作笔记Trilium Notes与远程访问详细教程
  • 【笔记】自动驾驶预测与决策规划_Part7_数据驱动的预测方法
  • Web3的核心技术:区块链如何确保信息安全与共享
  • LLaMA-Mesh: Unifying 3D Mesh Generation with Language Models 论文解读
  • STM32标准库文件移植和keil工程创建
  • IntelliJ IDEA 2024.3 K2 模式已发布稳定版,Android Studio Meerkat 预览也正式支持
  • 信息与网络安全需要大数据安全分析
  • 接口上传视频和oss直传视频到阿里云组件
  • 机械设计学习资料
  • 利用Matlab对语音信号进行短时分析
  • pytorch 49 GroundingDINO导出为onnx模型实现python与c++部署
  • 小白学多线程(持续更新中)
  • 法语旅游常用口语-柯桥学外语到蓝天广场泓畅学校