Представление Android Q Beta

Вышла Android Q Beta

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

По мере развития мобильной экосистемы Android ориентируется на то, чтобы помочь пользователям воспользоваться последними инновациями, при этом обеспечение безопасности и конфиденциальности пользователей всегда является главным приоритетом. Основываясь на таких усилиях, как Google Play Protect и разрешения времени выполнения, Android Q предоставляет ряд дополнительных функций конфиденциальности и безопасности для пользователей, а также усовершенствования приложений для складываемых экранов, новые API-интерфейсы для подключения, новые медиакодеки и возможности камеры, расширения NNAPI, Vulkan Поддержка 1.1, более быстрый запуск приложения и многое другое.

Сегодня мы выпускаем бета-версию Android Q для ранних пользователей и предварительный SDK для разработчиков. Вы можете начать с бета-версии 1 сегодня регистрация любого устройства Pixel (включая оригинальные Pixel и Pixel XL, для которых мы расширили поддержку по многочисленным просьбам!). Пожалуйста Поделитесь с нами вашими мыслями! Читайте дальше, чтобы узнать, что в Android Q, и мы увидимся на Google I / O в мае когда у нас будет еще больше, чтобы поделиться.

Опираясь на защиту конфиденциальности в Android

Android был разработан с приоритетом безопасности и конфиденциальности. По мере развития Android, мы добавили широкий спектр функций для защиты пользователей, как файловое шифрование, элементы управления ОС, требующие, заставляющие приложения запросить разрешение перед доступом к конфиденциальным ресурсам, блокировка фонового доступа к камере / микрофону, режим блокировки, зашифрованные резервные копии, Google Play Защита (который сканирует более 50 миллиардов приложений в день, чтобы выявить потенциально опасные приложения и удалить их), и многое другое. В Android Q мы сделали еще больше улучшений, чтобы защитить наших пользователей. Многие из этих улучшений являются частью нашей работы в Project Strobe.

Предоставление пользователям большего контроля над местоположением

Благодаря Android Q ОС помогает пользователям лучше контролировать, когда приложения могут определять местоположение. Как и в предыдущих версиях ОС, приложения могут получить местоположение только после того, как приложение запросит у вас разрешение и вы предоставите его.

Одна вещь, которая особенно чувствительна, — это доступ приложений к местоположению, когда приложение не используется (в фоновом режиме). Android Q позволяет пользователям разрешать приложениям видеть их местоположение никогда, только когда приложение используется (работает) или постоянно (в фоновом режиме).

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

Больше защиты конфиденциальности в Android Q

Помимо изменений в местоположении, мы делаем дальнейшие обновления, чтобы обеспечить прозрачность, предоставить пользователям контроль и защитить личные данные.

В Android Q ОС предоставляет пользователям еще больший контроль над приложениями, контролируя доступ к общим файлам. Пользователи смогут контролировать доступ приложений к фотографиям и видео или аудио коллекции с помощью новых runtime permissions. Для загрузок приложения должны использовать средство выбора системных файлов, которое позволяет пользователю решать, к каким файлам загрузки приложение может получить доступ. Для разработчиков есть изменения в том, как ваши приложения могут использовать общие области на внешнем хранилище. Обязательно прочитайте Изменения в области хранения для уточнения деталей.

Мы также видели, что пользователи (и разработчики!) Расстраиваются, когда приложение неожиданно выпрыгивает на передний план и захватывает фокус. Чтобы уменьшить эти прерывания, Android Q будет предотвращать запуск приложений в фоновом режиме. Если ваше приложение находится в фоновом режиме и нуждается в быстром привлечении внимания пользователя — например, для входящих вызовов или сигналов тревоги — вы можете использовать высокоприоритетное уведомление и предоставить полноэкранный режим. Смотрите документацию для дополнительной информации.

Мы ограничиваем доступ к не сбрасываемым идентификаторам устройства, включая IMEI устройства, серийный номер и аналогичные идентификаторы. Прочитайте лучшие практики чтобы помочь вам выбрать правильные идентификаторы для вашего варианта использования, и смотрите детали здесь. Мы также используем случайный MAC-адрес устройства при подключении к различным сетям Wi-Fi по умолчанию — настройка, которая была необязательной в Android 9 Pie.

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

