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

Android Studioo供给了多种分析该东西来协助发现和可视化潜在问题:

  • CPU分析器:有助于追寻运行时功用问题。
  • 内存分析:有助于跟踪内存分配。
  • Network profile:监控网络流量运用情况。
  • 动力分析器:跟踪动力运用情况,这或许会导致电池耗尽。

Android Studio性能分析(一)

  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下挑选使用程序条目。

Android Studio性能分析(一)

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

Android Studio性能分析(一)

Android Studio性能分析(一)

Android Studio性能分析(一)