Комплексные улучшения
Плагин Android Gradle (AGP) используется для создания приложений Android. Многие инструменты повышения производительности зависят от новых версий AGP. Чтобы получить доступ к последним улучшениям, приложения должны использовать последнюю версию AGP.
Оценка Рекомендация
AGP 7.2 и ниже (0 баллов)
Многие инструменты повышения производительности недоступны или устарели.

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

Срочно обновите AGP до более новой версии для улучшения поддержки инструментов производительности.

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

АГП 7,3 (1 балл)
Очень ограниченная поддержка инструментов с высокой производительностью.

Плагин Android Gradle (AGP) 7.3 обеспечивает базовую поддержку базовых профилей. Пока базовые профили работают, это приложение не сможет максимально эффективно использовать их. Также в этой версии не поддерживаются профили запуска. Инструменты минимизации и оптимизации также устарели и не обеспечивают недавнего улучшения производительности. Это упущенная возможность повышения производительности при запуске и выполнении приложений.

Обновите AGP до более новой версии для улучшения поддержки инструментов производительности.

Увеличение основной версии с 7 на 8 может оказаться пугающим, но оно того стоит с точки зрения производительности. Обновив AGP до более новой версии, вы получите доступ к новейшим инструментам повышения производительности. Благодаря этому вы можете ожидать значительного улучшения производительности при запуске и во время работы. Это позволит вам повысить производительность вашего приложения и удовлетворенность пользователей.
Ознакомьтесь с руководством помощника по обновлению AGP, чтобы узнать об обновлении до более новой версии AGP.

АГП 7,4 – 8,1 (5 баллов)
Ограниченная поддержка инструментов с высокой производительностью.

Плагин Android Gradle (AGP) версий с 7.4 по 8.1 поддерживает базовые профили. Начиная с AGP 8.0, базовые профили можно использовать со специальным плагином Gradle. Профили запуска не поддерживаются до версии AGP 8.2. Инструменты минимизации и оптимизации также устарели и не обеспечивают более новых улучшений производительности.

Обновите AGP до более новой версии при первой же возможности.

Увеличение основной версии с 7 на 8 может быть пугающим, но оно того стоит с точки зрения производительности. Обновив AGP до более новой версии, вы получите доступ к новейшим инструментам повышения производительности. Это позволит вам улучшить производительность запуска и выполнения вашего приложения, а также повысить удовлетворенность пользователей.
Ознакомьтесь с руководством помощника по обновлению AGP, чтобы узнать об обновлении до более новой версии AGP.

АГП 8,2 – 8,5 (15 очков)
Разблокированы самые высокоэффективные инструменты.

Базовые профили и профили запуска полностью доступны при использовании подключаемого модуля Android Gradle версии 8.2 или выше . Вы также можете использовать плагин Gradle Baseline Profiles . Внутренние улучшения за счет оптимизации R8 также появились недавно и оказывают большое влияние. Обновите AGP до более поздней версии, чтобы увидеть улучшенную производительность при запуске и во время работы, поскольку она также включает более новую версию R8.

Будьте в курсе выпусков AGP.

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

АГП 8.6+ (20 баллов)
Полностью разблокированная поддержка высокоэффективных инструментов.

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

Продолжайте в том же духе.

Будьте в курсе последних выпусков AGP, чтобы приложение всегда использовало новейшие инструменты повышения производительности. Убедитесь, что ваш профиль запуска правильно настроен и ваша конфигурация R8 работает должным образом. Ознакомьтесь с общими рекомендациями по производительности , чтобы узнать, как можно повысить производительность вашего приложения во время выполнения.

Комплексные улучшения
Компилятор R8 обеспечивает повышение производительности во многих областях. Размер приложения, время запуска, рендеринг во время выполнения, использование памяти, сбои, ANR и многое другое улучшаются за счет применения методов минимизации и оптимизации. Чтобы максимально эффективно использовать эти улучшения, приложения должны использовать R8 в полном режиме для минимизации и оптимизации своего кода.
Оценка Рекомендация
Не включено (0 баллов)
Этому приложению не хватает многих улучшений производительности.

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

Срочно включите R8, чтобы разблокировать значительные улучшения производительности.

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

Режим совместимости или основные исключения (-dontoptimize, -dontshrink) (5 баллов)
Отключение оптимизации — это огромная упущенная возможность улучшить производительность приложения.

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

