Android 17 уже здесь!

13 минут чтения
Посмотреть профиль Мэтью Маккалоу
Matthew McCullough , вице-президент по управлению продуктами, разработчик Android.

Сегодня мы выпускаем Android 17 и делаем его доступным для большинства поддерживаемых устройств Pixel. В ближайшие месяцы ожидайте появления новых устройств, работающих под управлением Android 17.

AfD-Android-17.gif

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

В течение прошедшего года, начиная с нашего канала Canary и заканчивая бета-версиями, мы сотрудничали со многими из вас, представителями сообщества разработчиков, чтобы создать платформу, которой вы и ваши пользователи можете доверять. В связи с этим, настал момент, когда исходный код стал доступен в проекте Android Open Source Project (AOSP). Это позволит вамизучить исходный код для более глубокого понимания принципов работы Android.

Давайте подробнее рассмотрим Android 17.

Интеллектуальная система

Благодаря глубокой интеграции аппаратного обеспечения, программного обеспечения и ИИ, мы превращаем Android из операционной системы в интеллектуальную систему. Речь идёт о предоставлении новых полезных возможностей, которые предвосхищают потребности пользователей и открывают больше возможностей для взаимодействия с вашими приложениями. С этой целью Android 17 расширяет возможности AppFunctions, API платформы с соответствующей библиотекой Jetpack. Это позволяет вам использовать уникальные возможности вашего приложения в качестве оркестрируемых «инструментов» для Android MCP, аналога протокола контекста модели (Model Context Protocol) на устройстве. Агенты и помощники ИИ (например, Google Gemini) могут обнаруживать и выполнять AppFunctions для выполнения рабочих процессов от имени пользователя, имея прямой доступ к локальному состоянию приложения.

Библиотека Jetpack, находящаяся в настоящее время в стадии альфа-тестирования, позволяет добавлять функции приложений (AppFunctions) так же легко, как аннотировать класс и добавлять комментарии KDoc.

/**
 *   A note app's [AppFunction]s.
 */
class NoteFunctions(
    private val noteRepository: NoteRepository
) {
    /**
     *   Adds a new note to the app.
     *
     *   @param appFunctionContext The execution context.
     *   @param title The title of the note.
     *   @param content The note's content.
     */
    @AppFunction(isDescribedByKDoc = true)
    suspend fun createNote(
        appFunctionContext: AppFunctionContext,
        title: String,
        content: String
    ): Note {
        return noteRepository.createNote(title, content)
    }
}

Мы также запустили навык-агент AppFunctions , который анализирует ключевые рабочие процессы вашего приложения, автоматически генерирует необходимый код Kotlin, оптимизирует вашу документацию KDocs для вызова инструментов LLM и предоставляет команды ADB для тестирования и отладки.

Интеграция с Gemini в настоящее время находится в закрытом предварительном тестировании с участием доверенных тестировщиков, но вы можете начать подготовку своих приложений уже сейчас. В дополнение к командам ADB для выполнения ваших AppFunctions, мы предоставили тестовое приложение-агент , которое включает интерфейс для обнаружения и выполнения ваших AppFunctions и имитации интеграции с ИИ-агентом. Присоединяйтесь к нашей программе раннего доступа к интеграции по адресуgoo.gle/eap-af, чтобы получить шанс оказаться в числе первых приложений, которые развернут AppFunctions в продакшене.

Адаптивный подход в первую очередь

Ваши пользователи больше не зависят от одного форм-фактора; они переключаются между телефонами, складными устройствами, планшетами, ноутбуками, автомобильными дисплеями и иммерсивными средами XR. Теперь, когда в руках пользователей более 580 миллионов устройств с большими экранами и ожидается запуск GoogleBooks , следующего поколения ChromeOS, построенного на стеке Android, адаптивность перестала быть просто технической целью. Это огромная возможность привлечь высоко вовлеченных пользователей, и это одна из причин, по которой мы переходим к стандарту разработки, ориентированному на адаптивность .

