Профилирование приложений 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:
В параметрах сборки проекта Android отключите параметр Использовать общую среду выполнения. Это позволяет выполнить сборку пакета приложения Android (APK) без зависимости от общей среды выполнения Mono времени разработки.
Выполните сборку приложения для отладки и разверните его на физическом устройстве или в эмуляторе. В результате создается подписанная отладочная версия APK-файла. Для примера XamagonXuzzle итоговый APK-файл называется com.companyname.XamagonXuzzle Signed.apk.
Откройте папку проекта и перейдите в bin/Debug. В этой папке найдите версию Signed.apk приложения и скопируйте ее в удобное место (например, на рабочий стол). На следующем снимке экрана указан APK-файл com.companyname.XamagonXuzzle Signed.apk, копируемый на рабочий стол:
Запустите Android Studio и выберите Profile or debug APK (Профилирование или отладка APK):
В диалоговом окне Select APK File (Выбор APK-файла) перейдите к ранее созданному и скопированному APK-файлу. Выберите этот файл и нажмите кнопку ОК.
Android Studio загружает APK-файл и дизассемблирует classes.dex:
После загрузки APK среда Android Studio отображает для него приведенный ниже экран проекта. Щелкните правой кнопкой мыши имя приложения в представлении в виде дерева слева и выберите пункт Open Module Settings (Открыть параметры модуля):
Перейдите к модулям Project Параметры>, выберите узел -Signed приложения, а затем нажмите кнопку< "Нет пакета SDK>".
В раскрывающемся меню Модуль SDK выберите уровень пакета SDK для Android, который использовался для сборки приложения (в этом примере для сборки XamagonXuzzle использовался уровень API 26):
Нажмите кнопки Применить и ОК, чтобы сохранить этот параметр.
Запуск профилировщика с помощью значка на панели инструментов:
Выберите целевой объект развертывания для запуска и профилирования приложения и нажмите кнопку ОК. Целевым объектом развертывания может быть физическое устройство либо виртуальное устройство, запущенное в эмуляторе. В этом примере используется устройство Nexus 5X:
После запуска профилировщику потребуется несколько секунд для подключения к устройству развертывания и процессу приложения. При установке APK-файла Android Profiler выведет сообщения No connected devices (Подключенные устройства отсутствуют) и No debuggable processes (Нет отлаживаемых процессов).
Через несколько секунд Android Profiler завершает установку APK-файла и запускает его, сообщая имя устройства и имя профилируемого процесса приложения (в данном примере это LGE Nexus 5X и com.companyname.XamagonXuzzle, соответственно):
После идентификации устройства и отлаживаемых процессов Android Profiler начинает профилирование приложения:
Если нажать кнопку RANDOMIZE (Случайный выбор) для XamagonXuzzle (что приводит к смещению и рандомизации плиток), вы заметите повышение загрузки ЦП во время интервала рандомизации приложения:
Использование Android Profiler
Подробные сведения об использовании Android Profiler приведены в документации по Android Studio. Для разработчиков Xamarin Android могут представлять интерес следующие разделы:
Профилировщик ЦП— объясняет, как проверить использование ЦП приложения и активность потока в режиме реального времени.
Профилировщик памяти — отображает график использования памяти приложения в режиме реального времени и включает кнопку для записи выделения памяти для анализа.
Сетевой профилировщик — отображает сетевое действие, отправленное и полученное приложением в режиме реального времени.