Производительность Jetpack Compose на Wear OS

Производительность на 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, ознакомьтесь с последними новостями и видео в руководстве по производительности приложений.