На больших экранах отсутствуют ограничения по размеру/ориентации.

Чтобы обеспечить высокое качество работы приложений на всех форм-факторах, включая мобильные устройства, работающие в режиме настольного компьютера на подключенных дисплеях, Android 17 (уровень API 37) снимает ограничение на ориентацию и изменение размера окна для приложений с большими экранами (sw > 600 dp), ориентированных на уровень API 37. Система будет игнорировать устаревшие атрибуты манифеста и API времени выполнения, включая screenOrientation , setRequestedOrientation() , resizeableActivity=false и ограничения соотношения сторон (minAspectRatio/maxAspectRatio) . Игры (в зависимости от категории приложения в Google Play) остаются вне этого ограничения. Ваше приложение должно быть готово адаптироваться к любому размеру окна, учитывать предпочтительное положение устройства пользователя и поддерживать свободное отображение окон.

Многозадачность нового поколения: всплывающие окна приложений, панель всплывающих окон и интерактивная картинка-картинка на рабочем столе.

В Android 17 представлены новые мощные возможности работы с окнами, которые меняют подход к многозадачности, требуя от приложений еще большей гибкости в расположении элементов:

  • «Пузырьки» приложений: Теперь, помимо API всплывающих окон в мессенджерах, пользователи могут превратить любое приложение в плавающее всплывающее окно, удерживая его значок на панели запуска. Эта функция доступна на телефонах, складных устройствах и планшетах, обеспечивая легкую многозадачность для любого рабочего процесса.
  • Панель всплывающих окон: На ​​больших экранах (планшетах и ​​складных устройствах) на системной панели задач теперь есть специальная панель всплывающих окон, которая позволяет организовывать, переключаться между этими плавающими окнами приложений и закреплять их.
  • Интерактивная «картинка в картинке» (PiP) в настольных средах: Android 17 представляет интерактивную «картинку в картинке» (PiP). В отличие от традиционных окон PiP, которые доступны только для чтения, эти закрепленные окна остаются полностью интерактивными, постоянно находясь поверх окон других приложений.
Пузыри (1).gif
В действии приложения Bubbles и Bubble Bar.

Обновления по теме активного отдыха

Чтобы предотвратить потерю состояния и зависания, Android 17 обновляет поведение по умолчанию при повторном создании Activity. Система больше не будет перезапускать Activity по умолчанию при типичных изменениях конфигурации, которые не требуют полной перерисовки пользовательского интерфейса (включая CONFIG_KEYBOARD , CONFIG_KEYBOARD_HIDDEN , CONFIG_NAVIGATION , CONFIG_TOUCHSCREEN и CONFIG_COLOR_MODE ).

Вместо этого запущенные приложения будут получать эти обновления через метод onConfigurationChanged(), что обеспечит плавные переходы. Если ваше приложение явно полагается на полную перезагрузку ресурсов для этих изменений, теперь необходимо явно включить эту функцию, используя новый атрибут манифеста android:recreateOnConfigChanges .

Продолжить

В Android 17 добавлена ​​функция «Продолжить в» (Continue On), которая помогает пользователям плавно переключаться между устройствами Android. Пользователь видит в панели задач планшета предложение последнего открытого приложения на своем мобильном устройстве, что позволяет одним касанием запустить приложение и вернуться к тому месту, где он остановился. Функция «Продолжить в» может поддерживать переходы между приложениями и веб-версиями, включая возврат к использованию веб-версии, если приложение не установлено.

Продолжить.png
Функция "Предложение по передаче управления" на планшете
class MyHandoffActivity : Activity() {

    ...

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    // Do stuff
    ...
    // Enable handoff
    setHandoffEnabled(true, null)
  }

  // Override and implement onHandoffActivityDataRequested
  override fun onHandoffActivityDataRequested(handoffRequestInfo: HandoffActivityDataRequestInfo) : HandoffActivityData {
    // Create and return handoff data
  }
}

