Мероприятия и программы

Полностью оптимизировано: Завершение недели, посвященной анализу производительности.

3 минуты чтения
Ben Weiss и Sara Hamilton

На прошлой неделе мы подробно рассказали о лучших практиках и рекомендациях, которые помогут сделать Android-приложения быстрее, компактнее и стабильнее. От базовых возможностей оптимизатора R8 и оптимизации на основе профилирования до повышения производительности с помощью Jetpack Compose и нового руководства по улучшению производительности вашего приложения — мы рассмотрели инструменты, не требующие больших усилий, но оказывающие значительное влияние на создание высокопроизводительного приложения.

Этот пост послужит вам указателем и дорожной картой для возвращения к этим ресурсам всякий раз, когда вам потребуется оптимизация. Вот пять ключевых выводов из нашего совместного пути.

Используйте оптимизатор R8 для ускорения работы вашего приложения.

Самое эффективное и не требующее больших усилий изменение, которое вы можете внести, — это полное включение оптимизатора R8 . Он не просто уменьшает размер приложения; он выполняет глубокую оптимизацию всей программы, коренным образом переписывая ваш код для повышения эффективности. Пересмотрите свои правила сохранения и верните R8 в свои инженерные задачи.

Нашаобновленная и расширенная документация по оптимизатору R8 готова вам помочь.

На Reddit было отмечено, что после включения полного режима R8 холодный запуск стал на 40% быстрее , а количество ошибок ANR уменьшилось на 30% .

Полный отчет о случае вы можете прочитать в нашем блоге .

image.png

Инженеры Disney+ инвестируют в производительность приложения и оптимизируют пользовательский опыт. Иногда даже, казалось бы, небольшие изменения могут оказать огромное влияние. При проверке конфигурации R8 команда обнаружила, что использовался флаг -dontoptimize . После включения оптимизации путем удаления этого флага команда Disney+ заметила значительное улучшение производительности своего приложения.

image.png

Поэтому в следующий раз, когда вас спросят, что можно сделать для улучшения производительности приложения, просто дайте им ссылку на этот пост.

Подробнее читайте в нашем блоге «Первый день»: Используйте R8 для уменьшения размера, оптимизации и ускорения разработки вашего приложения.

Помогаем вам добиться лучших результатов

Базовые профили эффективно устраняют необходимость в компиляции «на лету», улучшая скорость запуска, прокрутку, анимацию и общую производительность рендеринга. Профили запуска делают запуск приложения еще более легким, обеспечивая интеллектуальный порядок в файлах classes.dex вашего приложения.

Чтобы узнать больше о том, насколько важны базовые профили для производительности приложений, прочитайте блог инженеров Meta, где они рассказали, как базовые профили улучшили различные критически важные показатели производительности до 40% в их приложениях.

В Jetpack Compose 1.10 мы продолжаем повышать производительность Jetpack Compose. Такие функции, как возможность приостановки создания и настраиваемое окно кэширования, имеют решающее значение для обеспечения отсутствия рывков прокрутки при работе со сложными элементами списков. Посмотрите последний выпуск #TheAndroidShow, где мы объясняем это подробнее.

Подробнее читайте в нашем блоге за среду: Более детальные соображения по производительности.

Измерить производительность очень просто: 1, 2, 3

Невозможно управлять тем, что не измеряешь. Наше руководство по выравниванию производительности разбивает процесс измерения на пять этапов, начиная с легкодоступных данных и заканчивая продвинутыми локальными инструментами.

Начиная с уровня 1 , мы научим вас использовать доступные данные из Android Vitals , которые предоставляют информацию о сбоях ANR, ошибках и чрезмерном расходе заряда батареи.

Мы также научим вас повышать свой уровень. Например, мы продемонстрируем, как достичь 3-го уровня с помощью локального тестирования производительности.   Используйте Jetpack Macrobenchmark и новый API UiAutomator 2.4 для точного измерения и проверки любых изменений в производительности вашего приложения.

Подробнее читайте в нашем блоге за четверг: [Ссылка на блог за четверг: Руководство по повышению эффективности вашего пути к успеху]

Функция отладки производительности получила обновление.

Расширенная оптимизация не должна приводить к нечитаемым отчетам о сбоях. Новые функции разработаны для того, чтобы помочь вам уверенно отлаживать R8 и фоновые процессы:

Автоматическая трассировка Logcat

Начиная с Android Studio Narwhal, трассировки стека могут автоматически деобфусцироваться в окне Logcat. Таким образом, вы можете немедленно увидеть и отладить любые сбои в сборке, готовой к использованию в продакшене.

Правила узкой крепости

Во вторник мы разъяснили суть правил Keep Rules, необходимых для устранения сбоев во время выполнения, подчеркнув важность написания конкретных правил на уровне отдельных элементов, а не использования слишком общих символов-заменителей. И поскольку это важная тема, мы также подготовили для вас видео.

А благодаря новой проверке синтаксиса для широких правил Keep Rules, обновление Android Studio Otter 3 Feature Drop также позаботится об этом.

image.png

Мы также выпустили новые рекомендации по тестированию и устранению неполадок в вашей конфигурации R8, чтобы помочь вам уверенно и правильно настроить систему.

Подробнее читайте в нашем блоге за вторник: Настройка и устранение неполадок правил сохранения R8.

Предварительная работа

Мы поделились рекомендациями по отладке распространенных ситуаций, с которыми вы можете столкнуться при планировании задач с помощью WorkManager.

Инспектор фоновых задач предоставляет визуальное представление и графическое отображение задач WorkManager, помогая отлаживать причины задержек или сбоев запланированных работ. А на нашей обновленной странице документации по фоновым задачам выделены API, оптимизированные для конкретных сценариев использования, что помогает добиться более надежного выполнения.

Подробнее читайте в нашем блоге за среду: Вопросы, касающиеся оценки эффективности работы при проверке биографических данных.

Оптимизация производительности — это непрерывный процесс.

Если вы успешно справились с нашей задачей по включению полнофункционального режима R8 на этой неделе, ваш следующий шаг — интеграция показателей производительности в план развития продукта с помощью оценки производительности приложения (App Performance Score) . Эта стандартизированная система поможет вам определить наиболее эффективные действия для постоянного улучшения.

Мы завершили неделю сессией вопросов и ответов #AskAndroid Live , где инженеры ответили на ваши самые сложные вопросы о R8, оптимизации на основе профилирования и многом другом. Если вы пропустили, найдите запись!

Thank you for joining us! Now, get building and keep that momentum going.

    Автор:

    Продолжить чтение