Чтобы переводить контент на ваш предпочитаемый язык, Google использует технологии на основе искусственного интеллекта. Переводы от ИИ могут содержать ошибки.
Как создать профили базовой конфигурации
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Профили базовой конфигурации необходимы для максимальной производительности Jetpack Compose.
Предварительная компиляция критических путей пользователя помогает обеспечить плавную отрисовку пользовательского интерфейса Compose.
Автоматически генерируйте профили для каждого выпуска приложения с помощью библиотеки Jetpack Macrobenchmark и BaselineProfileRule. Чтобы воспользоваться улучшениями сборки при использовании базовых профилей, рекомендуем использовать версию com.android.tools.build:gradle:8.0.0 или более позднюю.
Вот общие шаги по созданию нового базового профиля:
Настройте модуль профиля базовой конфигурации.
Определите тест JUnit, который помогает генерировать профили базовой конфигурации.
Добавьте алгоритмы достижения цели, которые вы хотите оптимизировать.
Сгенерируйте профиль базовой конфигурации.
После создания базового профиля протестируйте его на физическом устройстве, чтобы оценить повышение скорости.
Как создать профиль базовой конфигурации с помощью AGP 8.2 или более поздней версии
Проще всего создать новый базовый профиль с помощью шаблона модуля Baseline Profile, доступного в Android Studio Iguana и плагине Android Gradle (AGP) 8.2.
Шаблон модуля Baseline Profile Generator в Android Studio автоматизирует создание нового модуля для генерации и тестирования профилей Baseline. При запуске шаблона генерируется большая часть типичной конфигурации сборки, генерации базового профиля и кода подтверждения. Шаблон создает код для генерации и тестирования профилей базовой конфигурации, чтобы измерить скорость запуска приложения.
Как настроить модуль профиля базовой конфигурации
Чтобы запустить шаблон модуля профиля Baseline, выполните следующие действия:
Выберите File (Файл) > New (Создать) > New Module (Новый модуль).
На панели Templates (Шаблоны) выберите шаблон Baseline Profile Generator (Генератор базового профиля) и настройте его.
Рисунок 1. Baseline Profile Generator.
В шаблоне есть следующие поля:
Целевое приложение. Приложение, для которого создается профиль базовой конфигурации. Если в вашем проекте только один модуль приложения, в этом списке будет только один элемент.
Module name (Название модуля). Название создаваемого модуля профиля Baseline.
Package name (Название пакета). Название пакета, которое вы хотите использовать для модуля профиля Baseline.
Language (Язык). Выберите язык, на котором будет сгенерирован код: Kotlin или Java.
Язык конфигурации сборки. Выберите, какой язык вы хотите использовать для скриптов конфигурации сборки: Kotlin Script (KTS) или Groovy.
Использование устройства под управлением Gradle. Укажите, используете ли вы устройства под управлением Gradle для тестирования приложения.
Нажмите Готово. Модуль будет создан. Если вы используете систему управления версиями, вам может быть предложено добавить в нее файлы нового модуля.
Определите генератор профиля базовой конфигурации
Новый модуль содержит тесты для создания и оценки профиля Baseline Profile, а также для проверки базового запуска приложения. Рекомендуем дополнить их, включив в них критические пользовательские пути и расширенные рабочие процессы запуска. Убедитесь, что все тесты, связанные с запуском приложения, находятся в блоке rule, в котором для includeInStartupProfile задано значение true. Для оптимальной производительности убедитесь, что все тесты, не связанные с запуском приложения, не включены в профиль запуска. Оптимизация запуска приложения используется для определения специальной части профиля Baseline, которая называется профилем запуска.
Для удобства обслуживания рекомендуется абстрагировать эти CUJ за пределами сгенерированного базового профиля и кода теста, чтобы их можно было использовать для обоих. Это означает, что изменения в CUJ используются последовательно.
Как создать и установить профиль базовой конфигурации
Шаблон модуля профиля базовой конфигурации добавляет новую конфигурацию запуска для создания профиля базовой конфигурации. Если вы используете версии продукта, Android Studio создает несколько конфигураций запуска, чтобы вы могли создать отдельные профили Baseline для каждой версии.
Рисунок 2. При запуске этой конфигурации создается базовый профиль.
После завершения конфигурации запуска Generate Baseline Profile сгенерированный профиль копируется в файл src/variant/generated/baselineProfiles/baseline-prof.txt в профилируемом модуле. Варианты сборки – это либо тип конечной сборки, либо вариант сборки, включающий тип конечной сборки.
Сгенерированный профиль базовой конфигурации создается в build/outputs. Полный путь зависит от варианта или разновидности профилируемого приложения, а также от того, используете ли вы для профилирования устройство под управлением Gradle или подключенное устройство. Если вы используете названия, которые применяются в коде и конфигурациях сборки, сгенерированных шаблоном, профиль Baseline Profile создается в файле build/outputs/managed_device_android_test_additional_output/nonminifiedrelease/pixel6Api31/BaselineProfileGenerator_generate-baseline-prof.txt. Скорее всего, вам не придется напрямую взаимодействовать с этой версией сгенерированного профиля Baseline, если только вы не копируете его вручную в целевые модули (не рекомендуется).
Как создать профиль базовой конфигурации с помощью AGP 8.1
Если вы не можете использовать шаблон модуля базового профиля, создайте новый базовый профиль с помощью шаблона модуля Macrobenchmark и плагина Gradle для базового профиля. Рекомендуем использовать эти инструменты, начиная с Android Studio Giraffe и AGP 8.1.
Вот шаги по созданию нового базового профиля с использованием шаблона модуля Macrobenchmark и плагина Baseline Profile Gradle:
Генератор может содержать взаимодействия с приложением, которые происходят после его запуска.
Это позволяет оптимизировать производительность приложения во время выполнения, например при прокрутке списков, воспроизведении анимации и навигации в Activity.
Посмотрите другие примеры тестирования с помощью @BaselineProfileRule, которые помогают улучшить алгоритмы достижения цели.
Добавьте плагин Baseline Profile Gradle (libs.plugins.androidx.baselineprofile). Он упрощает создание базовых профилей и их дальнейшую поддержку.
Чтобы создать профиль Baseline Profile, запустите в терминале задачи Gradle :app:generateBaselineProfile или :app:generateVariantBaselineProfile.
Запустите генератор в качестве инструментального теста на физическом устройстве с root-доступом, эмуляторе или устройстве под управлением Gradle. Если вы используете устройство под управлением Gradle, задайте для systemImageSource значение aosp, поскольку для генератора профиля Baseline необходим root-доступ.
По окончании задачи генерации профиль Baseline копируется в app/src//generated/baselineProfiles.
Вот как создать профиль базовой конфигурации напрямую с помощью плагина Gradle:
Создайте новый модуль com.android.test, например :baseline-profile.
Настройте файл build.gradle.kts для :baseline-profile:
Примените плагин androidx.baselineprofile.
Убедитесь, что targetProjectPath указывает на модуль :app.
При необходимости добавьте устройство под управлением Gradle. В приведенном ниже примере это pixel6Api31. Если не указать, плагин будет использовать подключенное устройство, эмулированное или физическое.
Примените нужную конфигурацию, как показано в примере ниже.
Kotlin
plugins{id("com.android.test")id("androidx.baselineprofile")}android{defaultConfig{...}// Point to the app module, the module that you're generating the Baseline Profile for.targetProjectPath=":app"// Configure a GMD (optional).testOptions.managedDevices.devices{pixel6Api31(com.android.build.api.dsl.ManagedVirtualDevice){device="Pixel 6"apiLevel=31systemImageSource="aosp"}}}dependencies{...}// Baseline Profile Gradle plugin configuration. Everything is optional. This// example uses the GMD added earlier and disables connected devices.baselineProfile{// Specifies the GMDs to run the tests on. The default is none.managedDevices+="pixel6Api31"// Enables using connected devices to generate profiles. The default is// `true`. When using connected devices, they must be rooted or API 33 and// higher.useConnectedDevices=false}
Яркий
plugins{id'com.android.test'id'androidx.baselineprofile'}android{defaultConfig{...}// Point to the app module, the module that you're generating the Baseline Profile for.targetProjectPath':app'// Configure a GMD (optional).testOptions.managedDevices.devices{pixel6Api31(com.android.build.api.dsl.ManagedVirtualDevice){device'Pixel 6'apiLevel31systemImageSource'aosp'}}}dependencies{...}// Baseline Profile Gradle plugin configuration. Everything is optional. This// example uses the GMD added earlier and disables connected devices.baselineProfile{// Specifies the GMDs to run the tests on. The default is none.managedDevices['pixel6Api31']// Enables using connected devices to generate profiles. The default is// `true`. When using connected devices, they must be rooted or API 33 and// higher.useConnectedDevicesfalse}
Создайте тест профиля Baseline в тестовом модуле :baseline-profile. Ниже приведен пример теста, который генерирует профиль базовой конфигурации для запуска приложения.
Обновите файл build.gradle.kts в модуле приложения, например :app.
Примените плагин androidx.baselineprofile.
Добавьте зависимость baselineProfile в модуль :baseline-profile.
Kotlin
plugins{id("com.android.application")id("androidx.baselineprofile")}android{// There are no changes to the `android` block....}dependencies{...// Add a `baselineProfile` dependency on the `:baseline-profile` module.baselineProfile(project(":baseline-profile"))}
Яркий
plugins{id'com.android.application'id'androidx.baselineprofile'}android{// No changes to the `android` block....}dependencies{...// Add a `baselineProfile` dependency on the `:baseline-profile` module.baselineProfile':baseline-profile'}
Сгенерируйте профиль, запустив задачи Gradle :app:generateBaselineProfile или :app:generateVariantBaselineProfile.
По окончании задачи генерации профиль Baseline копируется в app/src/variant/generated/baselineProfiles.
Рисунок 3. Run Android Tests from the gutter (Запустить тесты Android с поля).
При запуске в Android Studio выходные данные сборки содержат сведения об улучшениях скорости, которые обеспечивает профиль Baseline:
StartupBenchmarks_startupCompilationBaselineProfiles
timeToInitialDisplayMs min 161.8, median 178.9, max 194.6
StartupBenchmarks_startupCompilationNone
timeToInitialDisplayMs min 184.7, median 196.9, max 202.9
Запишите все необходимые пути выполнения
Для измерения времени запуска приложения используются два основных показателя:
Время до полной отрисовки (TTFD). TTID плюс время, необходимое для показа контента, который загружается асинхронно после отрисовки первого кадра.
Время до первого кадра регистрируется после вызова метода reportFullyDrawn класса ComponentActivity. Если метод reportFullyDrawn не вызывается, вместо TTFD будет возвращаться TTID. Возможно, вам потребуется отложить вызов reportFullyDrawn до завершения асинхронной загрузки. Например, если интерфейс содержит динамический ленивый список, он может заполняться фоновой задачей, которая завершается после первой отрисовки списка и, следовательно, после того, как интерфейс будет помечен как полностью отрисованный. В таких случаях код, который выполняется после того, как интерфейс полностью отрисован, не включается в базовый профиль.
Чтобы включить заполнение списка в профиль Baseline Profile, получите FullyDrawnReporter с помощью getFullyDrawnReporter и добавьте в него репортер в коде приложения. Освободите репортер, когда фоновая задача закончит заполнять список. FullyDrawnReporter не вызывает метод reportFullyDrawn, пока не будут освобождены все регистраторы. В результате профиль Baseline будет включать пути выполнения, необходимые для заполнения списка. Это не изменит поведение приложения для пользователя, но позволит базовому профилю включить все необходимые пути выполнения.
Чтобы указать состояние полной отрисовки, используйте следующие API Compose:
ReportDrawn указывает, что composable-функция готова к взаимодействию.
ReportDrawnWhen принимает предикат, например list.count > 0, чтобы указать, когда composable-функция готова к взаимодействию.
ReportDrawnAfter принимает приостанавливающий метод, который по завершении указывает, что composable-функция готова к взаимодействию.
Рекомендуем
Примечание. Текст ссылки показывается, когда JavaScript отключен.
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2026-10-21 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2026-10-21 UTC."],[],[]]