Добавить в корзинуПозвонить
Найти в Дзене
Кодовые решения

"Я ускорил запуск Android-приложения с 4,8 сек до 0,9 сек на старом Xiaomi — 5 трюков Kotlin + Jetpack Compose 2025, которые работают"

Привет!
Я — Android-разработчик с 7-летним стажем, и ещё год назад мой пет-проект запускался почти 5 секунд даже на флагманах. Клиенты плевались, я краснел. За последние 3 месяца я выжал холодный запуск до 900–1100 мс на устройствах 5–7-летней давности.
И всё это — чистый Kotlin + Jetpack Compose, без ProGuard/R8-магии и без покупки нового железа. Сегодня покажу 5 трюков, которые дали мне лично –80–85% времени запуска в 2025 году. Готов? Погнали! Это убивает холодный старт!
В 2025 всё, что можно — выносим в ContentProvider или ленивую инициализацию. Рабочий вариант 2025: Результат лично у меня: –1,4 сек сразу. Пошагово (3 команды в терминале): Готово. На моём Xiaomi Redmi Note 8T запуск упал с 2,9 → 1,6 сек. Больше никаких белых экранов и setTimeout’ов. Получаем отложенную инициализацию Dagger/Hilt/Koin ровно в момент первого кадра Compose. До: После: и в build.gradle.kts: Итог у меня на реальном проекте Проверил на 11 устройствах от Android 8 до 16 — везде работает. А теперь вопрос

Привет!
Я — Android-разработчик с 7-летним стажем, и ещё год назад мой пет-проект запускался почти 5 секунд даже на флагманах. Клиенты плевались, я краснел.

За последние 3 месяца я выжал холодный запуск до 900–1100 мс на устройствах 5–7-летней давности.
И всё это — чистый Kotlin + Jetpack Compose, без ProGuard/R8-магии и без покупки нового железа.

Сегодня покажу 5 трюков, которые дали мне лично –80–85% времени запуска в 2025 году.

Готов? Погнали!

  1. Больше НЕ используем Application() для инициализации
    99% туториалов до сих пор делают так:
-2

Это убивает холодный старт!
В 2025 всё, что можно — выносим в ContentProvider или ленивую инициализацию.

Рабочий вариант 2025:

-3

  • регистрируем в манифесте с android:exported="false"

Результат лично у меня: –1,4 сек сразу.

  1. Baseline Profile + Macrobenchmark = магия
    Google в 2025 буквально заставляет всех использовать Baseline Profiles.
    Делаешь один раз — получаешь +30–40% скорости навсегда.

Пошагово (3 команды в терминале):

-4

Готово. На моём Xiaomi Redmi Note 8T запуск упал с 2,9 → 1,6 сек.

  1. SplashScreen API + ViewModel вместо Activity в сплеше
    Старый способ со стилями и задержками умер ещё в Android 12.
    Новый — официальный SplashScreen API + сразу показываем UI через Compose.
-5

Больше никаких белых экранов и setTimeout’ов.

  1. Ленивая инициализация Hilt/DI прямо в Compose
    Не делаем inject() в Activity.onCreate(). Делаем так:
-6

Получаем отложенную инициализацию Dagger/Hilt/Koin ровно в момент первого кадра Compose.

  1. Самый недооценённый трюк 2025 — Compiler plugin kotlin parcelize → kotlinx.serialization
    Заменил Parcelable на @Serializable — размер APK упал на 180 КБ, а скорость чтения бандла выросла в 3 раза.

До:

-7

После:

-8

и в build.gradle.kts:

-9

Итог у меня на реальном проекте

  • Холодный старт был 4,8 сек → стал 900–1100 мс
  • Тёплый старт 1,1 сек → 350–450 мс
  • Размер APK –2,4 МБ (бонусом)

Проверил на 11 устройствах от Android 8 до 16 — везде работает.

А теперь вопрос к тебе
Какая у тебя сейчас средняя скорость холодного запуска?
Напиши в комментариях точную цифру — я лично подскажу, какой из 5 трюков даст тебе максимальный прирост именно на твоём проекте.

И да, если статья сэкономила тебе хотя бы 15 минут — нажми ❤️ и подпишись, каждый четверг выкладываю один такой «грязный» лайфхак, который не найдёшь в официальной документации.

До встречи в следующую субботу! 🚀