Android Studio性能分析(一)

1,089 阅读3分钟

如果应用程序响应缓慢、动画不连贯、死机或耗电过多,则该应用程序被认为性能不佳。解决性能问题涉及识别您的应用程序在哪些方面使用资源效率低下,例如CPU、内存、图形、网络或设备电池。

Android Studioo提供了多种分析该工具来帮助发现和可视化潜在问题:

  • CPU分析器:有助于追踪运行时性能问题。
  • 内存分析:有助于跟踪内存分配。
  • Network profile:监控网络流量使用情况。
  • 能源分析器:跟踪能源使用情况,这可能会导致电池耗尽。

image.png

  1. Android Profile显示当前正在分析的进程和设备。
  2. 在”SESSIONS“窗口中,选择要查看的会回话,或启动新的分析回话。
  3. 使用缩放按钮控制要查看多少时间线,或使用”附加到实时“按钮条朱涵到实时更新。
  4. 事件事件线显示与用户输入相关的事件,包括键盘活动、音量控制更改和屏幕旋转。
  5. 共享时间线试图,其中包括CPU、内存、网络和能源使用情况的图表。

Jetpack Benchmark库允许您的应用程序测量各种重要操作:

  • Macrobenchmark:衡量重要的性能用例,包括应用程序启动和由UI动画或滚动等操作触发的重绘。
  • Microbenchmark:衡量特定功能的CPU成本。

可配置的应用程序

Profileable是Android Q中引入的manifest配置,可以指定设备的用户是否可以通过Android Studio、Simpleperf、Perfetto等工具对这个应用进行profile。

profileable之前,大多数开发人员只能在Android上分析可调式的应用程序,这会增加显著的性能成本作为副作用,这些性能成本可能会使分析结果无效,尤其是当它们与时间相关时。

下面的表总结了可调试应用程序和配置应用程序之间的差异。

特征可调试可配置的
内存分析器全量包含:默认视图、本机内存分析器
不包含 - 事件时间表、堆转储、实时分配记录
CPU分析器全量包含:默认视图、UI启动的记录
不包含 - 事件时间表、显示API发起的录制状态
网络分析器包含不包含
电量分析器包含不包含
事件监视器包含不包含

Profileable已经被引入,因此开发人员可以选择允许它们的应用程序信息公开给分析工具,同时产生非常少的性能成本。可配置的APK本质上是一个发布的APK,在清单文件的<application>部分添加一行<profileable android:shell="true"/>

要构建可配置应用程序,您需要先构建一个发布应用程序,然后更新其清单文件,这会将发布应用程序变为可配置应用程序。

构建发布应用

要构建用于分析的发布应用程序,请执行以下操作:

  1. build.gradle文件里面添加debug签名,如果你已经有一个发布的版本,可以跳过这一步。
        buildTypes {
            release {
                signiingConfig signingConfigs.debug
            }
        }
  1. 在Android Studio,选择Build > Select Build Variant...并选择release变量。

将版本更改为可配置

  1. 通过打开AndroidManifest.xml文件并在<application>中添加以下内容,将上面发布应用程序转换为可配置应用程序。
<profileable android: shell="true">
  1. 根据SDK版本,你可能在应用层的build.gradle文件添加下面这一行
aaptOptions {
    additionalParameters = ["--warn-manifest-vvallidation"]
}

剖析一个可剖析的应用程序

要分析可分析的应用程序,请执行以下操作:

  1. 从开发模拟器或设备,启动应用程序
  2. Android Studio中,通过选择View > Tool Windows > Prodiler启动分析器。
  3. 应用程序启动后,单击+分析器中的按钮以查看下拉菜单。选择你的设备,然后在Other profileable processes下选择应用程序条目。

image.png

  1. 检查器应附加到应用程序。只有CPU和内存分析器可用,内存分析器的功能有限。

image.png

image.png

image.png