Что важно знать разработчику об Android 16 (API 36)
В двух словах: API 36 вводит обязательный Edge‑to‑Edge UI, расширенные подтипы Foreground Services, Photo Picker 2.0 (мульти‑альбомы), Partial Media Metrics, базовые on‑device AI‑хуки через ML Kit 2.0 и Dynamic Fold API — все это требует плановой миграции и тестирования до августа–конца 2026. Ниже — что менять и как быстро проверить совместимость.
Главные изменения и влияние на код
- Edge‑to‑Edge UI — теперь обязательна: приложение должно корректно отрисовывать контент под статус‑бар и навигацию, поддерживать системные жесты и safe‑area. Проверьте Insets и WindowInsetsController.
- Foreground Services — добавлено 20+ новых подтипов и строгая обязательная миграция: без корректного типа работа в фоне может быть блокирована. Ожидаем снижение расхода батареи ~15–20% при правильной классификации.
- Photo Picker 2.0 — поддержка выбора по альбомам и фильтрам на устройстве; доступ к выбранным наборам без прав на всю галерею.
- Partial Media Metrics API — мониторинг только активных медиа‑сессий, экономия трафика и ресурсов (до ~25–30%).
- AI / ML — ML Kit 2.0: Text Embedding, предзагрузка состояний для Predictive Back Gesture, базовые хуки для on‑device моделей (учтите требования по энергопотреблению).
- Складные устройства — Dynamic Fold API автоматически адаптирует layout под углы 90°–180°.
- Игры и рендеринг — Frame Timeline API для оптимизации под 120+ Гц.
- Совместимость данных/безопасность — Health Connect 2.0 новые scope‑ы; Photo Picker и Credential Manager усиливают требования к приватности.
Тестируйте на эмуляторе Pixel 10 с API 36 preview — это ускорит выявление проблем с Edge‑to‑Edge и складными layout‑ами.
Пошаговая миграция (что сделать первым)
- Обновите compileSdk и targetSdk до 36 в Gradle (планируйте релиз‑ветку с targetSdkVersion=36).
- Мигрируйте Foreground Service: назначьте новый подтип и обработайте новые разрешения/поведения фоновых задач. Тестируйте сценарии OOM и ограничения фоновой работы.
- Внедрите Photo Picker 2.0 API: замените прямой доступ к медиатеке на выбор по альбомам и проверку корзин/фильтров.
- Перейдите на Edge‑to‑Edge: используйте WindowInsets, обновите навигационные и статус‑области, проверьте жесты и элементы UI в полноэкранном режиме.
- Подключите Partial Media Metrics для медиаплееров и проверьте учёт сессий.
- Обновите зависимости: Kotlin 2.0 и Jetpack Compose 1.8 рекомендуются для полной совместимости.
- Проверьте Health Connect 2.0 scopes и интеграцию Credential Manager — игнорирование может повлиять на публикацию приложения после Q4 2026.
- Прогоны тестов: функциональность, производительность (Frame Timeline), энергопотребление on‑device ML.
Инструменты и проверка
- Android Studio Koala 2026.1 (шаблоны и миграционные ассистенты для API 36).
- Emulator Pixel 10 (API 36 preview) для проверки Edge‑to‑Edge и Fold API.
- Profiler + Frame Timeline для поиска джиттеров на 120+ Гц; Network Profiler для Partial Media Metrics.
- Автоматические CI‑тесты: интеграционные тесты фоновой работы, сценарии восстановления состояния при Predictive Back Gesture.
- Бенчмарки энергопотребления при on‑device ML: измеряйте пиковую нагрузку и тепловой троттлинг.
Частые ошибки
- Не назначать корректный подтип Foreground Service — приводит к блокировке фоновой работы.
- Игнорировать Insets — элементы UI перекрываются статус‑баром/жестами.
- Пытаться получить полный доступ к галерее вместо использования Photo Picker — нарушения приватности.
- Отсутствие тестов на складных конфигурациях и 120+ Гц — UI ломается на новых устройствах.
- Не обновить зависимости (Kotlin/Compose) — неожиданные несовместимости.
FAQ
- Нужно ли срочно менять targetSdkVersion?
Да — планируйте миграцию в ближайшие спринты, особенно из‑за новых ограничений для foreground services и privacy‑api. - Повлияет ли API 36 на старые устройства?
Нет прямого влияния на работу старых устройств, но поведение при targetSdkVersion=36 будет применяться: тестируйте откат и совместимость. - Как проверить Photo Picker 2.0 локально?
Используйте эмулятор с API 36 и тестовые медиабазы: проверьте выбор альбомов и отсутствие запроса на полный доступ к медиатеке. - Какие библиотеки стоит обновить в первую очередь?
Kotlin до 2.0, Jetpack Compose до 1.8, и последние версии библиотек Jetpack (Activity, WindowInsets, Media).
Перенесите эти пункты в план миграции на 1–2 спринта: приоритет — foreground services, Edge‑to‑Edge и Photo Picker; затем оптимизация медиа и ML-интеграции.