Android Profiler分析(一)

原理

Oprofile是另一个功能更强大的性能数据采集和分析工具,其工作原理如下:

  • 它利用性能计数器(Performance Counter)或者定时器(针对kernel不支持性能计数器的情况),通过连续的采样获得统计数据,从而对内核和用户空间进程进行性能分析。
  • 以性能计数器为例,在系统运行过程中,当某个事件发生时,对应的性能计数器就会自加。当达到计数器的设定值时会产生一个中断。Oprofile驱动利用这个中断来进行采样统计。通过获取中断发生时PC指针的值以及内核中保存运行的任务的信息等,并把它们转化成对测评有用的数据。

Oprofile包括内核驱动和用户空间工具两个部分,其中:

  • 内核驱动实现了一个oprofilefs虚拟文件系统。它挂载到/dev/oprofile,用来向用户空间报告数据和接收来自用户空间的设置。它是用户空间进程与内核通信的桥梁。驱动中还包括了与架构相关和通用的驱动,通过它们访问性能计数器寄存器、收集数据后报告给用户空间。守护进程用户从内核接收数据并保存在磁盘上以备分析使用。
  • 在用户空间提供了两个工具:oprofiled(作为守护进程在后台通过和/dev/oprofile交互以获取驱动收集的数据)、opcontrol(用户操作的控制工具,它通过读写oprofilefs来控制采样相关的设置)

Android Profiler的使用流程

启用Profiler
如果您使用的是运行 Android 7.1 或更低版本的设备,则默认情况下,并不是所有分析数据均可见。 如果您看到一条消息,其显示“Advanced profiling is unavailable for the selected process”,则需要启用高级分析,Android Studio 必须在您编译后的应用中插入监控逻辑。 高级分析工具提供的功能包括:

  • Event 时间线(所有分析器窗口中均有)
  • 分配对象数量(Memory Profiler 中)
  • 垃圾回收 Event(Memory Profiler 中)
  • 有关所有传输的文件的详情(Network Profiler 中)

要启用高级分析,请按以下步骤操作:

  1. Run > Edit Configurations.
  2. 选中左侧要分析的APP
  3. 选定Profiling tab > Enable advanced profiling
  4. 重新构建项目
  5. 点击View > Tool Windows > Android Profiler或者点击工具栏的图标即可打开
    在这里插入图片描述

注意,高级分析会减缓您的构建速度,所以仅当您想要开始分析应用时才启用此功能。

按钮①的位置选择设备,通过按钮②的位置选择想要的app进程,工具最底部显示了一个时间轴,其中包含了CPU、内存和网络使用的实时图。该窗口还包括时间轴缩放控制按钮③,一个跳转到实时更新的按钮④,以及显示活动状态、用户输入事件和屏幕旋转事件⑤的事件时间轴
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zhzhangnews/article/details/91562336