对于Android Profiler我也是在学习中,所以这次打算全程翻译Android Developers上的文章。一方面Developers上文档写的很详细,自己也写不出别的花样;另一方面当做学习笔记,便于以后查阅。建议英文好的同学还是直接看原文,翻译的文章难免加入个人理解,也就可能会导致误解。不习惯使用Profiler的同学还是可以通过”Sdk/tools/monitor“启动Android Monitor的,但估计被去掉是早晚的事。
在Android Studio 3.0及更高版本中,Android Profiler取代了Android Monitor工具。 Android Profiler工具提供了实时数据,可帮助您了解您的应用如何使用资源状态。Android Profiler中包含四个独立的Profiler,分别为:
- CPU Profiler:跟踪CPU的活动。
- Memory Profiler:跟踪Java堆栈和内存分配。
- Network Profiler:跟踪网络事件。
- Energy Profiler:跟踪功耗的状态。
若要打开Profiler窗口,请选择View > Tool Windows > Profiler,或单击工具栏中的 Profile。如果弹出Select Deployment Target对话框提示,请选择要在其上分析应用程序的设备。如果已通过USB连接设备,但未看到列出的设备,请确保已启用USB调试。如果您使用的是Android模拟器或已Root设备,Android Profiler会列出所有正在运行的进程,即使这些进程可能无法调试。当启动可调试应用程序时,默认情况下会选择该进程。在断开设备连接或单击End Session之前,Android Profiler会继续收集分析数据。
- Android Profiler显示当前正在分析的进程和设备。
- 在Sessions窗格中,选择要查看的会话,或启动新的分析会话。
- 使用缩放按钮控制要查看的时间线数量,或使用Attach to live按钮跳转到实时更新。
- 事件时间线显示与用户输入相关的事件,包括键盘活动、音量控制更改和屏幕旋转。
- CPU、内存、网络和功耗的图表共享时间轴视图。
此共享时间轴视图仅显示时间线图。要访问详细的分析工具,请单击与要检查的性能数据相对应的图形。例如,要访问工具以检查堆和跟踪内存分配,请单击Memory视图。默认情况下,并非所有分析数据都可见。如果您看到提示说“Advanced profiling is unavailable for the selected process”,则可以在运行配置中启用高级分析以查看其他数据。
Sessions
您可以将Profiler数据保存为sessions,在退出Android Studio之前会一直保留这些会话。通过多个会话中记录的信息并在它们之间进行切换,可以比较不同场景中的资源使用情况。
- 若要启动新会话,请单击Start a new profiling session按钮,然后从出现的下拉菜单中选择一个应用程序进程。当您记录一个跟踪或抓取堆dump时,Android Studio会将该数据(以及应用程序的网络活动)作为单独的条目添加到当前会话中。
- 若要停止向当前会话添加数据,请单击Stop the current profiling session。
- 若要导入从以前运行的Android Studio导出的跟踪,请单击Start new profiler session,然后选择Load from file。
启用高级分析
为了在运行Android 7.1或更低版本的设备时能显示高级分析数据,Android Studio必须在编译的应用程序中注入监控逻辑。高级分析提供的功能包括:
- 所有Profiler窗口上的事件时间线
- Memory Profiler中分配的对象数
- Memory Profiler中的垃圾收集事件
- Network Profiler中所有传输文件的详细信息
要启用高级分析,请执行以下步骤:
- 选择Run > Edit Configurations。
- 在左窗格中选择应用程序模块。
- 单击Profiling选项卡,然后选中Enable advanced profiling。
- 再次生成并运行应用程序。
高级分析配置会使build过程变慢,因此只有在您希望开始分析应用程序时才应启用它。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。