Используйте адаптивный подход с Jetpack Compose.

Чтобы помочь вам адаптировать ваши приложения к новым требованиям Android 17, мы запустили адаптивный навык Jetpack Compose . Этот рабочий процесс для разработчиков, работающий на основе искусственного интеллекта, поможет вам внедрить лучшие практики адаптации:

  • Адаптивная навигация: автоматический переход между нижними панелями навигации на мобильных устройствах и боковыми панелями навигации на больших экранах с помощью NavigationSuiteScaffold из библиотеки Material 3 Adaptive.
  • Многопанельные макеты: Реализуйте макеты типа «список-подробности» и вспомогательные панели нативно, используя сцены Navigation 3 ( ListDetailSceneStrategy и SupportingPaneSceneStrategy ) вместо ненадежных транзакций фрагментов.
  • API FlexBox и Grid: Используйте динамические компоненты компоновки Compose 1.11 для легкой настройки размеров строк и столбцов на лету, гарантируя, что ваш контент всегда будет идеально заполнять пространство.
  • Расширенные возможности ввода без касания: воспользуйтесь улучшенной поддержкой трекпада и мыши в Compose 1.11, включая встроенные кольца фокусировки и новые API (такие как TrackpadInjectionScope и performTrackpadInput ), чтобы легко тестировать и обеспечивать по-настоящему «ноутбукоподобный» опыт работы в Google Books и режиме рабочего стола.
  • Динамические состояния окна: используйте реактивную модель состояний Compose для плавной адаптации пользовательского интерфейса при переходе приложения из полноэкранного режима в плавающее окно приложения или интерактивное окно «картинка в картинке» на рабочем столе, обеспечивая превосходное качество работы даже при минимальных размерах.

Android использует подход Compose-first.

Compose предлагает самый простой способ создания адаптивных приложений, и это лишь одна из многих причин, по которым мы считаем, что весь пользовательский интерфейс Android должен создаваться с помощью Compose . Поэтому разработка Android теперь в первую очередь ориентирована на Compose . Все новые API, библиотеки, инструменты и руководства для разработчиков Android будут создаваться исключительно для Jetpack Compose. Устаревшие компоненты View (в пакете android.widget) и библиотеки Jetpack на основе View (такие как Fragments , RecyclerView и ViewPager ) теперь находятся в режиме поддержки. Они будут получать только критические исправления ошибок и не будут содержать новых функций.


СОВЕТ: Готовы к миграции? Используйте наш инструмент миграции XML в Compose на основе искусственного интеллекта, чтобы автоматически проанализировать ваши устаревшие макеты представлений и преобразовать их в высокоадаптивный код Compose.


Производительность и эффективность

Производительность приложений подразумевает плавный пользовательский интерфейс, быстрый запуск приложений и эффективную многозадачность; Android 17 предлагает существенные улучшения во всех этих областях.

Ограничения памяти приложения

Использование памяти — один из незаметных, но важных факторов, влияющих на общую производительность. Когда работа приложения или службы на переднем плане становится неконтролируемой, управление памятью приводит к резкому увеличению загрузки ЦП и батареи, что в конечном итоге вызывает завершение работы других, корректно работающих приложений и фоновых задач, что, в свою очередь, замедляет запуск приложений и ухудшает многозадачность.

Начиная с Android 17, система будет применять строгие ограничения на использование памяти приложениями, основанные на общем объеме оперативной памяти устройства, и будет внезапно завершать процессы, нарушающие эти ограничения. Новые функции, которые помогут вам справиться с этими более жесткими требованиями:

  • Оптимизатор R8: Оптимизатор R8 значительно уменьшает объем памяти, занимаемый байт-кодом вашего приложения, за счет сокращения имен классов, методов и полей, а также удаления неиспользуемого кода и ресурсов. Используйте R8 в полнофункциональном режиме вместе с новым анализатором конфигурации R8, чтобы убедиться, что ваше приложение максимально эффективно использует возможности R8.
