Сегодня мы выпускаем первую бета-версию Android 17 , продолжая нашу работу по созданию платформы, в которой приоритет отдается конфиденциальности, безопасности и улучшенной производительности. Эта сборка продолжает нашу работу над более адаптируемыми приложениями для Android, представляет значительные улучшения возможностей камеры и мультимедиа, новые инструменты для оптимизации подключения и расширенные профили для сопутствующих устройств. Этот релиз также подчеркивает фундаментальный сдвиг в способе предоставления новых релизов сообществу разработчиков: от традиционной модели Developer Preview к программе Android Canary.
За пределами предварительного просмотра для разработчиков
В Android традиционный режим «Предварительная версия для разработчиков» заменен непрерывным каналом Canary . Эта новая модель «постоянной доступности» предлагает три основных преимущества:
- Ускоренный доступ: новые функции и API-интерфейсы попадают в Canary сразу после прохождения внутреннего тестирования, а не в ожидании ежеквартального релиза.
- Повышенная стабильность: Раннее «боевое тестирование» в версии Canary позволяет получить более отточенный опыт бета-тестирования с новыми API и изменениями в поведении, которые близки к финальной версии.
- Упрощенное тестирование: Canary поддерживает обновления по воздуху (больше не требуется ручная прошивка) и, будучи отдельным каналом обновлений, проще интегрируется с рабочими процессами CI и предоставляет вам возможность незамедлительно сообщить о потенциальных изменениях.
Расписание Android 17
Мы быстро перейдем от бета-версии к этапу обеспечения стабильности платформы, запланированному на март. На этом этапе мы предоставим окончательные API для SDK/NDK и в основном окончательные функции, доступные для приложений. После этого у вас будет несколько месяцев до финального релиза, чтобы завершить тестирование.

Год релизов
Мы планируем продолжить выпуск обновлений для Android 17 в рамках серии ежеквартальных релизов. Предстоящий релиз во втором квартале — единственный, в котором мы внедрим запланированные изменения в поведение приложения, нарушающие его работоспособность. В четвертом квартале мы планируем выпустить небольшой релиз SDK с дополнительными API и функциями.

