原文地址:谷歌官方文档
随着Android Studio 3.0正式版本的发布,谷歌推出了新的–Android Profile替代了原本的Android Monitor分析工具。这些新的分析工具能够为你的应用程序的CPU、内存和网络活动提供实时数据。你可以执行基于方法跟踪来查看代码执行时间、捕获堆转储、查看内存分配以及检查网络传输文件的详细信息。
为了开启这个Android Profiler 窗口,执行以下步骤:
- 点击 “View”>“Tool Windows”>“Android Profiler”(你也可以点击工具栏上的Android Profiler);
- 如图1所示,在Android Profilter窗口的顶部,选择你要分析的设备①和应用程序进程②。如果你已经通过usb连接了一个设备,但还没有列出它,请确保已经启用usb调试模式。
如果您使用的是 android 模拟器或根设备, Android Profilter会列出所有正在运行的进程, 尽管它们可能不会被调试。启动调试应用程序时, 默认情况下会选择该进程。
Android Profilter现在显示一个共享时间表的视图 (图 1), 其中包括一个包含 CPU、内存和网络使用情况的实时图形的时间线。该窗口还包括时间线缩放控件③、一个用于跳转到实时更新④的按钮, 以及一个显示活动状态、用户输入事件和屏幕旋转事件⑤的事件时间线。
图一. Android Profiler的一个共享时间基线的视图。
这个视图仅显示时间线图。若要访问详细的分析工具, 请单击与要检查的性能数据相对应的关系图。例如, 若要访问检查堆和跟踪内存分配的工具, 请单击内存图表。下面链接的页面提供了有关每个相应的探查器窗口的详细信息。
但是, 默认情况下并非所有的分析数据都可见。如果您看到一条消息“Advanced profiling is unavailable for the selected process,”, 这指出 “高级分析” 对于所选进程不可用, 则需要在运行配置中启用高级分析。
有关每个分析工具的更多文档, 请参见以下内容:
启用高级分析
为了向您显示高级分析数据, Android Studio必须将监控逻辑注入到您编译的应用程序中. 高级分析提供的功能包括:
- 所有分析Profilter窗口上的事件时间线
- Memory Profilter (内存分析)中已分配对象的数目
- Memory Profilter (内存分析)中的垃圾回收事件
- Network Profilter (网络分析)中所有传输文件的详细信息
要启用高级分析, 请按照下列步骤操作:
- 选择 “Run > “Edit Configurations”。
- 在左窗格中选择您的应用程序模块。
- 单击 “Profiling” 选项卡, 然后选中 “Enable advanced profiling”。
现在, 再次生成并运行您的应用程序, 以访问完整的性能分析功能集。但是, 请注意, 高级性能分析会减慢构建速度, 因此只有在您想开始分析应用程序时才应启用它。
注意
高级分析对本机代码不可用。如果您的应用程序是纯本地应用程序 (它没有 Java 活动类), 则高级分析功能不可用。如果您的应用程序使用 JNI, 则某些高级分析功能可用, 如事件时间线、GC 事件、Java 分配的对象和基于 java 的网络活动, 但它无法检测到 native-based 分配和网络活动。