Профилирование приложений Android

Перед развертыванием приложения в Магазине важно выявить и устранить все узкие места по производительности, проблемы с использованием чрезмерного количества памяти или неэффективным использованием сетевых ресурсов. Для этого доступны два средства профилирования:

  • Xamarin Profiler
  • Android Profiler в Android Studio

Это руководство содержит общие сведения о Xamarin Profiler, а также информацию о начале работы с Android Profiler.

Xamarin Profiler

Xamarin Profiler — это автономное приложение, интегрированное с Visual Studio и Visual Studio для Mac для профилирования приложений Xamarin из интегрированной среды разработки. Дополнительные сведения об использовании Xamarin Profiler см. в статье Xamarin Profiler.

Примечание.

Чтобы разблокировать компонент Xamarin Profiler в Visual Studio Enterprise для Windows или Visual Studio для Mac, вы должны быть подписчиком Visual Studio Enterprise.

Профилировщик Android Studio

Android Studio 3.0 и более поздних версий включает в себя средство Android Profiler. Вы можете использовать Android Profiler для измерения производительности приложения Xamarin Android, созданного с помощью Visual Studio, без необходимости лицензирования Visual Studio Enterprise. Однако в отличие от Xamarin Profiler средство Android Profiler не интегрировано с Visual Studio и может использоваться только для профилирования пакета приложения Android (APK), который был создан заранее и импортирован в Android Profiler.

Запуск приложения Xamarin Android в Android Profiler

Ниже описано, как запустить приложение Xamarin Android в средстве Android Profiler среды Android Studio. На примерах снимков экрана ниже приложение XamagonXuzzle Xamarin Forms создается и профилируется с помощью Android Profiler:

  1. В параметрах сборки проекта Android отключите параметр Использовать общую среду выполнения. Это позволяет выполнить сборку пакета приложения Android (APK) без зависимости от общей среды выполнения Mono времени разработки.

    Disabling Use Shared Runtime

  2. Выполните сборку приложения для отладки и разверните его на физическом устройстве или в эмуляторе. В результате создается подписанная отладочная версия APK-файла. Для примера XamagonXuzzle итоговый APK-файл называется com.companyname.XamagonXuzzle Signed.apk.

  3. Откройте папку проекта и перейдите в bin/Debug. В этой папке найдите версию Signed.apk приложения и скопируйте ее в удобное место (например, на рабочий стол). На следующем снимке экрана указан APK-файл com.companyname.XamagonXuzzle Signed.apk, копируемый на рабочий стол:

    Location of the debug signed APK file

  4. Запустите Android Studio и выберите Profile or debug APK (Профилирование или отладка APK):

    Starting the profiler from the Android Studio launch screen

  5. В диалоговом окне Select APK File (Выбор APK-файла) перейдите к ранее созданному и скопированному APK-файлу. Выберите этот файл и нажмите кнопку ОК.

    Selecting the APK in the Select APK File dialog

  6. Android Studio загружает APK-файл и дизассемблирует classes.dex:

    Setting up the APK

  7. После загрузки APK среда Android Studio отображает для него приведенный ниже экран проекта. Щелкните правой кнопкой мыши имя приложения в представлении в виде дерева слева и выберите пункт Open Module Settings (Открыть параметры модуля):

    Location of Open Module Settings menu item

  8. Перейдите к модулям Project Параметры>, выберите узел -Signed приложения, а затем нажмите кнопку< "Нет пакета SDK>".

    Navigating to the SDK setting

  9. В раскрывающемся меню Модуль SDK выберите уровень пакета SDK для Android, который использовался для сборки приложения (в этом примере для сборки XamagonXuzzle использовался уровень API 26):

    Setting the Project SDK level

    Нажмите кнопки Применить и ОК, чтобы сохранить этот параметр.

  10. Запуск профилировщика с помощью значка на панели инструментов:

    Location of the profiler toolbar icon

  11. Выберите целевой объект развертывания для запуска и профилирования приложения и нажмите кнопку ОК. Целевым объектом развертывания может быть физическое устройство либо виртуальное устройство, запущенное в эмуляторе. В этом примере используется устройство Nexus 5X:

    Selecting the deployment target

  12. После запуска профилировщику потребуется несколько секунд для подключения к устройству развертывания и процессу приложения. При установке APK-файла Android Profiler выведет сообщения No connected devices (Подключенные устройства отсутствуют) и No debuggable processes (Нет отлаживаемых процессов).

    The profiler installs the APK

  13. Через несколько секунд Android Profiler завершает установку APK-файла и запускает его, сообщая имя устройства и имя профилируемого процесса приложения (в данном примере это LGE Nexus 5X и com.companyname.XamagonXuzzle, соответственно):

    Profiler window after start

  14. После идентификации устройства и отлаживаемых процессов Android Profiler начинает профилирование приложения:

    Profiler displays for the running app

  15. Если нажать кнопку RANDOMIZE (Случайный выбор) для XamagonXuzzle (что приводит к смещению и рандомизации плиток), вы заметите повышение загрузки ЦП во время интервала рандомизации приложения:

    CPU usage when RANDOMIZE button is tapped

Использование Android Profiler

Подробные сведения об использовании Android Profiler приведены в документации по Android Studio. Для разработчиков Xamarin Android могут представлять интерес следующие разделы:

  • Профилировщик ЦП— объясняет, как проверить использование ЦП приложения и активность потока в режиме реального времени.

  • Профилировщик памяти — отображает график использования памяти приложения в режиме реального времени и включает кнопку для записи выделения памяти для анализа.

  • Сетевой профилировщик — отображает сетевое действие, отправленное и полученное приложением в режиме реального времени.