Производительность на Wear OS — важный фактор для приложений, поскольку многие устройства на Wear OS имеют ограниченные ресурсы центрального и графического процессоров по сравнению с более крупными мобильными устройствами. С появлением более насыщенной анимации и динамических эффектов в Material 3 Expressive вам следует проверить и улучшить производительность ключевых рабочих процессов вашего приложения.
Используйте руководство Jetpack Compose Performance Guide для настройки и разработки приложения для достижения оптимальной производительности с помощью Jetpack Compose. В этом документе рассматриваются некоторые из методов, описанных в этом руководстве.
Создавайте и следуйте стратегиям измерения производительности, чтобы убедиться, что эти методы работают так, как ожидается, для вашего приложения.
Основные методы повышения производительности
Начните с наиболее эффективных типов инструментов повышения производительности: базовых профилей (включая профили запуска) и оптимизатора кода R8.
Обновите вашу зависимость Compose до версии 1.8 или выше, что добавило несколько важных новых функций и повысило общую стабильность библиотеки. Инструкции по обновлению см. в разделе «Объявление зависимостей» . Подробнее читайте в нашем блоге о версии 1.8 и в обсуждении « Что нового в Compose I/O».
Базовые профили
Чтобы повысить производительность приложения, используйте базовые профили . Сгруппируйте классы и методы, представляющие ключевые рабочие процессы вашего приложения, которые система может предварительно скомпилировать с помощью базового профиля. Это может сократить время запуска, уменьшить количество зависаний кадров и обеспечить дополнительное повышение производительности.
Каждая библиотека Jetpack Compose поставляется со своими собственными правилами профиля. Если ваше приложение зависит от библиотеки, правила профиля библиотеки автоматически объединяются и распространяются вместе с APK-файлом вашего приложения для предварительной компиляции.
Проверьте свои базовые профили, используя следующие методы:
- Используйте макробенчмарк-тесты.
- Используйте специальные команды ADB для проверки состояния конфигурации профиля вашего приложения. Инструкции по обоим методам описаны в руководстве по измерению и проверке производительности .
Профили запуска
Профили запуска , являющиеся подмножеством базовых профилей, дополнительно оптимизируют содержащиеся в них классы и методы для сокращения задержки запуска приложения.
Добавление профиля запуска увеличит размер APK вашего приложения, поэтому перед добавлением его в производственный релиз обязательно оцените компромисс между размером APK и задержкой запуска.
Для начала прочтите статью Создание стартового профиля .
Р8
Используйте компилятор R8 для сжатия и оптимизации приложений. R8 удаляет неиспользуемый код и ресурсы, переписывает код для оптимизации производительности во время выполнения и многое другое.
В обзорных руководствах по улучшению производительности ознакомьтесь с рекомендациями по R8, включая основные шаги по удалению неиспользуемых ресурсов .
Измерение и проверка эффективности
Чтобы узнать об общих стратегиях измерения производительности на Android, см. раздел «Обзор измерения производительности приложений» . В этом разделе описаны некоторые из методов, обсуждаемых в этой документации.
Выберите вариант сборки для измерений
Хотя режим отладки полезен для выявления многих проблем, он приводит к значительному снижению производительности, не использует базовые профили и может затруднить обнаружение проблем с кодом, которые могут влиять на производительность.
Чтобы точно оценить производительность вашего приложения, запустите его в режиме релиза .
Окончательные выводы о производительности делайте только на основе тестов, проведенных с приложениями, работающими с параметрами релизной сборки и на реальных устройствах.
Однако при тестировании производительности используйте вариант сборки Benchmark, который имеет ряд ключевых отличий от отладки релиза. Подробности см. в руководстве по настройке Macrobenchmark .
Проверьте базовые профили вашего приложения
Начните с проверки статуса вашего профиля:
adb shell dumpsys package dexopt | grep -A 1 $PACKAGE_NAME
Если статус не status=speed-profile
, правила профиля еще не были применены для оптимизации приложения.
Правила применяются с помощью фонового задания, которое запускается, когда устройство заряжается и находится в режиме ожидания. Чтобы вручную запустить это задание, выполните следующую команду после запуска приложения и по истечении достаточного времени для фоновой загрузки установщика профиля. Этот процесс обычно занимает около 40 секунд.
adb shell cmd package bg-dexopt-job
Затем повторно выполните предыдущую команду, чтобы убедиться, что статус — speed-profile
.
Ситуации, когда оптимизация происходит при установке, см. в разделе Загрузка базового профиля .
API автоматизатора пользовательского интерфейса
API UI Automator автоматизирует взаимодействие программным способом. Используйте этот API для сравнительного анализа отдельных элементов пользовательского интерфейса при анализе пути пользователя для потенциальной оптимизации.
Макробенчмарк-тесты
Макробенчмарки тестируют более масштабные сценарии использования вашего приложения, особенно запуск приложения и сложные манипуляции с пользовательским интерфейсом. Чтобы начать работу, ознакомьтесь с руководством по внедрению .
Пример использования макробенчмарков для проверки производительности базовых профилей см. в примерах производительности на GitHub.
Библиотека JankStats
Используйте библиотеку JankStats для отслеживания и анализа проблем производительности в приложениях.
В качестве примера см. пример JankStats на GitHub.
Системная трассировка
Благодаря новым типам анимации, представленным в Material 3 Expressive, используйте функцию System Trace в Android Studio для анализа и диагностики задержек в потенциально проблемных ситуациях на сайте. Используя эту информацию, проверьте содержимое базовых профилей и выявите потенциальные неэффективные места в логике кода.
Дополнительные инструменты
Помимо инструментов повышения производительности вы можете использовать и другие инструменты для улучшения производительности и рабочего процесса.
Инструменты повышения производительности Android Studio
Android Studio предоставляет несколько инструментов, которые могут сократить время, затрачиваемое на выявление улучшений производительности.
Например, используя такие инструменты, как Live Edit и Composable Previews , вы можете выявить неисправные элементы пользовательского интерфейса, а также связанные с ними области в коде вашего приложения для улучшения производительности.
Проводите все финальные тесты производительности на наборе физических устройств Wear OS , которые точно представляют вашу целевую базу пользователей.
Это особенно важно при переходе на Material 3 Expressive, который добавляет в ваше приложение такие функции, как гибкие шрифты и морфинг форм.
Если вы переходите с представлений, ознакомьтесь с руководством по миграции и нашими рекомендациями по повышению производительности Jetpack Compose, чтобы убедиться, что пользовательские интерфейсы вашего приложения работают эффективно при использовании Jetpack Compose.
Другие ресурсы
Чтобы оставаться в курсе последних новостей о производительности Android, ознакомьтесь с последними новостями и видео в руководстве по производительности приложений.
,Производительность на Wear OS — важный фактор для приложений, поскольку многие устройства на Wear OS имеют ограниченные ресурсы центрального и графического процессоров по сравнению с более крупными мобильными устройствами. С появлением более насыщенной анимации и динамических эффектов в Material 3 Expressive вам следует проверить и улучшить производительность ключевых рабочих процессов вашего приложения.
Используйте руководство Jetpack Compose Performance Guide для настройки и разработки приложения для достижения оптимальной производительности с помощью Jetpack Compose. В этом документе рассматриваются некоторые из методов, описанных в этом руководстве.
Создавайте и следуйте стратегиям измерения производительности, чтобы убедиться, что эти методы работают так, как ожидается, для вашего приложения.
Основные методы повышения производительности
Начните с наиболее эффективных типов инструментов повышения производительности: базовых профилей (включая профили запуска) и оптимизатора кода R8.
Обновите вашу зависимость Compose до версии 1.8 или выше, что добавило несколько важных новых функций и повысило общую стабильность библиотеки. Инструкции по обновлению см. в разделе «Объявление зависимостей» . Подробнее читайте в нашем блоге о версии 1.8 и в обсуждении « Что нового в Compose I/O».
Базовые профили
Чтобы повысить производительность приложения, используйте базовые профили . Сгруппируйте классы и методы, представляющие ключевые рабочие процессы вашего приложения, которые система может предварительно скомпилировать с помощью базового профиля. Это может сократить время запуска, уменьшить количество зависаний кадров и обеспечить дополнительное повышение производительности.
Каждая библиотека Jetpack Compose поставляется со своими собственными правилами профиля. Если ваше приложение зависит от библиотеки, правила профиля библиотеки автоматически объединяются и распространяются вместе с APK-файлом вашего приложения для предварительной компиляции.
Проверьте свои базовые профили, используя следующие методы:
- Используйте макробенчмарк-тесты.
- Используйте специальные команды ADB для проверки состояния конфигурации профиля вашего приложения. Инструкции по обоим методам описаны в руководстве по измерению и проверке производительности .
Профили запуска
Профили запуска , являющиеся подмножеством базовых профилей, дополнительно оптимизируют содержащиеся в них классы и методы для сокращения задержки запуска приложения.
Добавление профиля запуска увеличит размер APK вашего приложения, поэтому перед добавлением его в производственный релиз обязательно оцените компромисс между размером APK и задержкой запуска.
Для начала прочтите статью Создание стартового профиля .
Р8
Используйте компилятор R8 для сжатия и оптимизации приложений. R8 удаляет неиспользуемый код и ресурсы, переписывает код для оптимизации производительности во время выполнения и многое другое.
В обзорных руководствах по улучшению производительности ознакомьтесь с рекомендациями по R8, включая основные шаги по удалению неиспользуемых ресурсов .
Измерение и проверка эффективности
Чтобы узнать об общих стратегиях измерения производительности на Android, см. раздел «Обзор измерения производительности приложений» . В этом разделе описаны некоторые из методов, обсуждаемых в этой документации.
Выберите вариант сборки для измерений
Хотя режим отладки полезен для выявления многих проблем, он приводит к значительному снижению производительности, не использует базовые профили и может затруднить обнаружение проблем с кодом, которые могут влиять на производительность.
Чтобы точно оценить производительность вашего приложения, запустите его в режиме релиза .
Окончательные выводы о производительности делайте только на основе тестов, проведенных с приложениями, работающими с параметрами релизной сборки и на реальных устройствах.
Однако при тестировании производительности используйте вариант сборки Benchmark, который имеет ряд ключевых отличий от отладки релиза. Подробности см. в руководстве по настройке Macrobenchmark .
Проверьте базовые профили вашего приложения
Начните с проверки статуса вашего профиля:
adb shell dumpsys package dexopt | grep -A 1 $PACKAGE_NAME
Если статус не status=speed-profile
, правила профиля еще не были применены для оптимизации приложения.
Правила применяются с помощью фонового задания, которое запускается, когда устройство заряжается и находится в режиме ожидания. Чтобы вручную запустить это задание, выполните следующую команду после запуска приложения и по истечении достаточного времени для фоновой загрузки установщика профиля. Этот процесс обычно занимает около 40 секунд.
adb shell cmd package bg-dexopt-job
Затем повторно выполните предыдущую команду, чтобы убедиться, что статус — speed-profile
.
Ситуации, когда оптимизация происходит при установке, см. в разделе Загрузка базового профиля .
API автоматизатора пользовательского интерфейса
API UI Automator автоматизирует взаимодействие программным способом. Используйте этот API для сравнительного анализа отдельных элементов пользовательского интерфейса при анализе пути пользователя для потенциальной оптимизации.
Макробенчмарк-тесты
Макробенчмарки тестируют более масштабные сценарии использования вашего приложения, особенно запуск приложения и сложные манипуляции с пользовательским интерфейсом. Чтобы начать работу, ознакомьтесь с руководством по внедрению .
Пример использования макробенчмарков для проверки производительности базовых профилей см. в примерах производительности на GitHub.
Библиотека JankStats
Используйте библиотеку JankStats для отслеживания и анализа проблем производительности в приложениях.
В качестве примера см. пример JankStats на GitHub.
Системная трассировка
Благодаря новым типам анимации, представленным в Material 3 Expressive, используйте функцию System Trace в Android Studio для анализа и диагностики задержек в потенциально проблемных ситуациях на сайте. Используя эту информацию, проверьте содержимое базовых профилей и выявите потенциальные неэффективные места в логике кода.
Дополнительные инструменты
Помимо инструментов повышения производительности вы можете использовать и другие инструменты для улучшения производительности и рабочего процесса.
Инструменты повышения производительности Android Studio
Android Studio предоставляет несколько инструментов, которые могут сократить время, затрачиваемое на выявление улучшений производительности.
Например, используя такие инструменты, как Live Edit и Composable Previews , вы можете выявить неисправные элементы пользовательского интерфейса, а также связанные с ними области в коде вашего приложения для улучшения производительности.
Проводите все финальные тесты производительности на наборе физических устройств Wear OS , которые точно представляют вашу целевую базу пользователей.
Это особенно важно при переходе на Material 3 Expressive, который добавляет в ваше приложение такие функции, как гибкие шрифты и морфинг форм.
Если вы переходите с представлений, ознакомьтесь с руководством по миграции и нашими рекомендациями по повышению производительности Jetpack Compose, чтобы убедиться, что пользовательские интерфейсы вашего приложения работают эффективно при использовании Jetpack Compose.
Другие ресурсы
Чтобы оставаться в курсе последних новостей о производительности Android, ознакомьтесь с последними новостями и видео в руководстве по производительности приложений.
,Производительность на Wear OS — важный фактор для приложений, поскольку многие устройства на Wear OS имеют ограниченные ресурсы центрального и графического процессоров по сравнению с более крупными мобильными устройствами. С появлением более насыщенной анимации и динамических эффектов в Material 3 Expressive вам следует проверить и улучшить производительность ключевых рабочих процессов вашего приложения.
Используйте руководство Jetpack Compose Performance Guide для настройки и разработки приложения для достижения оптимальной производительности с помощью Jetpack Compose. В этом документе рассматриваются некоторые из методов, описанных в этом руководстве.
Создавайте и следуйте стратегиям измерения производительности, чтобы убедиться, что эти методы работают так, как ожидается, для вашего приложения.
Основные методы повышения производительности
Начните с наиболее эффективных типов инструментов повышения производительности: базовых профилей (включая профили запуска) и оптимизатора кода R8.
Обновите вашу зависимость Compose до версии 1.8 или выше, что добавило несколько важных новых функций и повысило общую стабильность библиотеки. Инструкции по обновлению см. в разделе «Объявление зависимостей» . Подробнее читайте в нашем блоге о версии 1.8 и в обсуждении « Что нового в Compose I/O».
Базовые профили
Чтобы повысить производительность приложения, используйте базовые профили . Сгруппируйте классы и методы, представляющие ключевые рабочие процессы вашего приложения, которые система может предварительно скомпилировать с помощью базового профиля. Это может сократить время запуска, уменьшить количество зависаний кадров и обеспечить дополнительное повышение производительности.
Каждая библиотека Jetpack Compose поставляется со своими собственными правилами профиля. Если ваше приложение зависит от библиотеки, правила профиля библиотеки автоматически объединяются и распространяются вместе с APK-файлом вашего приложения для предварительной компиляции.
Проверьте свои базовые профили, используя следующие методы:
- Используйте макробенчмарк-тесты.
- Используйте специальные команды ADB для проверки состояния конфигурации профиля вашего приложения. Инструкции по обоим методам описаны в руководстве по измерению и проверке производительности .
Профили запуска
Профили запуска , являющиеся подмножеством базовых профилей, дополнительно оптимизируют содержащиеся в них классы и методы для сокращения задержки запуска приложения.
Добавление профиля запуска увеличит размер APK вашего приложения, поэтому перед добавлением его в производственный релиз обязательно оцените компромисс между размером APK и задержкой запуска.
Для начала прочтите статью Создание стартового профиля .
Р8
Используйте компилятор R8 для сжатия и оптимизации приложений. R8 удаляет неиспользуемый код и ресурсы, переписывает код для оптимизации производительности во время выполнения и многое другое.
В обзорных руководствах по улучшению производительности ознакомьтесь с рекомендациями по R8, включая основные шаги по удалению неиспользуемых ресурсов .
Измерение и проверка эффективности
Чтобы узнать об общих стратегиях измерения производительности на Android, см. раздел «Обзор измерения производительности приложений» . В этом разделе описаны некоторые из методов, обсуждаемых в этой документации.
Выберите вариант сборки для измерений
Хотя режим отладки полезен для выявления многих проблем, он приводит к значительному снижению производительности, не использует базовые профили и может затруднить обнаружение проблем с кодом, которые могут влиять на производительность.
Чтобы точно оценить производительность вашего приложения, запустите его в режиме релиза .
Окончательные выводы о производительности делайте только на основе тестов, проведенных с приложениями, работающими с параметрами релизной сборки и на реальных устройствах.
Однако при тестировании производительности используйте вариант сборки Benchmark, который имеет ряд ключевых отличий от отладки релиза. Подробности см. в руководстве по настройке Macrobenchmark .
Проверьте базовые профили вашего приложения
Начните с проверки статуса вашего профиля:
adb shell dumpsys package dexopt | grep -A 1 $PACKAGE_NAME
Если статус не status=speed-profile
, правила профиля еще не были применены для оптимизации приложения.
Правила применяются с помощью фонового задания, которое запускается, когда устройство заряжается и находится в режиме ожидания. Чтобы вручную запустить это задание, выполните следующую команду после запуска приложения и по истечении достаточного времени для фоновой загрузки установщика профиля. Этот процесс обычно занимает около 40 секунд.
adb shell cmd package bg-dexopt-job
Затем повторно выполните предыдущую команду, чтобы убедиться, что статус — speed-profile
.
Ситуации, когда оптимизация происходит при установке, см. в разделе Загрузка базового профиля .
API автоматизатора пользовательского интерфейса
API UI Automator автоматизирует взаимодействие программным способом. Используйте этот API для сравнительного анализа отдельных элементов пользовательского интерфейса при анализе пути пользователя для потенциальной оптимизации.
Макробенчмарк-тесты
Макробенчмарки тестируют более масштабные сценарии использования вашего приложения, особенно запуск приложения и сложные манипуляции с пользовательским интерфейсом. Чтобы начать работу, ознакомьтесь с руководством по внедрению .
Пример использования макробенчмарков для проверки производительности базовых профилей см. в примерах производительности на GitHub.
Библиотека JankStats
Используйте библиотеку JankStats для отслеживания и анализа проблем производительности в приложениях.
В качестве примера см. пример JankStats на GitHub.
Системная трассировка
Благодаря новым типам анимации, представленным в Material 3 Expressive, используйте функцию System Trace в Android Studio для анализа и диагностики задержек в потенциально проблемных ситуациях на сайте. Используя эту информацию, проверьте содержимое базовых профилей и выявите потенциальные неэффективные места в логике кода.
Дополнительные инструменты
Помимо инструментов повышения производительности вы можете использовать и другие инструменты для улучшения производительности и рабочего процесса.
Инструменты повышения производительности Android Studio
Android Studio предоставляет несколько инструментов, которые могут сократить время, затрачиваемое на выявление улучшений производительности.
Например, используя такие инструменты, как Live Edit и Composable Previews , вы можете выявить неисправные элементы пользовательского интерфейса, а также связанные с ними области в коде вашего приложения для улучшения производительности.
Проводите все финальные тесты производительности на наборе физических устройств Wear OS , которые точно представляют вашу целевую базу пользователей.
Это особенно важно при переходе на Material 3 Expressive, который добавляет в ваше приложение такие функции, как гибкие шрифты и морфинг форм.
Если вы переходите с представлений, ознакомьтесь с руководством по миграции и нашими рекомендациями по повышению производительности Jetpack Compose, чтобы убедиться, что пользовательские интерфейсы вашего приложения работают эффективно при использовании Jetpack Compose.
Другие ресурсы
Чтобы оставаться в курсе последних новостей о производительности Android, ознакомьтесь с последними новостями и видео в руководстве по производительности приложений.