Ограничения по ориентации и возможности изменения размера
С выходом бета-версии Android 17 мы переходим к следующему этапу нашей адаптивной дорожной карты: Android 17 (уровень API 37) снимает ограничение на ориентацию и изменение размера экрана для разработчиков на устройствах с большими экранами (sw > 600 dp).
Если ваше приложение ориентировано на SDK 37, оно должно быть готово к адаптации. Пользователи ожидают, что их приложения будут работать везде — будь то многозадачность на планшете, разворачивание устройства или использование оконной среды рабочего стола — и они ожидают, что пользовательский интерфейс будет заполнять пространство и учитывать положение устройства.
Ключевые изменения в SDK 37
Приложения, ориентированные на Android 17, должны обеспечить совместимость с поэтапным отказом от атрибутов манифеста и API среды выполнения, введенных в Android 16. При работе на большом экране (меньшее разрешение ≥ 600dp) следующие атрибуты и API будут игнорироваться:
| Атрибуты манифеста/API | Игнорируемые значения |
| ориентация экрана | портрет, перевернутый портрет, сенсорный портрет, пользовательский портрет, пейзаж, перевернутый пейзаж, сенсорный пейзаж, пользовательский пейзаж |
| setRequestedOrientation() | портрет, перевернутый портрет, сенсорный портрет, пользовательский портрет, пейзаж, перевернутый пейзаж, сенсорный пейзаж, пользовательский пейзаж |
| resizeableActivity | все |
| minAspectRatio | все |
| maxAspectRatio | все |
Исключения и контроль со стороны пользователя
Эти изменения касаются только больших экранов; они не распространяются на экраны меньше sw600dp (включая традиционные телефоны в форм-факторе планшета). Кроме того, приложения, отнесенные к категории игр (на основе флага android:appCategory ), освобождаются от этих ограничений.
Важно также отметить, что пользователи сохраняют контроль над процессом. Они могут явно включить или отключить использование поведения приложения по умолчанию через настройки соотношения сторон экрана.
Обновления изменений конфигурации
Для улучшения совместимости приложений и минимизации прерываний воспроизведения видео, потери ввода и других видов сбоев, приводящих к потере состояния, мы обновляем поведение по умолчанию при повторном создании Activity. Начиная с Android 17, система больше не будет перезапускать Activity по умолчанию при определенных изменениях конфигурации, которые обычно не требуют повторного создания пользовательского интерфейса, включая CONFIG_KEYBOARD , CONFIG_KEYBOARD_HIDDEN , CONFIG_NAVIGATION , CONFIG_UI_MODE (когда изменяется только UI_MODE_TYPE_DESK ), CONFIG_TOUCHSCREEN и CONFIG_COLOR_MODE . Вместо этого запущенные Activity будут просто получать эти обновления через onConfigurationChanged . Если ваше приложение требует полной перезагрузки ресурсов для этих изменений, теперь необходимо явно включить эту функцию, используя новый атрибут манифеста android:recreateOnConfigChanges , который позволяет указать, какие изменения конфигурации должны запускать полный жизненный цикл активности (от остановки до уничтожения и повторного создания), а также соответствующие константы mcc , mnc и новые keyboard , keyboardHidden , navigation , touchscreen и colorMode .
Подготовьте ваше приложение
Мы выпустили инструменты и документацию, чтобы упростить вам задачу. В нашей тематической статье в блоге вы найдете дополнительные рекомендации и стратегии для решения распространенных проблем. Приложениям потребуется поддерживать альбомную и портретную ориентацию окон для всех размеров окон, поскольку ограничение ориентации или соотношения сторон больше не будет доступно. Мы рекомендуем тестировать ваше приложение, используя Android 17 Beta 1 с эмуляторами Pixel Tablet или Pixel Fold (с настройкой targetSdkPreview = "CinnamonBun" ) или используя фреймворк совместимости приложений для включения UNIVERSAL_RESIZABLE_BY_DEFAULT на устройствах Android 16.
Производительность
Очередь сообщений без блокировок
В Android 17 приложения, ориентированные на SDK 37 или выше, получат новую реализацию android.os.MessageQueue , которая не блокирует данные. Новая реализация повышает производительность и уменьшает количество пропущенных кадров, но может нарушить работу клиентов, использующих приватные поля и методы MessageQueue .
Сбор мусора поколениями
В Android 17 в сборщик мусора Concurrent Mark-Compact от ART добавлена функция поколенческой сборки мусора. Эта оптимизация обеспечивает более частую и менее ресурсоемкую сборку мусора для молодого поколения наряду со сборкой мусора в полную кучу, что направлено на снижение общих затрат ресурсов ЦП и времени, затрачиваемого на сборку мусора. Улучшения ART также доступны более чем на миллиарде устройств под управлением Android 12 (уровень API 31) и выше через обновления Google Play System.
Статические окончательные поля теперь действительно окончательные.
Начиная с Android 17, приложения, ориентированные на Android 17 и более поздние версии, не смогут изменять «статические финальные» поля, что позволит среде выполнения более агрессивно применять оптимизации производительности. Попытка сделать это с помощью рефлексии (и глубокой рефлексии) всегда приведет к возникновению исключения IllegalAccessException. Изменение этих полей с помощью семейства методов SetStatic<Type>Field в JNI немедленно приведет к сбою приложения.
Ограничения на отображение пользовательских уведомлений
Для уменьшения использования памяти мы ограничиваем размер пользовательских представлений уведомлений . Это обновление устраняет уязвимость, позволяющую приложениям обходить существующие ограничения с помощью URI. Это поведение зависит от целевой версии SDK и вступает в силу для приложений, ориентированных на API 37 и выше.
Новые триггеры ProfilingManager для отладки производительности
В ProfilingManager добавлено несколько новых системных триггеров, которые помогут вам собирать подробные данные для отладки проблем с производительностью. Эти триггеры называются TRIGGER_TYPE_COLD_START , TRIGGER_TYPE_OOM и TRIGGER_TYPE_KILL_EXCESSIVE_CPU_USAGE .
Чтобы понять, как настроить новые системные триггеры, ознакомьтесь с документацией по профилированию на основе триггеров , а также по получению и анализу данных профилирования .
Медиа и камера
Android 17 предоставляет профессиональные инструменты для мультимедийных и камерных приложений, включая такие функции, как плавные переходы и стандартизированную громкость.
Динамические обновления сеанса камеры
В CameraCaptureSession добавлена updateOutputConfigurations () . Это позволяет динамически подключать и отключать выходные поверхности без необходимости перенастройки всей сессии захвата изображения с камеры. Это изменение обеспечивает плавные переходы между сценариями использования камеры и режимами (например, съемка фотографий и видео) без затрат памяти и усложнения кода, связанных с настройкой и сохранением всех выходных поверхностей камеры, которые могут потребоваться вашему приложению при запуске камеры. Это помогает избежать видимых пользователю сбоев или зависаний во время работы.
fun updateCameraSession(session: CameraCaptureSession, newOutputConfigs: List<OutputConfiguration>)) {
// Dynamically update the session without closing and reopening
try {
// Update the output configurations
session.updateOutputConfigurations(newOutputConfigs)
} catch (e: CameraAccessException) {
// Handle error
}
}
Логические метаданные многокамерного устройства
При работе с логическими камерами, объединяющими несколько физических датчиков, теперь можно запрашивать дополнительные метаданные от всех активных физических камер, участвующих в захвате изображения, а не только от основной. Ранее приходилось использовать обходные пути, иногда выделяя ненужные физические потоки, чтобы получить метаданные от дополнительных активных камер (например, во время переключения объектива для зума, когда активна камера-следопыт). Эта функция вводит новый ключ LOGICAL_MULTI_CAMERA_ADDITIONAL_RESULTS в CaptureRequest и CaptureResult . Установив этот ключ в значение ON в CaptureRequest , TotalCaptureResult будет включать метаданные от этих дополнительных активных физических камер. Вы можете получить доступ к этим исчерпывающим метаданным, используя TotalCaptureResult.getPhysicalCameraTotalResults(), чтобы получить более подробную информацию, которая может позволить оптимизировать использование ресурсов в ваших приложениях для работы с камерами.
Поддержка универсального кодирования видео (VVC).
В Android 17 добавлена поддержка стандарта Versatile Video Coding (VVC) . Это включает в себя определение MIME-типа video/vvc в MediaFormat , добавление новых профилей VVC в MediaCodecInfo и интеграцию поддержки в MediaExtractor . Эта функция появится на устройствах с аппаратной поддержкой декодирования и соответствующими драйверами.
Постоянное качество видеозаписи
Мы добавили функцию setVideoEncodingQuality() в MediaRecorder . Это позволяет настраивать режим постоянного качества (CQ) для видеокодеров, обеспечивая более точный контроль качества видео, выходящий за рамки простых настроек битрейта.
Фоновая защита аудиосистемы
Начиная с Android 17, аудиофреймворк будет устанавливать ограничения на фоновые взаимодействия со звуком, включая воспроизведение аудио, запросы на фокусировку на аудио и API изменения громкости , чтобы гарантировать, что эти изменения инициируются пользователем осознанно.
Если приложение попытается вызвать API для работы со звуком, когда оно находится вне допустимого жизненного цикла, API воспроизведения звука и изменения громкости завершатся с ошибкой без каких-либо сообщений об ошибке или исключений. API фокусировки на звук завершится с кодом ошибки AUDIOFOCUS_REQUEST_FAILED.
Конфиденциальность и безопасность
Прекращение поддержки атрибута трафика в открытом текстовом формате.
Атрибут android:usesCleartextTraffic устарел. Если ваше приложение ориентировано на Android 17 или более поздние версии и использует параметр usesCleartextTraffic="true" без соответствующей конфигурации сетевой безопасности , оно по умолчанию будет запрещать передачу данных в открытом виде. Рекомендуется перейти на использование файлов конфигурации сетевой безопасности для более детального контроля.
Гибридная криптография HPKE
Мы представляем общедоступный интерфейс поставщика услуг (SPI) для реализации гибридной криптографии HPKE, обеспечивающий безопасную связь с использованием комбинации шифрования с открытым ключом и симметричного шифрования ( AEAD ).
Связь и телекоммуникации
Расширенная история VoIP-звонков
Мы внедряем управление пользовательскими настройками для интеграции истории VoIP-звонков в приложение. Это включает поддержку URI аватаров звонящего и участника в системном дозвонщике, что позволяет пользователю детально контролировать конфиденциальность журнала звонков и улучшает визуальное отображение интегрированных журналов VoIP-звонков.
Дальность действия и близость Wi-Fi
Функция определения расстояния по Wi-Fi была усовершенствована за счет новых возможностей обнаружения приближения, поддерживающих непрерывное определение расстояния и безопасное обнаружение точек доступа друг у друга. Обновления функции определения расстояния с учетом особенностей Wi-Fi включают новые API для обработки идентификаторов точек доступа и кэширование PMKID для безопасного определения расстояния в пределах 11 аз.
Инструменты и средства повышения производительности разработчиков
Обновления для сопутствующих приложений на устройствах
Для улучшения различения устройств и обработки разрешений мы добавили два новых профиля в CompanionDeviceManager :
- Медицинские устройства: Этот профиль позволяет мобильным приложениям для медицинских устройств запрашивать все необходимые разрешения одним касанием, упрощая процесс настройки.
- Фитнес-трекеры: Профиль DEVICE_PROFILE_FITNESS_TRACKER позволяет сопутствующим приложениям явно указывать, что они управляют фитнес-трекером. Это обеспечивает корректное взаимодействие с пользователем, отображая различные значки и используя существующие разрешения ролей часов.
Кроме того, CompanionDeviceManager теперь предлагает единый диалог для запросов на привязку устройства и разрешения на доступ к данным поблизости. Вы можете использовать новый метод setExtraPermissions в AssociationRequest.Builder , чтобы включить запросы на разрешения на доступ к данным поблизости в существующий процесс привязки, уменьшив количество диалогов, отображаемых пользователю.
Начните работу с Android 17
Вы можете зарегистрировать любое поддерживаемое устройство Pixel , чтобы получать это и будущие обновления бета-версии Android по беспроводной сети. Если у вас нет устройства Pixel, вы можете использовать 64-битные образы системы с эмулятором Android в Android Studio.
Если вы в настоящее время участвуете в программе бета-тестирования Android, вам будет предложено обновление до бета-версии 1 по беспроводной сети.
Если у вас установлена бета-версия Android 26Q1 и вы хотите получить финальную стабильную версию 26Q1 и выйти из бета-тестирования, вам необходимо проигнорировать обновление по воздуху до бета-версии 26Q2 Beta 1 и дождаться выхода 26Q1.
Нам очень важна ваша обратная связь, поэтому, пожалуйста, сообщайте о проблемах и отправляйте запросы на добавление новых функций на странице обратной связи . Чем раньше мы получим ваши отзывы, тем больше мы сможем учесть в финальной версии.
Для наилучшего опыта разработки под Android 17 мы рекомендуем использовать последнюю предварительную версию Android Studio (Panda) . После настройки выполните следующие действия:
- Скомпилируйте проект с использованием нового SDK, протестируйте в средах непрерывной интеграции и сообщите о любых проблемах в нашем трекере на странице обратной связи .
- Проверьте совместимость вашего текущего приложения, выясните, затрагивают ли его изменения в Android 17, и установите приложение на устройство или эмулятор под управлением Android 17 и проведите его тщательное тестирование.
Мы будем регулярно обновлять образы системы и SDK для предварительных/бета-версий на протяжении всего цикла выпуска Android 17. После установки бета-версии вы автоматически будете получать обновления по беспроводной сети для всех последующих предварительных и бета-версий.
Для получения полной информации посетите сайт разработчиков Android 17 .
Присоединяйтесь к обсуждению
По мере приближения к стабильной платформе и финальному стабильному релизу Android 17 в конце этого года, ваши отзывы остаются для нас самым ценным активом. Независимо от того, являетесь ли вы одним из первых пользователей канала Canary или разработчиком приложений, тестирующим Beta 1 , присоединяйтесь к нашим сообществам и оставляйте свои отзывы. Мы вас слушаем.
Продолжить чтение

Новости о продуктах
Сегодня мы расширяем возможности разработки под Android с помощью Gemma 4, нашей новейшей открытой модели, разработанной с учетом сложных логических рассуждений и возможностей автономного вызова инструментов.
Matthew McCullough • 2 мин чтения

Новости о продуктах
Сегодня Android 17 официально достиг стабильности платформы с выходом бета-версии 3. Это означает, что доступ к API заблокирован; вы можете провести финальное тестирование совместимости и разместить свои приложения, ориентированные на Android 17, в Play Store.
Matthew McCullough • 5 мин чтения

Новости о продуктах
Мы хотим сделать разработку высококачественных Android-приложений быстрее и проще, и один из способов повышения вашей производительности — это предоставление вам доступа к искусственному интеллекту.
Matthew McCullough • 2 мин чтения
Будьте в курсе событий
Получайте еженедельно самые свежие новости о разработке Android прямо на свою электронную почту.

