Jetpack Compose обеспечивает отличную производительность сразу после установки. Настройте приложение, следуя рекомендациям, чтобы избежать распространенных ошибок и оптимизировать производительность приложения Compose.
Навыки работы с Android
Посмотреть на GitHubПроизводительность Jetpack Compose
android skills add jetpack-compose-performanceТестирование производительности Jetpack Compose
Чтобы сравнить производительность Jetpack Compose и Views, мы используем основные тесты производительности, которые фокусируются на важных путях пользователей, таких как холодный запуск приложения или прокрутка списка или сетки с изображениями. Для этого мы используем приложение Pokedex с открытым исходным кодом, сравнивая его реализации Views и Compose.
Эти тесты показывают, что Compose 1.9 и более поздние версии соответствуют производительности Views по задержкам при прокрутке.
Дополнительные показатели и информацию о наших методологиях можно найти в статье Контрольные показатели Hero.
Основные понятия
Вот некоторые из ключевых концепций производительности в Compose:
- Этапы. Понимание этапов композиции, макета и рисования имеет решающее значение для оптимизации того, как Compose обновляет ваш пользовательский интерфейс.
- Профили базовой конфигурации. Они предварительно компилируют важный код, что ускоряет запуск приложения и повышает плавность его работы.
- Стабильность. Узнайте, как Compose сравнивает параметры во время рекомпозиции, чтобы вы могли пропускать ненужные действия, не вводя дорогостоящие проверки на равенство.
Правильно настройте приложение
Если приложение работает плохо, возможно, проблема в конфигурации. Для начала проверьте следующие параметры конфигурации:
- Выполните сборку в режиме выпуска с помощью R8. Попробуйте запустить приложение в режиме выпуска. Режим отладки позволяет выявить многие проблемы, но снижает производительность и может затруднить обнаружение других неполадок. Также рекомендуем включить оптимизацию и сжатие с помощью компилятора R8, чтобы обеспечить высокую производительность и эффективность конечной сборки.
- Используйте профили базовой конфигурации. Они повышают производительность за счет предварительной компиляции кода для алгоритмов достижения цели. Compose включает профиль по умолчанию, но в идеале вам также следует создать профиль для конкретного приложения. Подробнее о профилях базовой конфигурации…
Инструменты
Ознакомьтесь с набором инструментов, которые помогут вам измерить и проанализировать производительность приложения Compose.
Рекомендации
При разработке приложения с помощью Compose помните о следующих рекомендациях:
- Избегайте ресурсоемких вычислений. Используйте
rememberдля кеширования результатов ресурсоемких вычислений. - Помогите ленивым макетам. Укажите стабильные параметры
keyиcontentTypeдля ленивых макетов, чтобы минимизировать ненужные рекомпозиции и включить повторное использование слотов. - Ограничьте ненужные рекомпозиции. Используйте
computedStateOf(в Compose 1.13 и более поздних версиях) илиderivedStateOf, чтобы ограничить рекомпозиции при чтении быстро меняющегося состояния. - Откладывайте чтение состояния. Откладывайте чтение состояния как можно дольше, упаковывая его в лямбда-функции.
- Используйте лямбда-модификаторы для изменения состояния. Используйте модификаторы на основе лямбда-выражений, такие как
Modifier.offset { ... }, для часто меняющихся переменных состояния. - Избегайте обратной записи. Никогда не записывайте в состояние, которое уже было прочитано в composable-функции.
Дополнительную информацию можно найти в руководстве по рекомендациям.
Просмотры
Если вы работаете с представлениями, а не с Compose, ознакомьтесь с руководством Как повысить производительность макета.
Дополнительные ресурсы
- Руководство по производительности приложений. Узнайте о рекомендациях, библиотеках и инструментах, которые помогут повысить производительность приложений для Android.
- Проверка производительности. Проверяйте производительность приложения.
- Сравнение по контрольным показателям. Сравнивайте производительность приложения.
- Запуск приложения. Оптимизируйте запуск приложения.
- Профили базовой конфигурации. Узнайте, что такое профили базовой конфигурации.