R8 Configuration Analyzer.png
Анализатор конфигурации R8
  • LeakCanary в Android Studio Panda: теперь профилировщик имеет встроенную интеграцию с LeakCanary в качестве отдельной задачи, полностью интегрированной с вашей IDE и исходным кодом.
  • ApplicationExitInfo: Если ваше приложение будет завершено из-за превышения этих ограничений, метод getDescription() из ApplicationExitInfo вернет "MemoryLimiter:AnonSwap".
  • Обнаружение аномалий на устройстве: В рамках ProfilingManager вы можете использовать профилирование на основе триггеров с помощью TRIGGER_TYPE_ANOMALY для автоматического создания дампов кучи при достижении лимита памяти.
val profilingManager = applicationContext
   .getSystemService(ProfilingManager::class.java)

val triggers = ArrayList<ProfilingTrigger>().apply {
  add(ProfilingTrigger.Builder(
    ProfilingTrigger.TRIGGER_TYPE_ANOMALY).build())
}
profilingManager.addProfilingTriggers(triggers)

Кроме того, мы работаем над тем, чтобы предоставлять вам больше показателей использования памяти непосредственно в Google Play Console.

Сбор мусора поколениями

В Android 17 реализована более частая и менее ресурсоемкая сборка мусора молодого поколения для сборщика мусора Concurrent Mark-Compact (GC) в ART . Разделяя короткоживущие объекты от стабильных, долгоживущих, система выполняет частые и легковесные проверки «молодого поколения» вместо дорогостоящего сканирования всей кучи, что значительно снижает использование ЦП, энергопотребление и задержки в работе пользовательского интерфейса. Наши тесты показали значительное улучшение в плане влияния сборщика мусора на потоки приложений и уменьшение максимального размера резидентного набора памяти (RSS). Улучшения ART также доступны более чем на миллиарде устройств под управлением Android 12 (уровень API 31) и выше через обновления Google Play System.

Очередь сообщений без блокировок

Для приложений, ориентированных на SDK 37 или выше, ядро ​​android.os.MessageQueue теперь реализует архитектуру без блокировок, что значительно сокращает количество пропущенных кадров, улучшает время запуска приложения и радикально повышает производительность занятых очередей в многопоточных сценариях. Примечание: это может нарушить работу приложений, использующих рефлексию для закрытых полей и методов MessageQueue . API-интерфейсы peekWhen и poll добавлены в TestLooperManager для инструментального тестирования без использования внутренних механизмов MessageQueue .

Статические окончательные поля теперь действительно окончательные.

Начиная с Android 17, приложения, использующие SDK 37 и выше, не смогут изменять «статические финальные» поля, что позволит среде выполнения более агрессивно применять оптимизации производительности. Попытка сделать это с помощью рефлексии (или глубокой рефлексии) приведет к возникновению исключения IllegalAccessException.

Изменение этих параметров с помощью методов семейства SetStatic<Type>Field в JNI немедленно приведет к сбою приложения.

Ограничения на отображение пользовательских уведомлений

Для уменьшения использования памяти мы дополнительно ограничиваем размер пользовательских представлений уведомлений . Это обновление устраняет уязвимость, позволяющую приложениям обходить существующие ограничения с помощью URI. Такое поведение зависит от целевой версии SDK и вступает в силу для приложений, ориентированных на API 37 и выше.

Конфиденциальность и безопасность

Поддержание доверия пользователей лежит в основе экосистемы Android. Android 17 представляет собой мощные функции, которые защищают конфиденциальные данные, одновременно упрощая взаимодействие с пользователем.

Варианты, обеспечивающие сохранение конфиденциальности