Раскройте потенциал производительности, включив оптимизацию R8.

Как можно скорее включите оптимизацию R8 и удалите все исключения -dontoptimize и -dontshrink. Это также разблокирует возможность включения других оптимизаций, таких как оптимизация макета Dex . После включения R8 в полном режиме вернитесь, чтобы пройти еще одну оценку и получить дополнительные рекомендации.

Полный режим R8, минимизированный, оптимизированный и сокращающий ресурсы (20 баллов)
Раскрыт высокий потенциал производительности.

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

Убедитесь, что правила хранения актуальны.

Поскольку приложение продолжает развиваться, правила хранения R8 необходимо обновлять, чтобы приложение по-прежнему было полностью оптимизировано. Сосредоточьте усилия по повышению производительности на других областях. Вы смотрели профили запуска и оптимизацию макета Dex ?

Производительность запуска

Базовые профили повышают скорость выполнения кода с первого запуска, обеспечивая повышение производительности при каждой новой установке и каждом обновлении приложения. Эта оптимизация на основе профилей (PGO) позволяет приложениям оптимизировать запуск, уменьшить проблемы с рендерингом и повысить общую производительность во время выполнения с первого запуска для конечных пользователей. Создается ли базовый профиль и используется ли он для запуска приложения?

Оценка Рекомендация
Нет/Неизвестно (0 баллов)
Отсутствие базового профиля — это огромная упущенная возможность.

Базовые профили могут повысить скорость выполнения кода первого запуска примерно на 30 % за счет исключения этапов интерпретации и JIT-компиляции для включенных путей кода. Проверьте, имеет ли ваше приложение базовый профиль, и обязательно внедрите эту технологию, если его нет.

Срочно принять базовые профили.

Базовые профили повышают скорость выполнения кода при первом запуске примерно на 30 % за счет исключения этапов интерпретации и JIT-компиляции для включенных путей кода. Ознакомьтесь с инструкциями о том, как их принять и повторно сдать экзамен, чтобы получить обновленную оценку.

Вручную, один раз или нечасто (2 балла)
Автоматизация является ключом к поддержанию актуальности базовых профилей.

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

Инвестируйте в автоматизацию создания базового профиля.

Плагин Baseline Profile Gradle — рекомендуемый способ автоматизации создания базового профиля. Его можно настроить для автоматического создания нового профиля для определенных типов сборок, таких как варианты или сборки выпуска. Создание профиля должно быть автоматизировано, чтобы воспользоваться преимуществами оптимизации макета Dex.

Вручную для каждого релиза (5 баллов)
Автоматизация является ключом к поддержанию актуальности базовых профилей.

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

Инвестируйте в автоматизацию создания базового профиля.

Плагин Baseline Profile Gradle — рекомендуемый способ автоматизации создания базового профиля. Его можно настроить для автоматического создания нового профиля для определенных типов сборок, таких как варианты или сборки выпуска.

Автоматизировано для каждого релиза (15 баллов)
Автоматизация позволяет легко поддерживать актуальность базовых профилей.

Постоянно обновляемый базовый профиль — отличный способ улучшить производительность запуска и выполнения приложения. Автоматическое выполнение этого для каждого выпуска — почти идеальный способ обеспечить высокое качество базовых профилей.

Поддерживайте высокий охват базового профиля. Рассмотрим ночное создание профиля.

Базовые профили полезны только в том случае, если они постоянно обновляются. Рассмотрите возможность создания их каждую ночь, чтобы заранее выявить проблемы и обеспечить правильную работу создания профилей, когда необходим выпуск. Ознакомьтесь с плагином Baseline Profile Gradle, чтобы узнать, как автоматизировать создание базового профиля.

Автоматизировано для ночных сборок и выпусков (20 баллов)
Это лучший способ поддерживать базовые профили в актуальном состоянии.

Базовый профиль, который создается каждую ночь для каждого выпуска, постоянно обновляется и готов к использованию для улучшения запуска и производительности приложения при каждом выпуске выпуска. Такая готовность дает вашему приложению преимущество в производительности. Отличная работа!

Продолжайте улучшать охват базового профиля.

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

Производительность запуска

