Полная оптимизация: завершение недели, посвященной эффективности
Время на чтение: 3 минуты
На прошлой неделе мы подробно рассказывали о том, как сделать приложения для Android быстрее, компактнее и стабильнее. Мы рассказали о простых, но эффективных инструментах, которые помогут вам создать производительное приложение. Среди них оптимизатор R8, оптимизация на основе профиля, Jetpack Compose и новое руководство по повышению производительности.
Эта запись – ваш указатель и дорожная карта, которые помогут вам найти нужные ресурсы, когда вам потребуется оптимизировать кампании. Вот пять основных выводов из нашего совместного путешествия.
Как ускорить работу приложения с помощью оптимизатора R8
Самое простое и эффективное изменение, которое вы можете сделать, – полностью включить оптимизатор R8. Он не просто уменьшает размер приложения, а выполняет глубокую оптимизацию всей программы, чтобы фундаментально переписать код для повышения эффективности. Проверьте правила Keep и верните R8 в задачи разработки.
Вам поможет наша обновленная и расширенная документация по оптимизатору R8.
Reddit: холодный запуск стал на 40% быстрее, а количество ошибок ANR снизилось на 30 % после включения полного режима R8.
Полный текст истории успеха можно прочитать в нашем блоге.
Инженеры Disney+ вкладывают средства в производительность приложения и оптимизируют его работу. Иногда даже небольшие изменения могут иметь огромное значение. Проверяя конфигурацию R8, команда обнаружила, что используется флаг -dontoptimize. После включения оптимизации путем удаления этого флага команда Disney+ заметила значительное улучшение производительности приложения.
В следующий раз, когда кто-то спросит вас, что можно сделать для повышения производительности приложения, просто отправьте ему ссылку на эту запись.
Подробнее об этом рассказывается в записи блога за первый день: Как использовать R8, чтобы уменьшить размер приложения, оптимизировать его и ускорить его работу.
Рекомендации по повышению эффективности
Базовые профили устраняют необходимость в динамической компиляции, повышая скорость запуска, прокрутки, анимации и отрисовки в целом. Профили запуска позволяют ускорить запуск приложения за счет оптимизации порядка файлов classes.dex.
Чтобы узнать больше о том, насколько важны профили базовой конфигурации для производительности приложений, прочитайте блог разработчиков Meta. В нем рассказывается, как профили базовой конфигурации улучшили различные критические показатели производительности на 40% в приложениях компании.
Мы продолжаем повышать производительность Jetpack Compose в Jetpack Compose 1.10. Такие функции, как приостановка компоновки и настраиваемое окно кеша, имеют решающее значение для поддержания нулевого дрожания прокрутки при работе со сложными элементами списка.Посмотрите последний выпуск #TheAndroidShow, где мы объясняем это более подробно.
Подробнее об этом рассказывается в записи блога, опубликованной в среду: Deeper Performance Considerations.
Оценка эффективности в три простых шага
Невозможно улучшить то, что нельзя измерить. В нашем руководстве по повышению производительности процесс отслеживания разбит на пять этапов. На первом этапе вы работаете с легкодоступными данными, а на последнем – с продвинутыми инструментами.
На первом этапе вы научитесь использовать данные из Android Vitals. В этом разделе собраны сведения об ошибках ANR, сбоях и чрезмерном расходе заряда батареи.
Мы также расскажем, как повысить уровень. Например, мы покажем, как достичь уровня 3 с помощью локального тестирования производительности с использованием Jetpack Macrobenchmark и нового UiAutomator 2.4 API, чтобы точно измерить и проверить любые изменения в производительности вашего приложения.
Подробнее читайте в нашем блоге: [Link to Thursday's Blog: Leveling Guide for your Performance Journey].
Улучшенная отладка эффективности
Расширенная оптимизация не должна мешать чтению отчетов о сбоях. Новые функции помогут вам уверенно отлаживать R8 и фоновые задачи:
Автоматическая деобфускация Logcat
Начиная с версии Android Studio Narwhal, трассировки стека можно автоматически деобфусцировать в окне Logcat. Это позволит вам сразу же увидеть и устранить любые сбои в рабочей сборке.
Правила хранения Narrow Keep
Во вторник мы рассказали о правилах Keep, которые помогают устранять сбои во время выполнения, и подчеркнули, что лучше писать конкретные правила на уровне элементов, а не использовать слишком общие подстановочные знаки. А поскольку это важная тема, мы также подготовили для вас видео.
В Android Studio Otter 3 Feature Drop также есть новая проверка lint для широких правил Keep.
Мы также опубликовали новые рекомендации по тестированию и устранению неполадок в конфигурации R8, чтобы вы могли правильно ее настроить.
Подробнее об этом рассказывается в записи блога, опубликованной во вторник: Настройка и устранение неполадок с правилами сохранения R8.
Фоновые задачи
Мы поделились рекомендациями по отладке распространенных сценариев, с которыми вы можете столкнуться при планировании задач с помощью WorkManager.
Инспектор фоновых задач предоставляет визуальное представление и график задач WorkManager, помогая отлаживать причины задержки или сбоя запланированной работы. А на обновленной целевой странице документации по фоновым задачам вы найдете API, оптимизированные для конкретных сценариев использования. Это поможет вам повысить надежность выполнения задач.
Подробнее об этом рассказывается в записи блога, опубликованной в среду: Background work performance considerations.
Оптимизация эффективности – это непрерывный процесс
Если вы приняли наш вызов и включили полный режим R8, то следующим шагом будет интеграция производительности в план развития продукта с помощью оценки производительности приложения. Эта стандартизированная структура помогает найти наиболее эффективные задачи для непрерывного улучшения.
В конце недели мы провели сеанс вопросов и ответов #AskAndroid Live, на котором инженеры ответили на ваши самые сложные вопросы о R8, оптимизации на основе профиля и многом другом. Если вы пропустили трансляцию, посмотрите запись.
Спасибо за внимание! Продолжайте в том же духе!
-
Мероприятия и программыНачнем с самого эффективного и простого изменения, которое вы можете внести, чтобы повысить производительность приложения: включения оптимизатора R8 в полном режиме.
Ben Weiss • Время на чтение: 5 минут -
Мероприятия и программыВ этом году на Саммите для разработчиков Android мы рассказали, как развиваются инструменты разработчиков Android, чтобы вы могли работать эффективнее вместе со своими агентами.
Adarsh Fernando • Время на чтение: 10 минут -
Мероприятия и программыМы открываем прием заявок на участие в программе Android XR Developer Catalyst, которая призвана ускорить разработку приложений Android XR, готовых к запуску в течение следующего года.
Время на чтение: 1 минута
Получайте еженедельную рассылку с последними новостями о разработке для Android.