如果使用程序呼应缓慢、动画不连贯、死机或耗电过多,则该使用程序被认为功用不佳。处理功用问题涉及识别您的使用程序在哪些方面运用资源效率低下,例如CPU、内存、图形、网络或设备电池。
Android Studioo供给了多种分析该东西来协助发现和可视化潜在问题:
- CPU分析器:有助于追寻运行时功用问题。
- 内存分析:有助于跟踪内存分配。
- Network profile:监控网络流量运用情况。
- 动力分析器:跟踪动力运用情况,这或许会导致电池耗尽。
- Android Profile显现当时正在分析的进程和设备。
- 在”SESSIONS“窗口中,挑选要检查的会回话,或发动新的分析回话。
- 运用缩放按钮控制要检查多少时间线,或运用”附加到实时“按钮条朱涵到实时更新。
- 事情事情线显现与用户输入相关的事情,包括键盘活动、音量控制更改和屏幕旋转。
- 同享时间线企图,其中包括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"/>
。
要构建可装备使用程序,您需要先构建一个发布使用程序,然后更新其清单文件,这会将发布使用程序变为可装备使用程序。
构建发布使用
要构建用于分析的发布使用程序,请履行以下操作:
- 在
build.gradle
文件里面增加debug签名,如果你现已有一个发布的版别,能够跳过这一步。
buildTypes {
release {
signiingConfig signingConfigs.debug
}
}
- 在Android Studio,挑选
Build > Select Build Variant...
并挑选release变量。
将版别更改为可装备
- 经过翻开
AndroidManifest.xml
文件并在<application>
中增加以下内容,将上面发布使用程序转换为可装备使用程序。
<profileable android: shell="true">
- 根据SDK版别,你或许在使用层的
build.gradle
文件增加下面这一行
aaptOptions {
additionalParameters = ["--warn-manifest-vvallidation"]
}
分析一个可分析的使用程序
要分析可分析的使用程序,请履行以下操作:
- 从开发模拟器或设备,发动使用程序
- 在Android Studio中,经过挑选View > Tool Windows > Prodiler发动分析器。
- 使用程序发动后,单击
+
分析器中的按钮以检查下拉菜单。挑选你的设备,然后在Other profileable processes下挑选使用程序条目。
- 检查器应附加到使用程序。只要CPU和内存分析器可用,内存分析器的功用有限。