Новые способы привлечения пользователей

В Android Q мы предоставляем новые способы привлечения пользователей в ваши приложения и упрощаем работу с ними при переходе от других приложений.

Складные и новые инновационные экраны

Складные устройства открыли некоторые инновационные возможности и варианты использования. Чтобы помочь вашим приложениям использовать эти и другие устройства с большим экраном, мы сделали ряд улучшений в Android Q, включая изменения в onResume и onPause для поддержки multi-resume и уведомления вашего приложения, когда оно получает фокус. Мы также изменили работу с атрибутом манифеста resizeableActivity, чтобы помочь вам управлять тем, как ваше приложение отображается на складных и больших экранах. Чтобы приступить к созданию и тестированию на этих новых устройствах, мы усердно работали над обновлением эмулятора Android для поддержки переключения между несколькими дисплеями — скоро будет больше подробностей!

Обмен ярлыками

Когда пользователь хочет поделиться контентом, например фотографией, с кем-то из другого приложения, процесс должен быть быстрым. В Android Q мы делаем это быстрее и проще с помощью Sharing Shortcuts, которые позволяют пользователям напрямую переходить в другое приложение для обмена контентом. Разработчики могут публиковать цели общего доступа, которые запускают определенную активность в своих приложениях с прикрепленным содержимым, и они показываются пользователям в пользовательском интерфейсе общего ресурса. Поскольку они опубликованы заранее, пользовательский интерфейс общего доступа может загружаться сразу после запуска.

Механизм «Совместное использование ярлыков» аналогичен тому, как работают ярлыки приложений, поэтому мы расширили ShortcutInfo API чтобы облегчить интеграцию обеих функций. Этот новый API также поддерживается в новой библиотеке ShareTarget AndroidX. Это позволяет приложениям использовать новые функциональные возможности, в то же время позволяя устройствам до Q работать с использованием Direct Share. Вы можете найти ранний образец приложения — исходный код здесь.

Панели настроек

Теперь вы также можете отображать ключевые параметры системы прямо в контексте вашего приложения, с помощью нового Settings Panel API, которая использует функцию слайсов, которую мы представили в Android 9 Pie.

Панель настроек — это плавающий пользовательский интерфейс, который вы вызываете из своего приложения для отображения системных настроек, которые могут понадобиться пользователям, таких как подключение к Интернету, NFC и громкость звука. Например, браузер может отображать панель с настройками подключения, такими как Режим полета, Wi-Fi (включая близлежащие сети) и Мобильные данные. Нет необходимости выходить из приложения; пользователи могут управлять настройками по мере необходимости с панели. Чтобы отобразить панель настроек, просто введите один из новых Settings.Panel actions.

Связь

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

Разрешения подключения, конфиденциальность и безопасность

Большинству наших API для сканирования сетей уже требуется разрешение COARSE, но в Android Q для Bluetooth, сотовой связи и Wi-Fi мы усиливаем защиту этих API, вместо этого требуя разрешение FINE. Если ваше приложение нуждается только в пиринговых соединениях или предлагаемых сетях, ознакомьтесь с приведенными ниже улучшенными API-интерфейсами Wi-Fi — они упрощают соединения и не требуют разрешения для определения местоположения.

В дополнение к рандомизированным MAC-адресам, которые Android Q предоставляет при подключении к различным сетям Wi-Fi, мы добавляем новую поддержку стандарта Wi-Fi, WPA3 и Enhanced Open, для повышения безопасности домашних и рабочих сетей, а также открытых / общедоступных сетей.

Улучшено пиринговое и интернет-соединение

В Android Q мы провели рефакторинг стека Wi-Fi, чтобы улучшить конфиденциальность и производительность, а также улучшить общие сценарии использования, такие как управление устройствами IoT и предложение интернет-соединений — без необходимости разрешения местоположения.

