Android之测量APP性能概览(一)

如果应用程序响应缓慢、显示不稳定的动画、冻结、崩溃或消耗大量电力,则认为其性能很差。为了避免这些性能问题,使用本页中列出的分析工具来识别应用程序在哪里低效使用资源,例如CPU、内存、图形、网络和设备电池。

Note: While profiling an app, you should disable Instant Run

分析方式有两类:Android Studio tools、Command line tools

一、Android Studio tools

1、利用 Android Profiler 测量应用性能

Android Studio 3.0 采用全新的 **Android Profiler ** 窗口取代 Android Monitor 工具。 这些全新的分析工具能够提供关于应用 CPU、内存和网络 Activity 的实时数据。 您可以执行基于样本的函数跟踪来记录代码执行时间、采集堆转储数据、查看内存分配,以及查看网络传输文件的详情。

要打开 Android Profiler 窗口,请按以下步骤操作:

  1. 点击 View > Tool Windows > Android Profiler(也可以点击工具栏中的 Android Profiler )。
  2. 在 Android Profiler 窗口顶部(如图 1 所示),选择您想要分析的设备 1 和应用进程 2。

    如果您通过 USB 连接了某个设备但该设备未在设备列表中列出,请确保您已启用 USB 调试

    如果您使用的是 Android Emulator 或已取得 root 权限的设备,Android Profiler 将列出所有正在运行的进程,即使这些进程可能无法调试。 当您发布可调试应用时,将会默认选择此进程。

Android Profiler 目前可显示共享时间线视图(图 1),其中包括带有 CPU、内存和网络使用信息实时图表的时间线。 分析器窗口还包含时间线缩放控件 3、实时更新跳转按钮 4,以及显示 Activity 状态、用户输入 Event 和屏幕旋转 Event 的 Event 时间线5。

当您启动 Android Profiler 后,它会持续收集分析数据,直至您断开设备连接或点击 Close

但并不是所有分析数据均默认可见。 如果您看到一条消息,显示“Advanced profiling is unavailable for the selected process”,则需在运行配置中启用高级分析。

要显示高级分析数据,Android Studio 必须在您编译后的应用中插入监控逻辑。 高级分析工具提供的功能包括:

  • Event 时间线(所有分析器窗口中均有)
  • 分配对象数量(Memory Profiler 中)
  • 垃圾回收 Event(Memory Profiler 中)
  • 有关所有传输的文件的详情(Network Profiler 中)

要启用高级分析,请按以下步骤操作:

  1. 选择 Run > Edit Configurations
  2. 在左侧窗格中选择您的应用模块。
  3. 点击 Profiling 标签,然后勾选 Enable advanced profiling

现在重新构建并运行您的应用,即可获取完整的分析功能。 但请注意,高级分析会减缓您的构建速度,所以仅当您想要开始分析应用时才启用此功能。

注:对于原生代码,不可使用高级分析功能。 如果您的应用是纯原生应用(不含 Java Activity 类),则不可使用高级分析功能。 如果您的应用使用了 JNI,则可使用部分高级分析功能,例如 Event 时间线、GC Event、Java 分配对象和基于 Java 的网络 Activity,但不能检测基于原生的分配和网络 Activity。

二、Command line tools

systrace

The systrace command allows you to collect and inspect timing information across all 

dumpsys

dumpsys is a tool that runs on Android devices and provides information about system services. 

dmtracedump

dmtracedump is a tool that generates graphical call-stack diagrams from trace log files. The tool 

总结,命令行针对性较强,一般使用studio就能满足基本的新能分析。

猜你喜欢

转载自blog.csdn.net/hhbbeijing/article/details/83864255