Исторически сложилось так, что приложениям требовались широкие, постоянные разрешения для доступа к такой информации, как контакты, точное местоположение и медиафайлы. Android 17 продолжает тенденцию к созданию решений, обеспечивающих конфиденциальность и предоставляющих временный, сессионный доступ только к тем данным, которые пользователь явно выбирает:

  • Системный выбор контактов: Используя ACTION_PICK_CONTACTS , приложения могут запрашивать временный доступ только к определенным полям (например, электронной почте или номеру телефона), выбранным пользователем, что устраняет необходимость в широком разрешении READ_CONTACTS . Он также полностью поддерживает разделение рабочего и личного профилей.
  • Настраиваемое соотношение сторон окна выбора фотографий: с помощью PhotoPickerUiCustomizationParams вы можете настроить системное окно выбора фотографий таким образом, чтобы оно отображало миниатюры в портретном режиме. Это идеально подходит для приложений, которые всегда отображают фотографии и видео в портретном режиме, например, для видеоприложений в социальных сетях.
  • Кнопка определения местоположения, отображаемая системой: новая кнопка определения местоположения, отображаемая системой и которую можно встроить в приложение, предоставляет точный доступ к местоположению только для текущей сессии.
  • API EyeDropper: Новый системный API, ACTION_OPEN_EYE_DROPPER , позволяет вашему приложению создавать управляемый системой инструмент «пипетка», позволяющий пользователю выбирать цвет из любого пикселя на дисплее. Это обеспечивает безопасный и конфиденциальный выбор цвета, исключая необходимость в широких разрешениях на захват экрана или проекцию мультимедиа.
val eyeDropperLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
   if (result.resultCode == Activity.RESULT_OK) {
       val color = result.data?.getIntExtra(Intent.EXTRA_COLOR, Color.BLACK)
       // Use the picked color in your app
   }
}
fun launchColorPicker() {
   val intent = Intent(Intent.ACTION_OPEN_EYE_DROPPER)
   eyeDropperLauncher.launch(intent)
}
Eyedropper Tester.webp
Выбор цвета из любой точки экрана с помощью системы EyeDropper.

Доступ к локальной сети

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

Защита от SMS-кода

В Android 17 расширена защита SMS-сообщений с помощью одноразовых паролей (OTP), задержка доступа к SMS-сообщениям составляет три часа:

Исключения: стандартные приложения для SMS, голосового помощника и подключенных приложений-компаньонов не включены в список исключений. Настоятельно рекомендуется перейти на API SMS Retriever или SMS User Consent .

Постквантовая криптография (ПКК)

Android 17 готов к следующему поколению криптографической безопасности:

  • Интеграция с хранилищем ключей: Поддерживаемые устройства могут генерировать ключи ML-DSA (алгоритм цифровой подписи на основе модулей и решеток) в защищенном аппаратном обеспечении для создания квантово-устойчивых подписей, предоставляемых через стандартные API JCA.
  • Гибридная подпись APK: представляем схему подписи APK версии 3.2, которая сочетает классические подписи с подписями ML-DSA для обеспечения безопасности доставки приложений.

Более безопасная загрузка нативного динамического кода

Если ваше приложение ориентировано на SDK 37 или выше, защита Safer Dynamic Code Loading (DCL) , представленная в Android 14 для файлов DEX и JAR, теперь распространяется и на нативные библиотеки. Все нативные файлы, загружаемые с помощью System.load, должны быть помечены как доступные только для чтения. В противном случае система выдаст UnsatisfiedLinkError .

Более интеллектуальная защита паролем физических входов

В Android 17 мы делаем ввод паролей, PIN-кодов и других секретных данных с помощью физической клавиатуры более безопасным, поскольку по умолчанию больше не отображается последний введенный символ.

Пользователи по-прежнему могут легко настроить эти параметры отображения в соответствии со своими предпочтениями (доступность может варьироваться в зависимости от производителя устройства).

Эти расширенные средства защиты конфиденциальности автоматически поддерживаются встроенными компонентами SDK Android и будут поддерживаться в Compose 1.12 для SecureTextFields .

Скрыть первую букву.gif
Более интеллектуальная защита паролем физических входов