API-интерфейсы сетевых подключений упрощают управление устройствами IoT через локальный Wi-Fi для одноранговых функций, таких как настройка, загрузка или печать. Приложения инициируют запросы на подключение косвенно, указывая предпочтительные идентификаторы SSID и BSSID как WiFiNetworkSpecifiers. Платформа сама выполняет сканирование Wi-Fi и отображает соответствующие сети в средстве выбора Wi-Fi. Когда пользователь выбирает, платформа устанавливает соединение автоматически.

API-интерфейсы для сетевых предложений позволяют приложениям показывать пользователю предпочтительные сети Wi-Fi для подключения к Интернету. Приложения инициируют соединения косвенно, предоставляя ранжированный список сетей и учетных данных как WifiNetworkSuggestions. Платформа будет легко подключаться в зависимости от прошлой производительности в радиусе действия этих сетей.

Режим производительности Wi-Fi

Теперь вы можете запросить адаптивный Wi-Fi в Android Q, включив режимы высокой производительности и низкой задержки. Они будут очень полезны, когда низкая задержка важна для взаимодействия с пользователем, например игры в реальном времени, активные голосовые вызовы и аналогичные сценарии использования.

Чтобы использовать новые режимы производительности, вызовите WifiManager.WifiLock.createWifiLock() с WIFI_MODE_FULL_LOW_LATENCY или WIFI_MODE_FULL_HIGH_PERF. В этих режимах платформа работает с микропрограммой устройства для удовлетворения требований с минимальным энергопотреблением.

Камера, медиа, графика

Динамический формат глубины для фотографий

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

Начиная с Android Q, приложения могут запрашивать изображение Dynamic Depth, которое состоит из JPEG, метаданных XMP, относящихся к элементам, связанным с глубиной, и карты глубины и достоверности, встроенной в тот же файл на устройствах, которые рекламируют поддержку.

Запрос изображения в формате JPEG + Dynamic Depth позволяет вам предлагать в вашем приложении специальные размытия и параметры боке. Вы даже можете использовать эти данные для создания 3D-изображений или поддержки сценариев использования AR-фотографии в будущем. Мы делаем Dynamic Depth открытым форматом для экосистемы и работаем с нашими партнерами-производителями устройств, чтобы сделать его доступным для устройств под управлением Android Q и более поздних версий.

С изображением Dynamic Depth вы можете предлагать специализированные варианты размытия и боке в вашем приложении.

Новые аудио и видео кодеки

Android Q представляет поддержку видеокодека с открытым исходным кодом AV1. Это позволяет медиа-провайдерам передавать потоковое видео высокого качества на устройства Android используя меньшую пропускную способность. Кроме того, Android Q поддерживает кодирование аудио с использованием кодека Opus, оптимизированного для потоковой передачи речи и музыки, и HDR10+ для видео с высоким динамическим диапазоном на устройствах, которые его поддерживают.

MediaCodecInfo API представляет более простой способ определения возможностей рендеринга видео на устройстве Android. Для любого данного кодека вы можете получить список поддерживаемых размеров и частоты кадров, используя VideoCodecCapabilities.getSupportedPerformancePoints(). Это позволяет вам выбирать видеоконтент наилучшего качества для рендеринга на любом устройстве.

Нативный MIDI API

Для приложений, которые выполняют обработку звука в C ++, Android Q представляет native MIDI API  для коммуникации с устройствами MIDI посредством NDK. Этот API позволяет извлекать MIDI-данные внутри звукового обратного вызова с использованием неблокирующего чтения, что позволяет обрабатывать MIDI-сообщения с низкой задержкой. Попробуйте приложение с примером — исходный код здесь.

ANGLE на Vulkan

Чтобы обеспечить большую согласованность для разработчиков игр и графики, мы работаем над созданием стандартного обновляемого драйвера OpenGL для всех устройств, созданных на Vulkan. В Android Q мы добавляем экспериментальную поддержку ANGLE на Vulkan на устройствах Android. ANGLE — Благодаря ANGLE многие приложения и игры, использующие OpenGL ES, могут воспользоваться производительностью и стабильностью Vulkan, а также совместимой независимой от поставщика реализацией ES на устройствах Android. , В Android Q мы планируем поддерживать OpenGL ES 2.0, а ES 3.0 будет следующей в нашей дорожной карте.

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

Vulkan везде

