| Оценка | Рекомендация | |
|---|---|---|
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 Plugin (AGP) с 7.4 по 8.1 поддерживают базовые профили. Начиная с AGP 8.0 базовые профили можно использовать с выделенным плагином Gradle. Профили запуска не поддерживаются до AGP 8.2. Инструменты минификации и оптимизации также устарели и не обеспечивают более поздних улучшений производительности. | Обновитесь до новой версии AGP как можно скорее. Переход с версии 7 на 8 может быть пугающим, но оправдывает вложения с точки зрения производительности. Обновляясь до новой версии AGP, вы получите доступ к новейшим инструментам производительности. Это позволит вам улучшить производительность запуска и выполнения вашего приложения, а также удовлетворенность пользователей. Ознакомьтесь с руководством помощника по обновлению AGP, чтобы узнать об обновлении до новой версии AGP. |
АГП 8.2 - 8.5 (15 очков) | Разблокирован самый высокопроизводительный инструмент ударного действия. Базовые профили и профили запуска полностью доступны при использовании версии 8.2 или выше Android Gradle Plugin. Вы также можете использовать Baseline Profiles Gradle Plugin . Улучшения под капотом за счет оптимизации R8 также недавние и обеспечивают высокий эффект. Обновитесь до более новой версии AGP, чтобы увидеть улучшенную производительность запуска и выполнения, поскольку она также приносит более новую версию R8. | Будьте в курсе релизов AGP. Новые версии AGP будут поддерживать приложение в актуальном состоянии с помощью новейших инструментов производительности. Это позволит вам улучшить производительность вашего приложения и удовлетворенность пользователей. Производительность запуска и выполнения приложения можно улучшить с помощью внутренних улучшений R8, Baseline Profiles и Dex Layout Optimizations. |
АГП 8.6+ (20 очков) | Полностью разблокированная поддержка высокопроизводительного ударопрочного инструмента Находясь на последней версии AGP, это приложение может полностью использовать новейшие инструменты производительности. Улучшения под капотом через R8 , Baseline Profiles и Dex Layout Optimizations полностью поддерживаются. Обязательно используйте эти инструменты для улучшения производительности вашего приложения и удовлетворенности пользователей. | Продолжайте в том же духе. Будьте в курсе последних выпусков AGP, чтобы приложение всегда использовало новейшие инструменты производительности. Убедитесь, что ваш Startup Profile настроен правильно, а ваш Baseline Profile охватывает наиболее важные пользовательские пути. Также проверьте, что ваша конфигурация R8 работает так, как задумано. Ознакомьтесь с общим руководством по производительности , чтобы узнать, как можно улучшить производительность выполнения вашего приложения. |
| Оценка | Рекомендация | |
|---|---|---|
Не включено (0 баллов) | Этому приложению не хватает многих улучшений производительности. Неиспользование сжатия кода и оптимизации через R8 — огромная упущенная возможность улучшить производительность приложения. Многие внутренние улучшения доступны только при включении R8. | Срочно включите R8, чтобы получить существенные улучшения производительности. Включите оптимизацию R8 как можно скорее. Это откроет множество улучшений производительности. Затем вернитесь, чтобы пройти еще одну оценку для получения дополнительных рекомендаций. |
Режим совместимости или основные исключения (-donoptimize, -dontshrink) (5 баллов) | Отключение оптимизаций — это упущенная возможность улучшить производительность приложения. Производительность этого приложения не полностью оптимизирована. Это огромная упущенная возможность улучшить производительность приложения. | Раскройте потенциал производительности, включив оптимизации R8. Включите оптимизации R8 как можно скорее и удалите любые исключения -dontoptimize и -dontshrink. Это также разблокирует возможность включения других оптимизаций, таких как Dex Layout Optimizations . После включения R8 в полном режиме вернитесь, чтобы пройти еще одну оценку для получения дополнительных указаний. |
Полный режим R8, минимизированный, оптимизированный и с сокращением ресурсов (20 баллов) | Раскрыт высокий потенциал производительности. Включив оптимизации R8 , ваше приложение находится в отличном положении для улучшения производительности, которое обеспечивается за счет оптимизации, обфускации и сжатия кода. Это приложение готово реализовать больше улучшений производительности запуска, полагаясь на оптимизации макета Dex . | Убедитесь, что правила хранения обновлены. Поскольку приложение продолжает развиваться, правила R8 keep необходимо обновлять, чтобы гарантировать, что приложение по-прежнему полностью оптимизировано. Сосредоточьте усилия по улучшению производительности на других областях. Вы смотрели Startup Profiles и Dex Layout Optimizations ? |
Базовые профили повышают скорость выполнения кода с первого запуска, обеспечивая повышение производительности для каждой новой установки приложения и каждого обновления приложения. Эта оптимизация на основе профиля (PGO) позволяет приложениям оптимизировать запуск, уменьшить проблемы с рендерингом и повысить общую производительность времени выполнения с первого запуска для конечных пользователей. Создается ли и используется ли базовый профиль для запуска приложения?
| Оценка | Рекомендация | |
|---|---|---|
Нет / Неизвестно (0 баллов) | Отсутствие базового профиля — это огромная упущенная возможность. Базовые профили могут улучшить скорость выполнения кода первого запуска примерно на 30%, избегая этапов интерпретации и компиляции just-in-time (JIT) для включенных путей кода. Проверьте, есть ли у вашего приложения базовый профиль, и обязательно примите технологию, если его нет. | Срочно примите базовые профили. Базовые профили улучшают скорость выполнения кода первого запуска примерно на 30%, избегая шагов интерпретации и компиляции just-in-time (JIT) для включенных путей кода. Ознакомьтесь с руководством по их внедрению и повторной оценке для получения обновленной оценки. |
Вручную, один раз или нечасто (2 балла) | Автоматизация играет ключевую роль в поддержании актуальности базовых профилей. Обновление базовых профилей вручную может легко проскользнуть между трещинами. Особенно если это делается только на одноразовой основе. Базовые профили должны быть заново сгенерированы для каждого выпуска, чтобы максимизировать потенциал повышения производительности для запуска приложения и производительности во время выполнения. | Инвестируйте в автоматизацию создания базового профиля. Плагин Baseline Profile Gradle — рекомендуемый способ автоматизации создания Baseline Profile. Его можно настроить для автоматического создания нового профиля для определенных типов сборки, таких как варианты или сборки релиза. Генерация профиля должна быть автоматизирована, чтобы воспользоваться преимуществами Dex Layout Optimization. |
Вручную для каждого выпуска (5 баллов) | Автоматизация играет ключевую роль в поддержании актуальности базовых профилей. Обновление базовых профилей вручную может легко ускользнуть от внимания. А устаревший базовый профиль не поможет улучшить запуск приложения или производительность во время выполнения. | Инвестируйте в автоматизацию создания базового профиля. Плагин Baseline Profile Gradle — рекомендуемый способ автоматизации создания Baseline Profile. Его можно настроить для автоматического создания нового профиля для определенных типов сборки, таких как варианты или сборки релиза. |
Автоматизировано для каждого выпуска (15 баллов) | Автоматизация позволяет легко поддерживать базовые профили в актуальном состоянии. Базовый профиль, который поддерживается в актуальном состоянии, — отличный способ улучшить запуск и производительность приложения во время выполнения. Автоматическое выполнение этого для каждого выпуска — почти идеальный способ обеспечить высокое качество базовых профилей. | Поддерживайте высокий базовый охват профиля. Рассмотрите возможность ночной генерации профиля. Базовые профили полезны только в том случае, если они поддерживаются в актуальном состоянии. Рассмотрите возможность их создания каждую ночь, чтобы выявлять проблемы на ранних этапах и гарантировать, что создание профилей будет работать хорошо, когда потребуется выпуск. Ознакомьтесь с плагином Baseline Profile Gradle, чтобы узнать, как еще больше автоматизировать создание базовых профилей. |
Автоматизировано для ночных сборок и выпусков (20 баллов) | Это лучший способ поддерживать базовые профили в актуальном состоянии. Базовый профиль, который генерируется каждую ночь и для каждого релиза, поддерживается в актуальном состоянии и готов к использованию для улучшения запуска и производительности приложения при каждом сокращении релиза. Такая готовность дает вашему приложению преимущество в производительности приложения. Отлично! | Продолжайте улучшать покрытие базового профиля. Вы освоили автоматическую генерацию базового профиля для этого приложения. Продолжайте в том же духе. Убедитесь, что пользовательские пути, охватываемые базовым профилем, также регулярно обновляются и расширяются по мере роста приложения. Это гарантирует, что базовый профиль всегда будет актуален и готов к использованию для улучшения запуска и производительности во время выполнения приложения. |
Базовые профили устраняют необходимость запуска JIT-компиляции во время использования функции. Это повышает производительность рендеринга во время выполнения. Добавление базовых профилей для критических пользовательских путешествий может повысить общую производительность приложения.
Сколько пользовательских путей охвачено базовыми профилями?| Оценка | Рекомендация | |
|---|---|---|
Нет / Неизвестно (0 баллов) | Отсутствие улучшений производительности во время выполнения. Производительность выполнения приложения можно улучшить, приняв базовые профили для критических пользовательских путешествий. Принимая базовые профили только для запуска приложения, вы упускаете прекрасную возможность улучшить производительность выполнения и удовлетворенность пользователей. | Срочно добавьте базовые профили для улучшения производительности выполнения. Примите базовые профили для запуска приложения и критических пользовательских путешествий. Это путешествия, которые используются большим количеством пользователей и имеют решающее значение для функциональности приложения. Вернитесь и пересдайте оценку для получения обновленной оценки и дополнительных рекомендаций. |
Запуск приложения +1 путь пользователя (5 баллов) | Отсутствие улучшений производительности во время выполнения. Производительность выполнения приложения можно улучшить, приняв базовые профили для критических пользовательских путешествий. Принимая базовые профили только для запуска приложения или одного пользовательского путешествия, вы упускаете прекрасную возможность улучшить производительность выполнения и удовлетворенность пользователей. | Используйте базовые профили для большего количества пользовательских путей. Примите базовые профили для большего количества пользовательских путешествий. Благодаря этому приложение продолжит улучшать производительность во время выполнения и удовлетворенность пользователей. Вернитесь и повторно пройдите оценку для получения обновленной оценки и дополнительных рекомендаций. |
Запуск приложения +2 пути пользователя (10 баллов) | Базовые профили обеспечивают большее повышение производительности. Благодаря использованию базовых профилей для большего количества пользовательских путей это приложение может повысить производительность выполнения и удовлетворенность пользователей. Производительность выполнения приложения можно повысить, приняв базовые профили для критически важных пользовательских путей. Применяя базовые профили только для запуска приложения или нескольких пользовательских циклов, вы упускаете прекрасную возможность улучшить производительность и удовлетворенность пользователей. | Продолжайте использовать базовые профили для большего количества пользовательских путей. Определите больше пользовательских путей, которые имеют решающее значение для функциональности приложения, и примите базовые профили для них. Благодаря этому приложение продолжит улучшать производительность во время выполнения и удовлетворенность пользователей. Вернитесь и повторно пройдите оценку для получения обновленной оценки и дополнительных рекомендаций. |
Запуск приложения +3 пути пользователя (15 баллов) | Превосходное покрытие базового профиля. Охват запуска приложения и нескольких критических пользовательских путей с помощью Baseline Profiles — отличный способ улучшить производительность и удовлетворенность пользователей. Возможно, Baseline Profiles может охватить больше пользовательских путей. Но это приложение уже в отличной форме с точки зрения охвата Baseline Profile. Продолжайте в том же духе. | Расширьте охват базового профиля, чтобы раскрыть весь потенциал производительности. Продолжайте продвигать принятие Baseline Profile . Рассмотрите возможность улучшения принятия R8 для улучшения размера кода и общей производительности выполнения приложения. Также рассмотрите возможность принятия Dex Layout Optimizations для дальнейшего улучшения производительности запуска приложения. |
Профили запуска используются системой сборки для дальнейшей оптимизации классов и методов, которые они содержат, путем улучшения макета кода в файлах DEX вашего APK. С профилями запуска запуск вашего приложения обычно происходит на 15–30 % быстрее, чем с использованием только базовых профилей.
Использует ли приложение профили запуска для оптимизации макета dex?| Оценка | Рекомендация | |
|---|---|---|
Неиспользованный / Неизвестно (0 баллов) | Огромная упущенная возможность улучшить производительность запуска приложений. Профили запуска используются системой сборки для дальнейшей оптимизации классов и методов, которые они содержат, путем улучшения макета кода в файлах DEX вашего APK. С профилями запуска запуск вашего приложения обычно происходит на 15–30 % быстрее, чем с использованием только базовых профилей. Профили запуска используются для улучшения производительности запуска приложения. Не принимая оптимизации макета Dex через профили запуска, это приложение упускает прекрасную возможность улучшить производительность запуска приложения и удовлетворенность пользователей. | Срочно инвестируйте во внедрение профилей стартапов. Принять оптимизацию макета Dex через профили запуска. Это улучшит производительность запуска приложения и удовлетворенность пользователей. Использование оптимизации макета Dex требует использования AGP 8.2 или более поздней версии и включения минификации/R8. |
Основная точка входа (10 баллов) | Оптимизирована производительность запуска для основной точки входа. Использование профилей запуска для основной точки входа — отличный способ улучшить производительность запуска приложения. Улучшенная производительность приложения положительно влияет на пользовательский опыт. Продолжайте в том же духе. | Рассмотрите возможность охвата большего количества точек входа. Основная точка входа приложения — самая важная для покрытия профиля запуска. Если у этого приложения больше точек входа, рассмотрите возможность покрытия их профилями запуска . Это могут быть уведомления или дополнительные значки запуска. |
Наибольшее количество точек входа (15 баллов) | Охват наиболее используемых точек входа — отличный способ повысить производительность запуска приложения. Оптимизированный запуск отлично подходит для удовлетворения пользователя. Благодаря использованию профилей запуска для большинства точек входа это приложение находится в отличной форме с точки зрения производительности запуска с точки зрения инструментария. Продолжайте в том же духе. | Изучите другие возможности улучшения производительности и не допускайте регрессий. Обеспечьте автоматическую генерацию профиля запуска для каждой сборки выпуска, автоматизировав задачу оптимизации компоновки Dex с помощью плагина Gradle Baseline Profiles . Продолжайте отслеживать производительность запуска приложений с помощью макробенчмарков |
| Оценка | Рекомендация | |
|---|---|---|
Не использую Compose (5 баллов) | Начните использовать Compose Jetpack Compose — это рекомендуемый современный набор инструментов Android для создания собственного пользовательского интерфейса. Он упрощает и ускоряет разработку пользовательского интерфейса на Android. Быстро оживите свое приложение с меньшим количеством кода, мощными инструментами и интуитивно понятными API Kotlin. | Начните перенос своего пользовательского интерфейса в Jetpack Compose Jetpack Compose обеспечивает взаимодействие с существующей системой Views. Существует несколько стратегий переноса частей вашего пользовательского интерфейса в Compose и получения выгоды от предоставляемых Compose преимуществ. Ознакомьтесь с нашей документацией по стратегиям миграции или, в качестве альтернативы, проверьте нашу codelab для более практического проекта. |
Составить 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() / FullyDrawnReporter (0 баллов) | Упускаем скрытые улучшения и показатели производительности. Не сообщая, когда приложение готово к использованию, вы упускаете возможность более подробно изучить время запуска приложения. Использование этого API позволяет системе Android предоставлять более подробные показатели производительности и позволяет осуществлять мониторинг Время полной вытяжки. Если ваше приложение выполняет ленивую загрузку и начальное отображение не включает все ресурсы, например, когда ваше приложение извлекает изображения из сети, вы можете отложить вызов reportFullyDrawn() до тех пор, пока ваше приложение не станет пригодным для использования, чтобы вы могли включить заполнение списка в качестве части вашего эталонного времени. Также важно, чтобы фреймворк Android знал, где следует прекратить измерение профиля запуска. | Используйте reportFullyDrawn() / FullyDrawnReporter, чтобы получить более подробные показатели производительности. Используйте API FullyDrawnReporter для сообщения о готовности приложения к использованию. Это позволит получить более подробные показатели производительности и включить мониторинг времени до полной отрисовки . |
Использование reportFullyDrawn() / FullyDrawnReporter (5 баллов) | Разблокированы более подробные показатели производительности запуска приложений. Это приложение использует API FullyDrawnReporter для сообщения о готовности приложения к использованию. Это открывает более подробные метрики производительности и позволяет отслеживать время до полной отрисовки . | Используйте информацию из TTFD для понимания и улучшения производительности запуска приложений. Android Framework, а также Google Play Console предоставляют подробные метрики производительности для Time to Fully Drawn . Используйте эти метрики для понимания и улучшения производительности запуска вашего приложения. При использовании макробенчмарков вы также можете просматривать трассировки, чтобы увидеть, что именно происходит во время запуска приложения. |
(Отвечено на 0/7 вопросов)
| Оценка | Рекомендация | |
|---|---|---|
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 Plugin (AGP) с 7.4 по 8.1 поддерживают базовые профили. Начиная с AGP 8.0 базовые профили можно использовать с выделенным плагином Gradle. Профили запуска не поддерживаются до AGP 8.2. Инструменты минификации и оптимизации также устарели и не обеспечивают более поздних улучшений производительности. | Обновитесь до новой версии AGP как можно скорее. Переход с версии 7 на 8 может быть пугающим, но оправдывает вложения с точки зрения производительности. Обновляясь до новой версии AGP, вы получите доступ к новейшим инструментам производительности. Это позволит вам улучшить производительность запуска и выполнения вашего приложения, а также удовлетворенность пользователей. Ознакомьтесь с руководством помощника по обновлению AGP, чтобы узнать об обновлении до новой версии AGP. |
АГП 8.2 - 8.5 (15 очков) | Разблокирован самый высокопроизводительный инструмент ударного действия. Базовые профили и профили запуска полностью доступны при использовании версии 8.2 или выше Android Gradle Plugin. Вы также можете использовать Baseline Profiles Gradle Plugin . Улучшения под капотом за счет оптимизации R8 также недавние и обеспечивают высокий эффект. Обновитесь до более новой версии AGP, чтобы увидеть улучшенную производительность запуска и выполнения, поскольку она также приносит более новую версию R8. | Будьте в курсе релизов AGP. Новые версии AGP будут поддерживать приложение в актуальном состоянии с помощью новейших инструментов производительности. Это позволит вам улучшить производительность вашего приложения и удовлетворенность пользователей. Производительность запуска и выполнения приложения можно улучшить с помощью внутренних улучшений R8, Baseline Profiles и Dex Layout Optimizations. |
АГП 8.6+ (20 очков) | Полностью разблокированная поддержка высокопроизводительного ударопрочного инструмента Находясь на последней версии AGP, это приложение может полностью использовать новейшие инструменты производительности. Улучшения под капотом через R8 , Baseline Profiles и Dex Layout Optimizations полностью поддерживаются. Обязательно используйте эти инструменты для улучшения производительности вашего приложения и удовлетворенности пользователей. | Продолжайте в том же духе. Будьте в курсе последних выпусков AGP, чтобы приложение всегда использовало новейшие инструменты производительности. Убедитесь, что ваш Startup Profile настроен правильно, а ваш Baseline Profile охватывает наиболее важные пользовательские пути. Также проверьте, что ваша конфигурация R8 работает так, как задумано. Ознакомьтесь с общим руководством по производительности , чтобы узнать, как можно улучшить производительность выполнения вашего приложения. |
| Оценка | Рекомендация | |
|---|---|---|
Не включено (0 баллов) | Этому приложению не хватает многих улучшений производительности. Неиспользование сжатия кода и оптимизации через R8 — огромная упущенная возможность улучшить производительность приложения. Многие внутренние улучшения доступны только при включении R8. | Срочно включите R8, чтобы получить существенные улучшения производительности. Включите оптимизацию R8 как можно скорее. Это откроет множество улучшений производительности. Затем вернитесь, чтобы пройти еще одну оценку для получения дополнительных рекомендаций. |
Режим совместимости или основные исключения (-donoptimize, -dontshrink) (5 баллов) | Отключение оптимизаций — это упущенная возможность улучшить производительность приложения. Производительность этого приложения не полностью оптимизирована. Это огромная упущенная возможность улучшить производительность приложения. | Раскройте потенциал производительности, включив оптимизации R8. Включите оптимизации R8 как можно скорее и удалите любые исключения -dontoptimize и -dontshrink. Это также разблокирует возможность включения других оптимизаций, таких как Dex Layout Optimizations . После включения R8 в полном режиме вернитесь, чтобы пройти еще одну оценку для получения дополнительных указаний. |
Полный режим R8, минимизированный, оптимизированный и с сокращением ресурсов (20 баллов) | Раскрыт высокий потенциал производительности. Включив оптимизации R8 , ваше приложение находится в отличном положении для улучшения производительности, которое обеспечивается за счет оптимизации, обфускации и сжатия кода. Это приложение готово реализовать больше улучшений производительности запуска, полагаясь на оптимизации макета Dex . | Убедитесь, что правила хранения обновлены. Поскольку приложение продолжает развиваться, правила R8 keep необходимо обновлять, чтобы гарантировать, что приложение по-прежнему полностью оптимизировано. Сосредоточьте усилия по улучшению производительности на других областях. Вы смотрели Startup Profiles и Dex Layout Optimizations ? |
Базовые профили повышают скорость выполнения кода с первого запуска, обеспечивая повышение производительности для каждой новой установки приложения и каждого обновления приложения. Эта оптимизация на основе профиля (PGO) позволяет приложениям оптимизировать запуск, уменьшить проблемы с рендерингом и повысить общую производительность времени выполнения с первого запуска для конечных пользователей. Создается ли и используется ли базовый профиль для запуска приложения?
| Оценка | Рекомендация | |
|---|---|---|
Нет / Неизвестно (0 баллов) | Отсутствие базового профиля — это огромная упущенная возможность. Базовые профили могут улучшить скорость выполнения кода первого запуска примерно на 30%, избегая интерпретации и шагов компиляции Just In-Time (JIT) для включенных путей кода. Проверьте, есть ли в вашем приложении базовый профиль и убедитесь, что примите эту технологию, если это не так. | Срочно принять базовые профили. Базовые профили улучшают скорость выполнения кода первого запуска примерно на 30%, избегая интерпретации и шагов компиляции с указанием времени (JIT) для включенных путей кода. Ознакомьтесь с руководством о том, как их принять и вернуть оценку для обновленного балла. |
Вручную, один раз или редко (2 балла) | Автоматизация является ключом к поддержанию базовых профилей. Обновление базовых профилей вручную может легко проскользнуть между трещинами. Особенно, если это сделано только на одноразовой основе. Базовые профили должны быть свежеприготовленными для каждой RELASE, чтобы максимизировать потенциал увеличения производительности для запуска приложений и производительности времени выполнения. | Инвестируйте в автоматизацию создания базового профиля. Плагин базового профиля Gradle - это рекомендуемый способ автоматизировать создание базового профиля. Он может быть настроен для создания свежего профиля для определенных типов сборки, таких как варианты или автоматические сборки выпуска. Генерация профиля должна быть автоматизирована, чтобы воспользоваться оптимизацией макета DEX. |
Вручную для каждого выпуска (5 баллов) | Автоматизация является ключом к поддержанию базовых профилей. Обновление базовых профилей вручную может легко проскользнуть между трещинами. И устаревший базовый профиль не помогает улучшить запуск приложений или производительность времени выполнения. | Инвестируйте в автоматизацию создания базового профиля. Плагин базового профиля Gradle - это рекомендуемый способ автоматизировать создание базового профиля. Он может быть настроен для создания свежего профиля для определенных типов сборки, таких как варианты или автоматические сборки выпуска. |
Автоматизирован для каждого выпуска (15 баллов) | Автоматизация позволяет легко поддерживать базовые профили в актуальном состоянии. Базовый профиль, который обновлен, является отличным способом улучшения запуска приложений и производительности времени выполнения. Выполнение этого для каждого выпуска автоматически является почти идеальным способом обеспечения высококачественных базовых профилей. | Держите базовый охват профиля высоким. Рассмотрим ночное поколение профиля. Базовые профили полезны только в том случае, если они обновлены. Подумайте о том, чтобы создать их ночью, чтобы достать проблемы и убедиться, что генерация профиля работает хорошо, когда необходим релиз. Проверьте плагин Gradle Baseline для дальнейшего автоматизации создания базового профиля. |
Автоматизирован для ночных сборок и выпусков (20 баллов) | Это лучший способ поддерживать базовые профили в курсе. Базовый профиль, который генерируется ночью и для каждого релиза, остается в курсе и готова использовать для улучшения запуска приложений и производительности времени выполнения всякий раз, когда релиз. Эта готовность дает вашему приложению преимущество в производительности приложения. Молодец! | Продолжайте улучшать базовый охват профиля. Вы освоили автоматизация генерации базового профиля для этого приложения. Продолжайте в том же духе. Убедитесь, что пользовательские поездки, охватываемые базовым профилем, также регулярно обновляются и расширяются по мере того, как приложение продолжает расти. Это гарантирует, что базовый профиль всегда актуально и готов к тому, чтобы их можно было использовать для улучшения запуска приложений и производительности времени выполнения. |
Базовые профили Удалите необходимость запуска компиляции JIT, в то время как используется функция. Это улучшает производительность во время выполнения. Добавление базовых профилей для критических поездок пользователей может улучшить общую производительность приложения.
Сколько поездок пользователей покрывается базовыми профилями?| Оценка | Рекомендация | |
|---|---|---|
Нет / неизвестно (0 баллов) | Пропустив улучшение производительности времени выполнения. Производительность выполнения приложения может быть улучшена, приняв базовые профили для критических поездок пользователей. Принимая только базовые профили для запуска приложений, вы упускаете прекрасную возможность для повышения производительности выполнения и удовлетворенности пользователей. | Срочно добавьте базовые профили, чтобы повысить производительность выполнения. Принять базовые профили для запуска приложений и критических поездок пользователей. Это поездки, которые используются большим количеством пользователей и имеют решающее значение для функциональности приложения. Вернитесь и верните оценку для обновленного балла и дополнительных руководств. |
Запуск приложения +1 Пользовательский путь (5 баллов) | Пропустив улучшение производительности времени выполнения. Производительность выполнения приложения может быть улучшена, приняв базовые профили для критических поездок пользователей. Принимая только базовые профили для запуска приложений или одного пользователя, вы упускаете прекрасную возможность улучшить производительность времени выполнения и удовлетворенность пользователями. | Принять базовые профили для большего количества пользовательских поездок. Принять базовые профили для большего количества пользовательских поездок. Сделав это, приложение будет продолжать улучшать производительность времени выполнения и удовлетворенность пользователей. Вернитесь и верните оценку для обновленного балла и дополнительных руководств. |
Запуск приложения +2 Пользовательские путешествия (10 баллов) | Базовые профили предлагают больше улучшений производительности. Принимая базовые профили для большего количества пользовательских поездок, это приложение может повысить производительность времени выполнения и удовлетворенность пользователей. Производительность выполнения Runting может быть улучшена путем принятия базовых профилей для критических поездок пользователей. Принимая только базовые профили для запуска приложений или нескольких поездок пользователей, вы упускаете прекрасную возможность для повышения производительности времени выполнения и удовлетворенности пользователей. | Продолжайте принимать базовые профили для большего количества пользовательских поездок. Определите больше поездок пользователей, которые имеют решающее значение для функциональности приложения, и принять базовые профили для них. Сделав это, приложение будет продолжать улучшать производительность времени выполнения и удовлетворенность пользователей. Вернитесь и верните оценку для обновленного балла и дополнительных руководств. |
Запуск приложения +3 Пользовательские путешествия (15 баллов) | Выдача базового покрытия профиля. Окрытие запуска приложений и несколько критических поездок пользователей с базовыми профилями - отличный способ повысить производительность и удовлетворенность пользователей. Там может быть больше пользовательских поездок, которые могут быть покрыты базовыми профилями. Но это приложение уже в отличной форме с точки зрения базового охвата профиля. Продолжайте в том же духе. | Расширить базовое покрытие профиля, чтобы разблокировать полную производительность. Продолжить управление базовым профилем . Подумайте о улучшении принятия R8 для улучшения размера кода и общей производительности выполнения приложений. Также рассмотрите возможность принятия оптимизации макета DEX для дальнейшего повышения производительности запуска приложений. |
Профили запуска используются системой сборки для дальнейшей оптимизации классов и методов, которые они содержат, путем улучшения макета кода в файлах DEX вашего APK. Благодаря профилям стартапов ваш стартап приложения обычно на 15% и 30% быстрее, чем с базовыми профилями.
Использует ли приложение профили запуска для оптимизации макета DEX?| Оценка | Рекомендация | |
|---|---|---|
Неиспользованный / неизвестный (0 баллов) | Огромная упущенная возможность улучшить производительность запуска приложений. Профили запуска используются системой сборки для дальнейшей оптимизации классов и методов, которые они содержат, путем улучшения макета кода в файлах DEX вашего APK. Благодаря профилям стартапов ваш стартап приложения обычно на 15% и 30% быстрее, чем с базовыми профилями. Профили запуска используются для повышения производительности запуска приложений. Не внедряя оптимизацию макета DEX с помощью профилей запуска, это приложение упускает отличную возможность для повышения производительности запуска приложений и удовлетворенности пользователей. | Срочно инвестируйте в принятие профилей стартапов. Принять оптимизацию макета DEX через профили запуска. Это улучшит производительность запуска приложений и удовлетворенность пользователей. Использование оптимизации макета DEX требует использования AGP 8.2 или более нового, а также для обеспечения MINIFICE/R8. |
Основная точка входа (10 баллов) | Оптимизированная производительность запуска для основной точки входа. Использование профилей запуска для основной точки входа - отличный способ повысить производительность запуска приложений. Улучшенная производительность приложения положительно влияет на пользовательский опыт. Продолжайте в том же духе. | Подумайте о том, чтобы покрыть больше точек входа. Основная точка записи приложения является наиболее важной, чтобы покрыть профиль запуска. Если в этом приложении есть больше точек входа, рассмотрите возможность покрытия их с помощью профилей запуска . Это могут быть уведомления или дополнительные значки пускового установки. |
Большинство точек входа (15 баллов) | Покрытие наиболее используемых точек входа - отличный способ повысить производительность запуска приложений. Оптимизированный опыт стартапа отлично подходит для удовлетворения пользователей. Приняв профили стартапов для большинства точек входа, это приложение имеет отличную форму с точки зрения производительности запуска с точки зрения инструмента. Продолжайте в том же духе. | Изучите другие улучшения производительности и сохраняйте регрессии в страхе. Убедитесь, что профиль запуска генерируется автоматически для каждой сборки выпуска путем автоматизации задачи оптимизации макета DEX с помощью плагина Gradle Baseline . Продолжайте мониторинг производительности запуска приложения с помощью Macrobenchmarks |
| Оценка | Рекомендация | |
|---|---|---|
Не используя Compose (5 баллов) | Начните использовать Compose JetPack Compose - это рекомендуемый современный инструментарий Android для создания собственного пользовательского интерфейса. Он упрощает и ускоряет разработку пользовательского интерфейса на Android. Быстро оживить свое приложение с меньшим кодом, мощными инструментами и интуитивно понятными API Kotlin. | Начните переносить свой пользовательский интерфейс в JetPack Compose JetPack Compose позволяет взаимодействовать с существующей системой представлений. Существует несколько стратегий, как переносить части вашего пользовательского интерфейса для составления и извлечения выгоды от Perks Compose Sose. Проверьте нашу документацию о стратегиях миграции или в качестве альтернативы проверьте наш CodeLab для более практического проекта. |
Составьте 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 2024.09.00 . |
Последняя стабильная композа (5 баллов) | Поздравляю! Это приложение обновляется с последним релизом стабильного Compose. Использование последней версии Compose - отличный способ извлечь выгоду из улучшения производительности в каждой новой версии Compose. | Продолжайте в том же духе. Оставайтесь в курсе последних стабильных выпусков Compose, чтобы продолжить пользу от улучшения производительности и исправлений ошибок. В этой области нет немедленных действий. |
reportFullyDrawn() , используя FullyDrawnReporter или ReportDrawn() позволяет системе знать, когда приложение будет готово к взаимодействию с пользователем. Это обеспечивает доступ к метрике TTFD. Этот показатель можно использовать для сравнительного анализа и позволяет улучшить создание профиля запуска. | Оценка | Рекомендация | |
|---|---|---|
Не используя отчетыморану () / полностью | Пропустившись под улучшением капота и показателями производительности. Не сообщать, когда приложение будет готово к использованию, является упущенной возможностью, чтобы более подробно понять время запуска приложения. Использование этого API позволяет системе Android предоставлять более подробные показатели производительности и позволяет мониторингу Время полностью нарисовать. Если ваше приложение выполняет ленивую загрузку, а начальный дисплей не включает в себя все ресурсы, например, когда ваше приложение получает изображения из сети, вы можете отложить вызов отчеты отчеты () до тех пор, пока ваше приложение не станет пригодным для использования, чтобы вы могли включить в список популяции списка как часть вашего контрольного времени. Для Android Framework также важно знать, где должен прекратить измерять профиль запуска. | Принять отчетыморану () / полностью Используйте API полностью RawnReporter , чтобы сообщить, когда приложение будет готово к использованию. Это разблокирует более подробные показатели производительности и позволит мониторинг времени для полного нарисования . |
Использование отчетов | Разблокировал более подробные показатели производительности приложения. Это приложение использует API полностью RawnRawnReporter для отчета, когда приложение будет готово к использованию. Это разблокирует более подробные показатели производительности и позволяет мониторингу времени для полного нарисования . | Используйте информацию от TTFD, чтобы понять и улучшить производительность запуска приложений. Framework Android, а также консоль Google Play предоставляют подробные показатели производительности для полного натяжения времени . Используйте эти показатели, чтобы понять и улучшить производительность вашего приложения. При использовании Macrobenchmarks вы также можете осмотреть следы, чтобы увидеть, что именно происходит во время запуска приложения. |
(0/7 на вопросы ответили)