Функции для работы с медиаконтентом и камерой, которые расширяют возможности создателей контента и радуют пользователей.

Android 17 представляет новые функции для создателей контента , которые обеспечивают доступ к камерам и медиафайлам профессионального качества, одновременно улучшая пользовательский опыт.

  • Eclipsa Video : стандарт HDR-видео, разработанный на основе спецификации SMPTE ST 2094-50 , который вводит новые метаданные, помогающие устройствам адаптировать контент к запасу по высоте дисплея и условиям окружающего освещения, а также улучшать одновременное отображение стандартного и HDR-контента.
  • Формат изображений RAW14: Новая поддержка формата изображений RAW14 позволяет вашему профессиональному приложению для фотосъемки получать изображения с высочайшим уровнем детализации и глубины цвета с совместимых датчиков камер.
  • Расширения камеры, определяемые производителем: Расширения, определяемые производителем, позволяют партнерам по производству оборудования определять и реализовывать пользовательские режимы расширения камеры, обеспечивая доступ к лучшим и новейшим функциям камеры.
  • Расширенный программный кодировщик HE-AAC: новый программный кодировщик расширенного HE-AAC, предоставляемый системой, поддерживает как низкие, так и высокие битрейты, используя унифицированное кодирование речи и звука, обеспечивая значительно лучшее качество звука для голосовых сообщений в условиях низкой пропускной способности, включая поддержку метаданных громкости.
  • Универсальное кодирование видео (H.266) : позволяет производителям оборудования добавлять поддержку кодеков, определяя MIME-тип video/vvc в MediaFormat , добавляя новые профили VVC в MediaCodecInfo и интегрируя поддержку в MediaExtractor .
  • Тип камеры: Новые API, которые запрашивают базовый тип устройства, чтобы определить, является ли камера встроенным оборудованием, внешней USB-веб-камерой или виртуальной камерой.
  • Постоянное качество для видеозаписи: параметр setVideoEncodingQuality в MediaRecorder настраивает режим постоянного качества (CQ) для видеокодеров, обеспечивая равномерную визуальную точность по всему видеоряду.

Улучшенная поддержка слуховых аппаратов.

  • Поддержка слуховых аппаратов с Bluetooth LE Audio: Android теперь включает специальную категорию устройств для слуховых аппаратов с поддержкой Bluetooth Low Energy (BLE) Audio с новой константой AudioDeviceInfo.TYPE_BLE_HEARING_AID , поэтому ваше приложение сможет отличать слуховые аппараты от обычных гарнитур, чтобы обеспечить индивидуальный подход для пользователей вспомогательных устройств для улучшения слуха.
  • Детальная маршрутизация звука для слуховых аппаратов: Android 17 позволяет пользователям самостоятельно управлять воспроизведением определенных системных звуков. Они могут выбрать маршрутизацию уведомлений, мелодий звонка и будильников на подключенные слуховые аппараты или на встроенный динамик устройства, что помогает избежать нежелательных помех в ушах, сохраняя при этом Bluetooth-соединение для приложений управления слуховыми аппаратами.

CameraX и Media3

CameraX и Media3 были обновлены для Android 17. Они призваны взять на себя основную работу, сглаживая шероховатости в разработке медиаконтента и упрощая создание надежных приложений для захвата изображения с камеры, плавного воспроизведения мультимедиа, а также сложных и креативных возможностей редактирования.

Мы выпустили навык-агент , который может перевести устаревшие реализации камеры Android (API Camera1 или необработанные API Camera2) на CameraX.

Примечание: Для предотвращения сбоев, связанных с добавленным режимом динамического диапазона на устройствах Android 17, вам потребуется обновить версию CameraX до 1.5.2 или 1.6.0 и выше.

Подготовьте свои приложения, библиотеки, инструменты и игровые движки!

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

