Android Studio 3.0 中的 Android Profiler

在Android Studio 3.0中, 新的Android Profiler窗口会代替Android Monitor 工具。新的性能分析工具为你的app提供 cpu , 内存,网络活动的实时数据。你可以执行一个样例方法用来追踪你的代码的执行时间、捕获堆存储、查看内存分配和网络传输的详情。

打开Android Profiler 窗口需要下面这些步骤:

1.点击 View > Tool Windows > Android Profiler (你也可以在工具栏中点击 Android Profiler )

2.在 Android Profiler 窗口的顶部,如图1所示,选择你想要分析的设备 1 和进程 2。如果你已经使用USB连接到一台设备上但并没有看到它在列表上,检查你的设备,确保它开启了USB调试模式。

如果你使用的是 Android 模拟器或者是已经被 root 的设备,
那Android Profiler 将会列出所有的进程,甚至是那些不允许被调试的进程。

Android Profiler 现在会展示一个共享的时间线视图(图1),其中包含一个具有 CPU 、内存和网络使用实时的时图表的时间线。窗口当然也包含时间线缩放控制 3、跳转到实时更新的按钮 4 以及一个展示活动状态 、用户的输入事件和屏幕旋转事件的事件时间线 5

**图1**. Android Profiler 的标准时间线视图

共享时间线视图只展示时间线图表。如果想查看详细的分析工具,只需要点击符合你想查看性能数据的视图。例如,想要访问拦截堆和追踪内存分配工具,点击MEMORY图表即可。下面的链接提供了关于每个相应分析窗口的更多信息。

但是,并不是所有的分析数据都是默认可见的。如果你看到一条消息说“Advanced profiling is unavailable for the selected process”,那你就需要在你的运行配置中开启 advanced profiling。

关于每个分析器的更多文档,查看下面链接:

开启 advanced profiling

为了向你展示 advanced profiling 数据, Andorid Studio 需要在你的编译app中添加监视逻辑。advanced profiling 提供的特性包含:

  • 所有 Profiler Windows 的时间线

  • Memory Profiler 中分配对象的数量

  • Memory Profiler 中 GC 的事件

  • 关于 Network Profiler 中所有传输文件的详情

开启 advanced profiling, 需要这些步骤:

  1. 选择 Run > Edit Configurations

  2. 在左边的面板选择你的app模块。

  3. 点击 Profiling 选项卡然后选择 Enable advanced profiling

现在你可以再次的运行和构建你的app,来访问完整的性能分析。 但是,请注意 advanced profiling 会拖慢你的构建速度,所以你应该只有在你想要分析你的app的时候开启。

注意: Advanced profiling 对 native code 是无效的。如果你的 app 是一个纯 native code app (它没有一个 Java Activity 累),advanced profiling 功能是无效的。 如果你的 app 使用 JNI, 有些 advanced profiling 功能是有效的, 例如时间线、GC 事件、Java 分配对象和基于 Java 的网络活动, 但 它不能发现基于原生的分配和网络活动。