Базовые профили устраняют необходимость запуска JIT-компиляции во время использования функции. Это улучшает производительность рендеринга во время выполнения. Добавление базовых профилей для критически важных действий пользователя может повысить общую производительность приложения.

Сколько действий пользователя охватывается базовыми профилями?
Оценка Рекомендация
Нет/Неизвестно (0 баллов)
Не хватает улучшений производительности во время выполнения.

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

Срочно добавьте базовые профили, чтобы улучшить производительность во время выполнения.

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

Запуск приложения +1 путь пользователя (5 баллов)
Не хватает улучшений производительности во время выполнения.

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

Используйте базовые профили, чтобы расширить возможности пользователей.

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

Запуск приложения +2 пути пользователя (10 баллов)
Базовые профили предлагают больше улучшений производительности.

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

Продолжайте использовать базовые профили для увеличения количества циклов взаимодействия с пользователем.

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

Запуск приложения +3 пути пользователя (15 баллов)
Превосходное освещение базового профиля.

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

Расширьте охват базового профиля, чтобы полностью раскрыть потенциал производительности.

Продолжайте стимулировать внедрение базового профиля . Рассмотрите возможность улучшения внедрения R8 , чтобы увеличить размер кода и общую производительность выполнения приложения. Также рассмотрите возможность внедрения оптимизации макета Dex для дальнейшего повышения производительности запуска приложений.

Производительность запуска

Профили запуска используются системой сборки для дальнейшей оптимизации содержащихся в них классов и методов за счет улучшения компоновки кода в DEX-файлах вашего APK. При использовании профилей запуска ваше приложение обычно запускается на 15–30 % быстрее, чем при использовании только базовых профилей.

Использует ли приложение профили запуска для оптимизации макета dex?
Оценка Рекомендация
Неиспользовано/Неизвестно (0 баллов)
Огромная упущенная возможность улучшить производительность запуска приложений.

Профили запуска используются системой сборки для дальнейшей оптимизации содержащихся в них классов и методов за счет улучшения компоновки кода в файлах DEX вашего APK. При использовании профилей запуска ваше приложение обычно запускается на 15–30 % быстрее, чем при использовании только базовых профилей.
Профили запуска используются для повышения производительности запуска приложений. Не применяя оптимизацию макета Dex через профили запуска, это приложение упускает прекрасную возможность улучшить производительность запуска приложения и удовлетворенность пользователей.

Срочно инвестируйте во внедрение профилей стартапов.

Используйте оптимизацию макета Dex через профили запуска. Это улучшит производительность запуска приложений и удовлетворенность пользователей. Для использования оптимизации макета Dex требуется использование AGP 8.2 или новее, а также включение минификации/R8.

Основная точка входа (10 баллов)
Оптимизирована производительность запуска для основной точки входа.

Использование профилей запуска в качестве основной точки входа — отличный способ улучшить производительность запуска приложения. Улучшенная производительность приложения положительно влияет на удобство использования. Продолжайте в том же духе.

Подумайте о том, чтобы охватить больше точек входа.

Основная точка входа в приложение — самая важная для стартового профиля. Если у этого приложения больше точек входа, рассмотрите возможность покрытия их также профилями запуска . Это могут быть уведомления или дополнительные значки запуска.

Наибольшее количество точек входа (15 баллов)
Охват наиболее часто используемых точек входа — отличный способ улучшить производительность запуска приложения.

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

Изучите другие улучшения производительности и не допускайте ухудшений.

Убедитесь, что профиль запуска создается автоматически для каждой сборки выпуска, автоматизируя задачу Dex Layout Optimizations с помощью подключаемого модуля Gradle Baseline Profiles .
Продолжайте отслеживать производительность запуска приложений с помощью макротестов.

Написать усыновление
Более поздние версии Jetpack Compose предлагают улучшенную производительность по сравнению с предыдущими версиями. Чтобы получить доступ к этим улучшениям, приложения должны использовать последнюю версию Compose. Использует ли приложение последнюю стабильную версию Jetpack Compose?
Оценка Рекомендация
Не использовать Compose (5 баллов)
Начните использовать Compose

Jetpack Compose — это рекомендуемый Android современный набор инструментов для создания собственного пользовательского интерфейса. Это упрощает и ускоряет разработку пользовательского интерфейса на Android. Быстро воплотите в жизнь свое приложение с помощью меньшего количества кода, мощных инструментов и интуитивно понятных API Kotlin.