Мы продолжаем расширять влияние Vulkan на Android, наша реализация кроссплатформенного API с низкими издержками для высокопроизводительной 3D-графики. Наша цель — сделать Vulkan для Android широко поддерживаемым и последовательным API-разработчиком для графики. Мы работаем вместе с нашими партнерами-производителями устройств, чтобы сделать Vulkan 1.1 требованием для всех 64-разрядных устройств под управлением Android Q и выше и рекомендацию для всех 32-разрядных устройств. В дальнейшем это поможет обеспечить единый высокопроизводительный графический API-интерфейс для приложений и игр.

Нейронные сети API 1.2

С момента введения Neural Networks API (NNAPI) в 2017 году мы продолжаем расширять число поддерживаемых операций и улучшать существующие функциональные возможности. В Android Q мы добавили 60 новых операций, включая ARGMAX, ARGMIN, квантованный LSTM, а также ряд оптимизаций производительности. Это закладывает основу для ускорения гораздо большего диапазона моделей — например, для обнаружения объектов и сегментации изображения. Мы работаем с поставщиками оборудования и популярными системами машинного обучения, такими как TensorFlow  чтобы оптимизировать и развернуть поддержку NNAPI 1.2.

Укрепление основ Android

ART производительность

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

Начиная с Android Nougat, ART предлагает Profile Guided Optimization (PGO), который ускоряет запуск приложения в рантайме, выявляя и предварительно компилируя часто выполняемые части вашего кода. Чтобы помочь с первоначальным запуском приложения, Google Play теперь предоставляет облачные профили вместе с APK. Это анонимные агрегированные профили ART, которые позволяют ART предварительно компилировать части вашего приложения еще до его запуска, что дает значительный импульс к началу процесса оптимизации. Облачные профили полезны для всех приложений, и они уже доступны для устройств под управлением Android P и выше.

Мы также продолжаем улучшать саму АРТ. Например, в Android Q мы оптимизировали процесс Zygote, запустив процесс вашего приложения раньше и переместив его в контейнер безопасности, чтобы он был готов к немедленному запуску. Мы храним больше информации в образе кучи приложения, например, о классах, и используем многопоточность для быстрой загрузки изображения. Мы также добавляем Generational Garbage Collection в сборщик мусора ART в режиме Concurrent Copying (CC).  Generational CC более эффективно, так как он собирает вновь сгенерированные объекты отдельно, что влечет за собой гораздо меньшую стоимость по сравнению с GC с полной кучей, но при этом требует много места. Это делает сборку мусора в целом более эффективным с точки зрения времени и процессорного времени, сокращая нежелательные потери и помогая приложениям работать лучше на устройствах нижнего уровня.

Безопасность для приложений

BiometricPrompt — наша унифицированная структура аутентификации для поддержки биометрии на системном уровне. В Android Q мы расширяем поддержку пассивных методов аутентификации, таких как face, и добавляем потоки неявной и явной аутентификации. В явном потоке пользователь должен явно подтвердить транзакцию в TEE во время аутентификации. Неявный поток предназначен для облегченной альтернативы транзакций с пассивной аутентификацией. Мы также улучшили запасной вариант для учетных данных устройства при необходимости.

Android Q добавляет поддержку TLS 1.3, крупный пересмотр стандарта TLS, который включает в себя преимущества производительности и повышенную безопасность. Наши тесты показывают, что безопасные соединения могут быть установлены на 40% быстрее с TLS 1.3 по сравнению с TLS 1.2. TLS 1.3 включен по умолчанию для всех соединений TLS. Смотрите подробности в документации.

Совместимость через публичные API

Еще одна вещь, которая нас всех волнует, — это обеспечение бесперебойной работы приложений при изменении и развитии ОС. Приложения, использующие не SDK API, рискуют повлечь сбои для пользователей и необходимость аварийных исправлений для разработчиков. В Android Q мы продолжаем наши долгосрочные усилия начиная с Android P движения приложений в сторону использования публичных API. Мы знаем, что удаление из вашего приложения не-SDK API займет время, поэтому мы даем вам ранние предупреждения.

