分析 Android 应用
在将应用部署到应用商店之前,必须先识别并修复任何性能瓶颈、过度占用内存或网络资源利用效率低下的问题。 可以使用两个探查器工具来实现此目的:
- Xamarin Profiler
- Android Studio 中的 Android Profiler
本指南介绍了 Xamarin Profiler,并提供了有关如何开始使用 Android Profiler 的详细信息。
Xamarin Profiler
Xamarin Profiler 是独立的应用程序,与 Visual Studio 和 Visual Studio for Mac 集成,用于从 IDE 中分析 Xamarin 应用。 有关使用 Xamarin Profiler 的详细信息,请参阅 Xamarin Profiler。
注意
必须订阅 Visual Studio Enterprise 才能解锁 Windows 版 Visual Studio Enterprise 或 Visual Studio for Mac 中的 Xamarin Profiler 功能。
Android Studio Profiler
Android Studio 3.0 及更高版本含有 Android Profiler 工具。 你可以使用 Android 探查器来衡量使用 Visual Studio 生成的 Xamarin Android 应用的性能,而无需 Visual Studio Enterprise 许可证。 但是,与 Xamarin Profiler 不同,Android Profiler 没有与 Visual Studio 集成,并且只能用于分析已提前生成并导入 Android Profiler 的 Android 应用程序包 (APK)。
在 Android Profiler 中启动 Xamarin Android 应用
下列步骤介绍如何在 Android Studio 的 Android Profiler 工具中启动 Xamarin Android 应用程序。 在下面的示例屏幕截图中,使用 Android Profiler 生成并分析了 Xamarin Forms 示例应用:
在 Android 项目生成选项中,禁用“使用共享运行时”。 这可确保 Android 应用程序包 (APK) 的生成不依赖于共享开发时间 Mono 运行时。
生成用于“调试”的应用,并将其部署到物理设备或仿真器中。 这可生成 APK 的已签名“调试”版本。 对于 XamagonXuzzle 示例,生成的 APK 名为 com.companyname.XamagonXuzzle Signed.apk。
打开项目文件夹,然后导航到 bin/Debug。 在此文件夹中,找到 Signed.apk 版本的应用并将其复制到易于访问的位置(例如桌面)。 在下面的屏幕截图中,已找到 APK com.companyname.XamagonXuzzle Signed.apk,并已将其复制到桌面:
启动 Android Studio,然后选择“分析或调试 APK”:
在“选择 APK 文件”对话框中,导航到先前生成和复制的 APK。 选择 APK,然后单击“确定”:
Android Studio 将加载 APK 并反汇编 classes.dex:
加载 APK 后,Android Studio 显示以下 APK 项目屏幕。 右键单击左侧树视图中的应用名称,然后选择“打开模块设置”:
导航到“项目设置”>“模块”,选择应用的“-已签名”节点,然后单击“<无 SDK>”:
在“模块 SDK”下拉菜单中,选择用于生成应用的 Android SDK 级别(在此示例中,使用 API 级别 26 来生成 XamagonXuzzle):
单击“应用”和“确定”保存此设置。
从工具栏图标启动探查器:
选择运行/分析应用的部署目标,然后单击“确定”。 部署目标可以是物理设备,也可以是在仿真器中运行的虚拟设备。 此示例使用的是 Nexus 5X 设备:
探查器启动后,需要几秒钟时间才能连接到部署设备和应用进程。 安装 APK 时,Android Profiler 将报告“无已连接设备”和“无可调试进程”。
几秒钟后,Android Profiler 完成 APK 安装并启动 APK,报告正在分析的设备名称和应用进程名称(在此示例中,分别是 LGE Nexus 5X 和 com.companyname.XamagonXuzzle):
识别设备和可调试进程后,Android Profiler 开始分析应用:
如果点击 XamagonXuzzle 上的“随机化”按钮(这会导致其移动和随机化磁贴),可看到 CPU 使用率在应用的随机化间隔期间增加:
使用 Android Profiler
Android Studio 文档中记录了有关使用 Android Profiler 的详细信息。 Xamarin Android 开发人员可能对以下主题感兴趣: