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

Требования
Мы рекомендуем использовать профили запуска со следующими инструментами:
- Jetpack Macrobenchmark 1.2.0 или выше
- Плагин Android Gradle 8.2 или выше
- Android Studio Iguana или выше
Кроме того, вам потребуются следующие настройки в вашем приложении:
- R8 включен. Для вашей сборки выпуска установите
isMinifyEnabled = true
. - Включена оптимизация макета DEX. В блоке
baselineProfile {}
файла сборки модуля приложения установитеdexLayoutOptimization = true
.
Создать профиль запуска
Android Studio создает профиль запуска вместе с базовым профилем, когда вы используете шаблон генератора базового профиля по умолчанию.
Общие шаги по созданию и созданию стартового профиля такие же, как и при создании базового профиля .
По умолчанию для создания профиля запуска используется шаблон модуля «Генератор базового профиля» из Android Studio. Сюда входят взаимодействия при запуске, которые формируют базовый профиль запуска. Чтобы дополнить этот профиль запуска дополнительными критическими действиями пользователя (CUJ), добавьте CUJ запуска приложения в блок rule
с includeInStartupProfile
, для которого установлено значение true
. Для простых приложений может быть достаточно запуска MainActivity
приложения. Для более сложных приложений рассмотрите возможность добавления в приложение наиболее распространенных точек входа, таких как запуск приложения с главного экрана или переход по глубокой ссылке .
В следующем фрагменте кода показан генератор базового профиля (по умолчанию файл BaselineProfileGenerator.kt
), который включает запуск вашего приложения с главного экрана и переход по глубокой ссылке. Глубокая ссылка ведет непосредственно на ленту новостей приложения, а не на главный экран приложения.
@RunWith(AndroidJUnit4::class)
@LargeTest
class BaselineProfileGenerator {
@get:Rule
val rule = BaselineProfileRule()
@Test
fun generate() {
rule.collect(
packageName = "com.example.app",
includeInStartupProfile = true
) {
// Launch directly into the NEWS_FEED.
startActivityAndWait(Intent().apply {
setPackage(packageName)
setAction("com.example.app.NEWS_FEED")
})
}
}
}
Запустите команду «Создать базовый профиль для конфигурации приложения» и найдите правила профиля запуска по адресу src/<variant>/generated/baselineProfiles/startup-prof.txt
.
Рекомендации по созданию профилей запуска
Вывод классов и методов профиля запуска ограничен размером первого файлаclasss.dex. Это означает, что не все этапы базового профиля должны быть также этапами запуска профиля.
Чтобы решить, какие действия пользователя следует учитывать при создании профиля запуска, подумайте, где большинство пользователей запускают приложение. Обычно это происходит из панели запуска и после входа в систему. Это также самый простой путь к базовому профилю.
После того, как будет рассмотрен первый вариант использования, следуйте пользовательской воронке запуска приложения. Во многих случаях воронки запуска приложений следуют следующему списку:
- Основная активность лаунчера
- Уведомления, запускающие запуск приложения
- Дополнительные действия по запуску
Работайте над этим списком сверху и остановитесь до того, как class.dex заполнится. Чтобы впоследствии охватить больше циклов, удалите код из пути запуска и добавьте больше циклов. Чтобы удалить код из пути запуска, проверьте трассировки Perfetto во время запуска приложения и найдите длительные операции. Вы также можете использовать макротест с включенной трассировкой методов для автоматического и полного просмотра вызовов методов во время запуска приложения.
{% дословно %}Пока рекомендаций нет.
Попытайтесь войти в свой аккаунт Google.