Тестирование включает в себя установку вашего рабочего приложения или тестового приложения, использующего вашу библиотеку или движок, через Google Play или другими способами, на устройство или эмулятор под управлением Android 17 Beta 4. Проработайте все сценарии работы вашего приложения и найдите функциональные проблемы или проблемы с пользовательским интерфейсом. Каждый релиз Android содержит изменения платформы, которые улучшают конфиденциальность, безопасность и общее взаимодействие с пользователем; проанализируйте изменения в поведении приложений, работающих на Android 17 и ориентированных на него , чтобы сосредоточить тестирование на следующих аспектах:

  • Изменение размера на больших экранах: начиная с Android 17 (SDK 37), вы больше не сможете отказаться от сохранения ограничений по ориентации, изменению размера и соотношению сторон на больших экранах .
  • Динамическая загрузка кода: если ваше приложение ориентировано на SDK 37 или выше, защита Safer Dynamic Code Loading (DCL) , представленная в Android 14 для файлов DEX и JAR, теперь распространяется и на нативные библиотеки. Все нативные файлы, загружаемые с помощью System.load(), должны быть помечены как доступные только для чтения. В противном случае система выдаст ошибку UnsatisfiedLinkError.
  • Включить прозрачность сертификатов (CT) по умолчанию: прозрачность сертификатов (CT) включена по умолчанию. (В Android 16 прозрачность сертификатов доступна, но приложениям приходилось включать её вручную .)
  • Защита локальной сети: В приложениях, использующих SDK 37 и выше , доступ к локальной сети по умолчанию заблокирован . По возможности переключитесь на использование средств выбора, обеспечивающих конфиденциальность, и используйте новое разрешение ACCESS_LOCAL_NETWORK для широкого и постоянного доступа.
  • Усиление защиты от фонового воспроизведения звука: начиная с Android 17, аудиофреймворк вводит ограничения на фоновые взаимодействия со звуком, включая воспроизведение аудио, запросы на фокусировку на аудио и API изменения громкости . На основе ваших отзывов мы внесли некоторые изменения по сравнению с бета-версией 2, включая ограничение использования FGS во время работы targetSDK и исключение аудиосигналов будильника. Подробная информация доступна в обновленном руководстве .
  • Заявление о доступе к NPU: Приложения, ориентированные на Android 17 и нуждающиеся в прямом доступе к NPU, должны заявить об этом.  Добавьте FEATURE_NEURAL_PROCESSING_UNIT в манифест, чтобы избежать блокировки доступа к NPU. Это касается приложений, использующих делегат NPU LiteRT , SDK от конкретных поставщиков, а также устаревшего NNAPI .

Начните работу с Android 17

Если вы еще не участвовали в бета-тестировании Android, ваше устройство Pixel вскоре получит Android 17. Если у вас нет устройства Pixel, вы можете использовать 64-битные образы системы с эмулятором Android в Android Studio. Если вы в настоящее время используете Android 17 Beta 4.1 и еще не участвовали в бета-тестировании Android 17 QPR1, вы можете отказаться от участия в программе, и вам будет предложена релизная версия Android 17 по воздуху.

Получение бета-версии Android 17 на устройствах партнеров.

Android 17 доступен в бета-версии для мобильных телефонов, планшетов и складных устройств от таких партнеров, как Honor, iQOO, Lenovo, OnePlus, OPPO, Realme, Sharp, vivo и Xiaomi.

android-17-beta-partners.jpg

Для наилучшего опыта разработки под Android 17 мы рекомендуем использовать последнюю сборку Canary Android Studio Quail . После настройки выполните следующие действия:

Еще раз благодарим всех, кто принял участие в нашей программе предварительного просмотра и бета-тестирования для разработчиков Android. Мы с нетерпением ждем, как ваши приложения воспользуются преимуществами обновлений Android 17, и планируем в дальнейшем выпускать обновления с высокой частотой.

Для получения полной информации об Android 17 посетитесайт разработчиков Android 17 .

Автор:
Продолжить чтение