Google выпустила первую сборку Android 17 Beta для устройств семейства Google Pixel, предназначенную для участников программы Android Beta Program. Приглашаем вас ознакомиться с официальным списком изменений данной сборки.
С релизом первой бета-версии Android 17 Google объявила об отказе от программы «Developer Preview». Ранее такие сборки новой версии Android выпускались до релиза публичных Beta-сборок, были крайне нестабильны и предназначались для разработчиков и продвинутых энтузиастов. Теперь на смену «Developer Preview» приходит канал обновлений Canary, в рамках которого пользователи будут непрерывно получать новые обновления и функции.
Более быстрый доступ: Функции и API-интерфейсы появляются в Canary сразу после прохождения внутреннего тестирования, не дожидаясь ежеквартального релиза.
Повышенная стабильность: Раннее «боевое тестирование» в Canary приводит к более стабильным Beta-сборкам, где новые API и изменения поведения системы уже близки к финальному виду.
Упрощенное тестирование: Canary поддерживает обновления «по воздуху» (OTA) — больше не нужно прошивать устройство вручную. Будучи отдельным каналом обновлений, он проще интегрируется в рабочие процессы CI и дает вам самое раннее окно для обратной связи по грядущим изменениям.
Google перешла на круглогодичный цикл разработки, чтобы быстрее внедрять инновации. Согласно дорожной карте:
Март 2026: Достижение этапа Platform Stability (финализация API и функционала).
Июнь 2026 (Q2): Полноценный релиз стабильной версии Android 17 для всех поддерживаемых устройств Pixel.
Конец 2026 (Q4): Выпуск минорного обновления с исправлениями и небольшими дополнениями.
Релиз Android 17 Beta знаменует новый этап в развитии адаптивности. Начиная с API 37, поддержка изменения размера и ориентации экрана становится обязательной. Google убрала возможность программного отказа от этих ограничений для устройств с большими экранами (sw > 600 dp).
Если ваше приложение ориентировано на SDK 37, оно должно быть полностью адаптивным. Пользователи ожидают, что их приложения будут работать безупречно в любых сценариях, будь то многозадачность на планшете, использование складного устройства или оконный режим рабочего стола. Приложение должно эффективно заполнять экранное пространство и корректно подстраиваться под текущее положение устройства.
Приложения, нацеленные на Android 17, должны обеспечить совместимость с поэтапным отказом от атрибутов манифеста и API времени выполнения, введенных в Android 16. При запуске на большом экране (наименьшее измерение ≥ 600dp) следующие атрибуты и API будут игнорироваться:
| Атрибут манифеста / API | Игнорируемые значения |
screenOrientation |
portrait, reversePortrait, sensorPortrait, userPortrait, landscape, reverseLandscape, sensorLandscape, userLandscape |
setRequestedOrientation() |
portrait, reversePortrait, sensorPortrait, userPortrait, landscape, reverseLandscape, sensorLandscape, userLandscape |
resizeableActivity |
все значения |
minAspectRatio |
все значения |
maxAspectRatio |
все значения |
Эти изменения касаются только больших экранов. Они не применяются к экранам размером менее sw600dp (включая традиционные форм-факторы телефонов). Кроме того, приложения, классифицированные как игры (на основе флага android:appCategory), освобождаются от этих ограничений.
Важно отметить, что контроль остается в руках пользователей.Вы можете явно включать или отключать использование стандартного поведения приложения через системные настройки соотношения сторон.
Чтобы улучшить совместимость приложений и минимизировать прерывание воспроизведения видео или потерю состояния ввода, Google обновила поведение по умолчанию для пересоздания Activity.
Начиная с Android 17, система больше не будет по умолчанию перезапускать Activity при определенных изменениях конфигурации, которые обычно не требуют перерисовки пользовательского инетрфейса (UI). Сюда входят:
CONFIG_KEYBOARD
CONFIG_KEYBOARD_HIDDEN
CONFIG_NAVIGATION
CONFIG_UI_MODE (когда изменяется только UI_MODE_TYPE_DESK)
CONFIG_TOUCHSCREEN
CONFIG_COLOR_MODE
Вместо этого запущенные Activity будут просто получать эти обновления через метод onConfigurationchanged.
Если вашему приложению всё же требуется полный перезапуск для обновления ресурсов, вы должны явно указать это в манифесте с помощью нового атрибута android:recreateOnConfigChanges. Он позволяет указать, какие именно изменения конфигурации должны вызывать полный жизненный цикл Activity (stop -> destroy -> create), используя соответствующие константы (mcc, mnc, а также новые: keyboard, keyboardHidden, navigation, touchscreen и colorMode).
Как подготовить приложение:
Google выпустила обновленную документацию и инструменты. Приложениям потребуется поддерживать макеты как для портретной, так и для альбомной ориентации для окон всех размеров. Ограничение ориентации теперь не поддерживается. Компания рекомендует протестировать приложение в эмуляторах Pixel Tablet или Pixel Fold, используя Android 17 Beta 1.
В Android 17 для приложений с SDK 37+ представлена новая реализация android.os.MessageQueue, которая не использует блокировки (lock-free). Это улучшает производительность и уменьшает количество пропущенных кадров, но может нарушить работу клиентов, использующих рефлексию для доступа к приватным полям MessageQueue.
Android 17 представляет сборку мусора по поколениям для коллектора ART Concurrent Mark-Compact. Эта оптимизация вводит более частые и менее ресурсоемкие сборки «молодого поколения» наряду с полными сборками кучи, что снижает общую нагрузку на процессор и время простоя. Улучшения ART также доступны для более чем миллиарда устройств с Android 12+ через обновления системы Google Play.
Приложения, ориентированные на Android 17+, теперь не могут изменять поля static final. Это позволяет среде выполнения (runtime) применять более агрессивные оптимизации. Попытка изменить их через рефлексию приведет к исключению IllegalAccessException, а через JNI — к немедленному краху приложения.
Для снижения потребления памяти ограничены размеры кастомных представлений уведомлений. Это обновление закрывает лазейку, позволявшую обходить лимиты с помощью URI. Изменение вступает в силу для приложений с targetSdkVersion 37 и выше.
Были добавлены новые системные триггеры: TRIGGER_TYPE_COLD_START, TRIGGER_TYPE_OOM и TRIGGER_TYPE_KILL_EXCESSIVE_CPU_USAGE для более глубокой отладки производительности.
Представлен метод updateOutputConfigurations() для CameraCaptureSession. Он позволяет динамически подключать и отключать выходные поверхности (surfaces) без необходимости перенастраивать всю сессию захвата. Это обеспечивает плавные переходы между режимами (например, фото и видео) без рывков, черных экранов и лишних затрат памяти.
fun updateCameraSession(session: CameraCaptureSession, newOutputConfigs: List<OutputConfiguration>)) {
// Динамическое обновление сессии без закрытия и повторного открытия
try {
// Обновляем конфигурации вывода
session.updateOutputConfigurations(newOutputConfigs)
} catch (e: CameraAccessException) {
// Обработка ошибки
}
}
При работе с логическими камерами теперь можно запрашивать метаданные от всех активных физических камер, участвующих в захвате, используя новый ключ LOGICAL_MULTI_CAMERA_ADDITIONAL_RESULTS.
Android 17 добавляет поддержку стандарта H.266 (VVC). Теперь система включает в себя новый MIME-тип video/vvc, новые профили в MediaCodecInfo и поддержку в MediaExtractor. Функция будет доступна на устройствах с аппаратной поддержкой декодирования.
Добавлен метод setVideoEncodingQuality() в MediaRecorder. Это позволяет настроить режим постоянного качества (CQ) для видеокодеров, давая более тонкий контроль над качеством, чем простые настройки битрейта.
Аудиофреймворк теперь принудительно ограничивает взаимодействие с фоновым аудио (воспроизведение, запрос фокуса, изменение громкости), чтобы гарантировать, что эти действия инициированы пользователем намеренно. Если приложение попытается вызвать аудио-API вне допустимого жизненного цикла, вызовы завершатся тихим сбоем (без исключения), а запрос аудиофокуса вернет AUDIOFOCUS_REQUEST_FAILED.
Отказ от Cleartext Traffic. Атрибут android:usesCleartextTraffic признан устаревшим. Приложения (targetSdk 17+), полагающиеся на него без настройки сетевой безопасности, по умолчанию будут запрещать незашифрованный трафик.
HPKE Hybrid Cryptography. Внедрен публичный интерфейс SPI для реализации гибридной криптографии HPKE, сочетающего открытые ключи и симметричное шифрование (AEAD).
Улучшенная история звонков VoIP. В системную «звонилку» добавлена поддержка аватаров для VoIP-вызовов (из WhatsApp, Telegram и др.) и более гибкое управление приватностью логов.
Wi-Fi Ranging. Добавлены новые возможности для определения близости и реализована поддержка безопасного обнаружения устройств (peer-to-peer) с использованием стандарта 11az.
В CompanionDeviceManager добавлены два новых профиля:
Медицинские устройства (Medical Devices). Медицинские приложения теперь могут запрашивать все необходимые разрешения одним нажатием.
Фитнес-трекеры (Fitness Trackers). Профиль для фитнес-браслетов обеспечивает корректное отображение иконок и переиспользование разрешений, характерных для носимых устройств.
Также внедрен единый диалог для сопряжения устройств и запроса разрешений на поиск устройствпоблизости (Nearby), что уменьшает количество всплывающих окон для пользователя.
Первая бета-версия уже доступна для большинства устройств Google Pixel, вот полный список:
Серия Pixel 10: Pixel 10, 10 Pro, 10 Pro XL, 10 Pro Fold.
Серия Pixel 9: Pixel 9, 9 Pro, 9 Pro XL, 9 Pro Fold, 9a.
Серия Pixel 8: Pixel 8, 8 Pro, 8a.
Серия Pixel 7: Pixel 7, 7 Pro, 7a.
Серия Pixel 6: Pixel 6, 6 Pro, 6a.
Другие: Pixel Tablet, Pixel Fold.
Если у вас есть одно из перечисленных устройств, вы можете вступить в Android Beta Program на официальном сайте. Если вы уже являетесь участником программы бета-тестирования, уведомление о доступности OTA-обновления появится автоматически в ближайшее время.
Обратите внимание, что если у вас установлена бета-версия 26Q1 и вы хотите получить финальный стабильный релиз 26Q1 (выйдя из беты), вам нужно проигнорировать обновление до 26Q2 Beta 1.
Желаем вам удачного обновления!
ИсточникМинимальная длина комментария — 50 знаков. Комментарии модерируются.
Нет комментариев.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.