В Android Q мы ограничиваем доступ к большему числу не-SDK интерфейсов и просим вас использовать публичные эквиваленты вместо этого. Чтобы помочь вам осуществить переход и предотвратить поломку ваших приложений, мы включаем ограничения только в том случае, если ваше приложение ориентировано на Android Q. Мы продолжим добавлять общедоступные альтернативные API на основе ваших запросов; в случаях, когда нет общедоступного API, соответствующего вашему варианту использования, пожалуйста, дайте нам знать.

Важно: протестируйте свои приложения для использования не-SDK интерфейсов. Мы рекомендуем использовать метод StrictMode detectNonSdkApiUsage() для предупреждения, когда ваше приложение получает доступ к не-SDK API через рефлексию или JNI. Даже если в настоящее время API не включены в «серый список», лучше планировать будущее и исключать их использование для уменьшения проблем совместимости. Подробнее об ограничениях в Android Q см. руководство разработчика.

Современный Android

Мы прилагаем все усилия, чтобы все приложения в полной мере использовали возможности безопасности и производительности в последней версии Android. Позже в этом году Google Play потребует от вас установить targetSdkVersion вашего приложения на 28 (Android 9 Pie) в новых приложениях и обновлениях. В соответствии с этими изменениями Android Q будет предупреждать пользователей диалоговым окном, когда они впервые запустят приложение, которое предназначено для платформы ранее, чем уровень API 23(Android Marshmallow). Вот контрольный список ресурсов чтобы помочь вам перенести ваше приложение.

Мы также продвигаем экосистему к готовности для 64-битных устройств. Позже в этом году Google Play потребует 64-битную поддержку во всех приложениях. Если ваше приложение использует собственные SDK или библиотеки, имейте в виду, что вам необходимо предоставить 64-разрядные совместимые версии этих SDK или библиотек. Смотрите руководство разработчика для получения деталей о том, как подготовиться.

Начало работы с Android Q Beta

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

Чтобы начать, просто установите свое текущее приложение из Google Play на устройство или запустите Android Virtual Device с Android Q Beta и работайте через user flows. Приложение должно выглядеть и работать на Android Q, отображая изменения поведения для всех приложений. Если вы обнаружите проблемы, мы рекомендуем исправить их в текущем приложении, не меняя уровень таргетинга. Посмотрите на руководство по миграции для шагов и рекомендуемые сроки.

Затем обновите targetSdkVersion вашего приложения до ‘Q’ как можно скорее. Это позволяет протестировать ваше приложение со всеми функциями конфиденциальности и безопасности в Android Q, а также с любыми другими изменения поведения для приложений, нацеленных на Q.

Исследуйте новые функции и API

Когда вы будете готовы, погрузитесь в Android Q и изучите новые функции и API, которые вы можете использовать в своих приложениях. Посмотрите на API diff report,  Android Q Beta API reference, и руководства для разработчиков в качестве отправной точки. Также на сайте Android Q Beta developer site, вы найдете release notes и support resources для сообщения о проблемах.

Для сборки с помощью Android Q загрузите Android Q Beta SDK и инструменты в Android Studio 3.3 или более поздней версии и выполните следующие действия. эти инструкции по настройке вашей среды. Если вы хотите получить последние исправления для изменений, связанных с Android Q, мы рекомендуем вам использовать Android Studio 3.5 или выше.

Как мне получить Android Q Beta?

Это легко — зарегистрируйтесь здесь чтобы получать обновления Android Q Beta по беспроводной сети на любом устройстве Pixel (и в этом году мы поддерживаем все три поколения Pixel — Pixel 3, Pixel 2 и даже оригинальный Pixel!). Загружаемые образы системы для этих устройств также имеется в наличии. Если у вас нет устройства Pixel, вы можете использовать эмулятор Android и загружать новейшие образы системы эмулятора с помощью SDK Manager в Android Studio.

Мы планируем регулярно обновлять изображения системы предварительного просмотра и SDK на протяжении всего предварительного просмотра. По мере продвижения Бета-программы у нас будет больше возможностей для обмена.

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

Перевод источника

13 March 2019

Posted by Dave Burke, VP of Engineering

Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.

Добавить комментарий