Профилирование приложений 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. В следующем примере снимок экрана: пример приложения Xamarin Forms создается и профилируется с помощью Android Profiler:

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

    Отключение параметра

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

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

    Расположение отладочного подписанного APK-файла

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

    Запуск профилировщика с экрана запуска Android Studio

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

    Выбор APK в диалоговом окне

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

    Настройка APK-файла

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

    Расположение элемента меню

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

    Переход к параметру пакета SDK

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

    Настройка уровня для пакета SDK проекта

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

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

    Расположение значка профилировщика на панели инструментов

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

    Выбор целевого объекта развертывания

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

    Установка APK-файла профилировщиком

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

    Окно профилировщика после запуска

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

    Отображение профилировщика для выполняющегося приложения

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

    Загрузка ЦП при нажатии кнопки CPU

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

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

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

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

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