Начните миграцию вашего пользовательского интерфейса в Jetpack Compose.

Jetpack Compose обеспечивает совместимость с существующей системой Views. Существует несколько стратегий, как перенести части вашего пользовательского интерфейса в Compose и воспользоваться преимуществами, которые предоставляет Compose. Ознакомьтесь с нашей документацией по стратегиям миграции или, альтернативно, ознакомьтесь с нашей кодовой лабораторией, чтобы получить более практический проект.

Составить 2022.10.00 - 2023.10.01 (1 балл)
Не хватает многих новых функций и улучшений производительности!

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

Обновитесь до более новой версии как можно скорее

Производительность по-прежнему является нашим главным приоритетом, и после обновления вы сможете увидеть значительное улучшение производительности по всем направлениям. Мы наблюдаем улучшение производительности прокрутки примерно на 20 %, время запуска на 12 %, улучшение производительности компоновки текста на 22 %. Более подробную информацию о том, какие улучшения были добавлены в Jetpack Compose 2024.01.00, вы можете узнать в блоге релиза .

Составить 2024.01.00 - 2024.08.00 (2 балла)
Последняя версия Jetpack Compose предлагает лучшую производительность и новые функции.

Не приняв последние версии Jetpack Compose, вы не получите всех исправлений ошибок, улучшений производительности и новых функций, над которыми мы работаем, чтобы помочь вам создавать красивые пользовательские интерфейсы.

Обновитесь до новейшей версии, чтобы получить дополнительные улучшения производительности.

Обновив Compose до последней версии, мы увидели дополнительное улучшение производительности на 17 % по времени до первого пикселя в наших тестах! В этой версии мы также включили по умолчанию новый режим сильного пропуска , который позволяет радикально сократить ненужные композиции. В дополнение к этому мы улучшили API индикации, чтобы обеспечить возможность ленивого создания пульсаций, оптимизировали внутреннее представление Compose для более эффективной структуры данных и начали генерировать более эффективный код.

Вы можете проверить дополнительную информацию о том, что было выпущено, в сообщении блога Compose 2024.09.00 .

Последняя стабильная версия Compose (5 баллов)
Поздравляем! В этом приложении установлена ​​последняя стабильная версия Compose.

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

Продолжайте в том же духе

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

Мониторинг и оптимизация
Вызов reportFullyDrawn() с помощью FullyDrawnReporter или ReportDrawn() позволяет системе узнать, когда приложение готово к взаимодействию пользователя. Это обеспечивает доступ к метрике TTFD. Эту метрику можно использовать для сравнительного анализа, и она позволяет улучшить создание профиля запуска.
Оценка Рекомендация
Не использовать reportFullyDrawn()/FullDrawnReporter (0 баллов)
Не хватает внутренних улучшений и показателей производительности.

Несообщение о том, что приложение готово к использованию, — это упущенная возможность более подробно понять время запуска приложения. Использование этого API позволяет системе Android предоставлять более подробные показатели производительности и осуществлять мониторинг Время полностью нарисовать.
Если ваше приложение выполняет отложенную загрузку и первоначальное отображение не включает в себя все ресурсы, например, когда ваше приложение получает изображения из сети, вы можете захотеть отложить вызов reportFullyDrawn() до тех пор, пока ваше приложение не станет пригодным для использования, чтобы вы могли включить численность населения списка как часть вашего контрольного времени. Для платформы Android также важно знать, где профиль запуска должен перестать измеряться.

Используйте reportFullyDrawn() / FullyDrawnReporter, чтобы получить более подробные показатели производительности.

Используйте API FullyDrawnReporter , чтобы сообщить, когда приложение будет готово к использованию. Это откроет более подробные показатели производительности и позволит отслеживать время до полной прорисовки .

Использование reportFullyDrawn()/FullDrawnReporter (5 баллов)
Разблокированы более подробные показатели производительности запуска приложений.

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

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

Платформа Android, а также консоль Google Play предоставляют подробные показатели производительности для времени до полной прорисовки . Используйте эти показатели, чтобы понять и улучшить производительность запуска вашего приложения.
При использовании макротестов вы также можете проверять трассировки, чтобы увидеть, что именно происходит во время запуска приложения.

Статическая оценка производительности приложения

(0/7 questions answered) - For a full picture answer all questions.