Обзор Android Q AMA: что Google сказал об Android 10 на Reddit

click fraud protection

На днях инженеры Google провели АМА на Reddit. АМА была посвящена бета-версии Android Q. Вот краткое изложение того, что мы узнали из их ответов.

В прошлом году команда Google по Android провела встречу «Спроси меня о чем угодно» (AMA) в субреддите Reddit /r/AndroidDev, чтобы ответить на вопросы о Предварительная версия Android P для разработчиков. В этом году команда инженеров, работающая над бета-версией Android Q, ответила на вопросы на Reddit. АМА начался 1 августа в 12:00 по тихоокеанскому времени и закончился примерно через полтора часа. В АМА приняли участие 33 инженера Google, которые ответили на массу вопросов за короткое время, продлившееся АМА. Вот наш обзор всей новой информации, которую мы узнали.

Android Q AMA: все, что мы узнали от Google

Участники бета-команды Android Q

  • Адам Коэн: TLM в панели запуска Android/системном интерфейсе
  • Адам Пауэлл: TLM в наборе инструментов/инфраструктуре пользовательского интерфейса; представления, жизненный цикл, фрагменты, библиотеки поддержки
  • Алан Виверетт: ТЛМ, Джетпак / AndroidX
  • Аллен Хуанг: В личку по поводу пользовательского интерфейса, панели запуска, уведомлений, интеграции поиска и многого другого!
  • Андрей Сапирштейн: TLM в настройках Android
  • Брахим Эльбучихи: руководитель проекта по машинному обучению и камерам Android (NN API, комплект ML, CameraX, платформа камеры).
  • Чад Брубейкер: Инженер-программист, безопасность платформы Android
  • Шармейн Д’Сильва: ПМ по вопросам конфиденциальности
  • Чет Хаасе: Главный адвокат Android, отдел по связям с разработчиками
  • Диана Вонг: PM, совместимость приложений, использование API без SDK, ART, NDK
  • Дайан Хэкборн: Менеджер группы разработки платформы Android (ресурсы, диспетчер окон, диспетчер активности, многопользовательский режим, печать, специальные возможности и т. д.)
  • Э.К. Чанг: UX-директор
  • Ян Лейк: Инженер-программист, Jetpack (фрагменты, навигация, компоненты архитектуры)
  • Илиян Малчев: Главный инженер-программист, Project Mainline
  • Джейкоб Лербаум: Директор по связям с разработчиками Android
  • Джейк Уортон: Инженер-программист, Jetpack
  • Джамал Исон: ПМ, Android-студия
  • Джефф Бэйли: TLM, Проект Android с открытым исходным кодом (AOSP).
  • Джефф Шарки: Инженер-программист, Android Framework
  • Джеффри Ван Гог: Android Studio, Компиляторы
  • Джен Чай: PM, местоположение и контекст, аутентификация, автозаполнение, использование API, не относящегося к SDK, ART
  • Карен Нг: Групповой премьер-министр по инструментам разработчика Android, Android Studio, Android Tookit и Jetpack
  • Пол Бэнкхед: Директор по управлению продуктами Google Play
  • Рохан Шах: Менеджер по продукту, пользовательский интерфейс системы Android
  • Ромен Гай: Менеджер команды Android Toolkit/Jetpack
  • Сагар Камдар: Директор по управлению продуктами, Android
  • Сб К: Директор по разработке, Android Connectivity
  • Селим Синек: Инженер-программист, пользовательский интерфейс системы Android
  • Стефани Саад Катбертсон: Старший директор по управлению продуктами, Android
  • Сумир Катария: Инженер-программист, Jetpack (WorkManager)
  • Трэвис Маккой: Премьер-министр, платформа Android
  • Тристан Апстил: Заслуженный инженер, ведущий специалист по пользовательскому интерфейсу и интеллекту системы Android
  • Винит Моди: ПМ, Android-камера

читать далее

OEM-производители больше не могут убивать приложения, когда пользователь смахивает их в последних сообщениях.

Если вы когда-либо пользовались смартфоном китайского бренда, то наверняка сталкивались с надоедливыми функциями «оптимизации батареи», которые убейте все ваши любимые приложения в фоновом режиме. Такое поведение раздражает не только пользователей, которые по какой-либо причине ожидают, что определенные приложения будут продолжать работать в фоновом режиме, но и но это также раздражает разработчиков, которым приходится страдать от плохих отзывов от пользователей, которые не понимают, что это не особенность приложения. вина. В то время как Google все еще не полностью рассмотрели этот вопрос (они отмахнулись от проблемы, заявив, что такое поведение является вероятно, уже нарушает требования документа определения совместимости Android), компания является принятие мер против одного изменения поведения «экономии заряда батареи», используемого некоторыми OEM-производителями.

«Чтобы помочь в этой ситуации, мы добавили тест CTS в Android Q, чтобы гарантировать, что приложение не закрывается при перетаскивании из «Недавних».

Android R может внести больше изменений в скриншоты, чем мы ожидали

Google планирует добавить прокрутка скриншотов в Android R, но в то же время, Команда Android «внимательно рассмотрев, как [они] могут улучшить весь экранный опыт [X] для R». Таким образом, мы можем см. другие улучшения поведения скриншотов (И скринкастов) в следующей основной версии Android.

Разъяснение нового режима рабочего стола Android Q

первая публичная бета-версия Android Q добавил в AOSP и Pixel Launcher интерфейс скрытого режима рабочего стола. Хотя Google вкратце коснулся этой особенности Во время сеанса ввода-вывода Google мы никогда не слышали напрямую от Google о том, как новая функция вписывается в экосистему Android. Google теперь уточняет:

«В Q AOSP «режим рабочего стола» — это опция разработчика, предназначенная для разработчиков приложений. Это позволяет им тестировать свои приложения в средах с несколькими дисплеями и в оконном режиме произвольной формы. Раньше не было удобного способа протестировать поведение приложений на дополнительном дисплее и со свободно изменяемым размером окон на стандартном Android. Эта функция не разработана сама по себе и на данный момент не предназначена для обычных пользователей. Тем не менее, это основа платформы Android, позволяющая OEM-производителям внедрять инновации и создавать отличные продукты».

Таким образом, мы можем ожидать, что OEM-производители будут использовать собственный режим рабочего стола Android Q. Например, OnePlus 7 Pro поддерживает вывод изображения через HDMI, так что возможно, что OxygenOS 10 на базе Android Q в будущем у него будет собственный интерфейс режима рабочего стола. Мы также надеемся, что Google будет использовать эту функцию в будущих Пиксель 4.

Темный режим на основе времени

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

«Есть несколько причин, по которым это устарело (не удалено) в AppCompat v1.1.0: оно требует, чтобы приложения запрашивали разрешения на местоположение должны быть точными, и даже при наличии действительного местоположения расчеты времени восхода/заката могут быть точными. багги».

Когда его спросили об этих ошибках, г-н Бэйнс заявил, что «вычисление восхода и заката солнца чрезвычайно сложно, особенно для мест, близких к северный/южный полюса». Пользователь вызывает этот ночной свет, доступный начиная с Android 7.1 Nougat, который можно автоматически переключать в зависимости от заката/восхода солнца. графики. Затем г-н Бэйнс заявляет, что, поскольку Night Light использует CalendarAstronomer от ICU4J, он использует «большой кусок кода, от которого мы бы не хотели, чтобы AppCompat зависел». Однако команда делает состояние что эта функция «то, что [они] будут изучать».

Обязательная поддержка Camera2 API/Camera HAL3 для устройств запуска Android Q.

Google представил API Camera2, чтобы лучше определить, как приложения могут взаимодействовать с отдельными камерами, подключенными к вашему смартфону. В то время как Google поощряет производителей смартфонов «предоставить разработчикам все свои физические камеры», многие поставщики предпочитают не делать этого, даже несмотря на то, что «сам API не предотвратить их сегодня». Это означает, что многие сторонние приложения камеры не могут использовать вторичные или третичные модули камеры на современных смартфоны. Однако прогресс наблюдается, поскольку Android Q улучшился. LOGICAL_MULTI_CAMERA, API, который предоставляет разработчикам лучший доступ ко всем камерам на устройстве, а также позволяет OEM-производителям контролировать энергопотребление и управлять состояниями нескольких камер.

Кроме того, Google сообщает, что они добавили требования ко всем устройствам, запускаемым с Android Q, для поддержки встроенной поддержки Camera2 API/Camera HAL3. По словам Винита Моди:

«Начиная с Android P, новые устройства, поставляемые с 1 ГБ или более оперативной памяти, должны использовать HALv3/camera2. Начиная с Android Q, все новые устройства должны иметь встроенную поддержку HALv3/camera2. К сожалению, обновления с HALv1 на HALv3 по беспроводной сети довольно сложны и могут иметь неожиданные последствия, поэтому нам пришлось ограничить область применения новыми устройствами».

Интересно, заявление Моди об обычной оперативной памяти Android P для запуска устройств противоречит то, что нам ранее рассказал Google и что опубликовано на странице Image Test Suite в Интернете.

Динамическое оформление приложений с помощью Jetpack Compose

Фреймворк тем Sony OMS был добавлен в AOSP несколько выпусков назад, но это всего лишь предназначен для OEM-производителей опираться. Мы уже знаем это Гугл против использование пользователями наложений ресурсов среды выполнения для тематических приложений, но для разработчиков компания надеясь что это Пользовательский интерфейс создания Jetpack framework предложит «интересные подходы к динамическому оформлению тем».

Бэкэнд Vulkan для Skia для рендеринга пользовательского интерфейса

В прошлом году, мы заметили обсуждение среди инженеров Google говорят о своих планах использовать платформу Android для рендеринга пользовательского интерфейса с помощью графического API Vulkan. Хотя теперь можно включить аппаратное ускорение серверной части Vulkan без телефона. сбой, мы не слышали никаких конкретных планов от Google о том, когда они планируют выпустить эти изменения. АМА не отвечает на этот вопрос, но, по крайней мере, у нас есть подтверждение того, что она все еще находится в разработке. По словам Ромена Ги:

«Команда работала над серверной частью Vulkan для Skia, средства 2D-рендеринга, используемого Android, но в настоящее время он не включен по умолчанию. Пользовательский интерфейс и Canvas по-прежнему проходят через OpenGL ES».

Делаем панель жестов Android Q более динамичной

Некоторые на XDA до сих пор так думают Новые жесты Android — это беспорядок, но лично я думаю, что с ними все в порядке. Однако если вы немного поиграетесь с новыми жестами в Android Q, вы заметите, что панель жестов не перемещается пальцем. Он также остается на экранах, где он не нужен, например, на главном экране или обзоре последних приложений. Аллен Хуанг говорит что они «полностью согласны с тем, что есть возможности» сделать «навигационную линию менее статичной». Далее он говорит что «это то, над чем мы работаем, но также и балансируем, чтобы это не отвлекало появляется/исчезает».

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

Множество изменений в Android Q существенно улучшили безопасность и конфиденциальность платформы. Одно из таких изменений, получившее название «Scoped Storage», ограничивает доступ приложений к файлам во внешнем хранилище разумным образом; Например, музыкальным приложениям не обязательно видеть вашу галерею. Приложения файлового менеджера, работающие в Android Q, должны использовать API, называемый Storage Access Framework, чтобы продолжать работать в обычном режиме, но некоторые разработчики считают этот API худшим к тому, что было доступно ранее. Джефф Шарки из Google говорит команда рассмотрела некоторые жалобы этих разработчиков:

«Мы внесли некоторые улучшения в производительность SAF в последних выпусках Android Q Beta; не могли бы вы сравнить свои тесты с последней бета-версией? Также убедитесь, что вы используете ContentProviderClient при выполнении любых массовых операций».

Project Treble улучшил внедрение Android Pie по сравнению с Android Oreo

Мы уже видели, как Project Treble, масштабная низкоуровневая переработка платформы Android, улучшил принятие новых версий ОС Android. Google благодарит Treble за то, что множество производителей смартфонов присоединились к Android P бета-версия в прошлом году и Android Q бета-версия в этом году. Илиян Малчев, ведущий проект Treble и Основная линия инженер, говорит В конце 2018 года внедрение Android Pie было в «3 раза» больше, чем Android Oreo.

В том же комментарии Дик Догерти намекает, что в разработке находятся более полезные показатели для диаграммы распределения версий Android. Диаграмма была последнее обновление в мае, но его данные более полезны для журналистов, чем для разработчиков приложений.

Запись экрана все еще находится в стадии разработки

В ранних бета-версиях Android Q был добавлен флаг функции для базовой записи экрана, но сама платформа значительно улучшила полезность записи экрана: разрешение приложениям захватывать звук из других приложений. Стефани Саад Катбертсон сказала, что еще вчера команда обдумывала, «как мы могли бы лучше справиться с потребностями в записи экрана». Другие бренды смартфонов, такие как OnePlus, ASUS, Huawei и Samsung имеют надежные устройства записи экрана, которые могут записывать внутренний звук, поэтому Google будет здесь догонять.

Темная тема Все вещи!

Если вы пропустили это, Google добавляет темный режим в большинство своих приложений. Стефани Саад Катбертсон говорит ожидать, что все «основные приложения» будут поддерживать темную тему «к официальному выпуску [Android Q]». Даже Google Chrome, который в настоящее время вызывает перезагрузку страницы, когда включена общесистемная темная тема, будет обновлена ​​и больше не будет обновляться при включении темы. измененный.

Да, сторонние программы запуска будут работать с жестами (со временем)

Жесты Android являются своего рода ломается при использовании стороннего лаунчера. Это связано с тем, что пользовательский интерфейс последних приложений содержится в стандартном приложении запуска, а Google еще не сделал этого. разработал способ добиться таких же плавных переходов, которые мы видим при использовании жестов со стандартным Pixel Лаунчер. Адам Коэн подтверждает Google планирует решить эти проблемы «как можно быстрее после релиза». Далее он говорит, что несовместимость «будет устранена в обновлении после Q и перенесена на новые устройства, запускаемые с Вопрос.»

Динамические/логические разделы не предназначены для уничтожения пользовательских ПЗУ.

Чтобы поддержать Динамические обновления системы в Android Q некоторые устройства, такие как Google Pixel 3 и Pixel 3 XL, используют логические разделы. Размер этих разделов можно динамически изменять. Это изменение имеет оказалось сложной задачей получить root-доступ, и некоторые разработчики обеспокоены тем, что целью являются пользовательские ПЗУ. Илиян Малчев уверяет нас, что намерение не состоит в том, чтобы ограничивать использование пользовательских ПЗУ. Как он объясняет:

«Динамические разделы не предназначены для ограничения того, что вы можете делать с пользовательскими ПЗУ. Это просто решение проблемы фиксированных размеров разделов и отсутствия безопасного способа переразметки устройств на ОТА. До динамических разделов, если OEM-производитель допустил ошибку в определении размера, например. системный раздел, затем они будет ограничен этим выбором, что сделает практически невозможным обновление устройства после определенного точка. Некоторые OEM-производители на практике перераспределяют свои устройства по OTA, но это а) официально не поддерживается в Android и б) изменение таблицы разделов считается довольно рискованным. Динамические разделы призваны облегчить проблему, вводя уровень косвенности между таблицей физических разделов и видимостью ОС. Это, в свою очередь, позволяет нам безопасно настраивать размеры разделов по OTA. Что касается пользовательских ПЗУ, вы не должны быть ограничены в своих возможностях больше, чем сегодня. Поддержка пользовательских ПЗУ есть и остается тем, что решает включить каждый отдельный OEM-производитель».

Основная линия проекта — модуль ART и длина поддержки

Mainline — это новая инициатива Google, целью которой является стандартизация определенных библиотек и пакетов, чтобы их можно было обновлять независимо от обновлений платформы. Некоторые задавались вопросом, почему Android Runtime (ART) еще не является основным модулем, но на Google I/O мне сказали, что сложность модульной организации ART не позволила им включить его в качестве одного из первоначальных пакетов APEX. Как объяснил как Илиян Малчев, так и Диана Вонг:

«Внесение обновлений среды выполнения (особенно исправлений производительности, сборщика мусора и основных библиотек) — это определенно то, что мы изучаем в контексте основной ветки. Мы видим множество преимуществ в возможности сделать эти обновления согласованными на всех устройствах и в нескольких выпусках с основной веткой. Это также огромная техническая задача, поскольку мы думаем о том, как сделать это лучше для разработчиков, и, вероятно, это многолетняя работа. Mainline в настоящее время не может это сделать, но мы определенно думаем об этом».

Если вы будете следовать AOSP Gerrit, вы увидите, что Google, тем не менее, был тяжело на работе создание Runtime APEX. В настоящее время они кажутся разделение Bionic и ART/libcore на отдельные модули APEX.

Что касается преимуществ Project Mainline, один пользователь спросил о продолжительности обновлений Mainline. В ответ Илиян Малчев говорит что «это вопрос политики, который мы все еще рассматриваем, но мы хотим обновлять модули Mainline на устройстве как можно дольше». Признанный разработчик XDA luca020400 поинтересовался, будут ли предоставляться готовые модули Mainline, чтобы разработчики пользовательских ПЗУ могли объединять обновления, и в ответ Джефф Бэйли повторяет что «модули, которые отделяются от AOSP, будут иметь исходные версии, соответствующие каждой версии модуля». Мы уже можем видеть развитие новых модулей APEX в AOSP, таких как модуль для API нейронных сетей.

CameraX и ML Kit

На выставке I/O в этом году Google представила Библиотека CameraX Jetpack. Эта библиотека создана для того, чтобы разработчикам было проще поддерживать Android Camera2 API, сохраняя при этом совместимость вплоть до Android Lollipop. Винит Моди дразнит что компания работает над интеграцией CameraX с ML-комплект, Firebase SDK Google для машинного обучения, позволяющий разработчикам передавать кадры изображений в ML Kit для анализа.

Расширения поставщиков CameraX и дата выпуска

Разработчик приложения для камеры сетует на тот факт, что расширенные функции камеры, такие как ночной прицел Google Pixel, недоступны сторонним приложениям для камеры. Предполагается, что эту проблему можно решить с помощью расширений поставщика CameraX, на что Джефф Шарки из Google говорит что «все устройства Pixel оптимизированы для CameraX Core». Он дразнит, что «аспект расширений будет поддерживаться на новых и будущих устройствах». Более того, Google «Работаем с несколькими производителями, чтобы иметь возможность донести возможности своих устройств как до разработчиков, так и до пользователей». Хотя это и не подтверждено напрямую, возможно, мы увидим особенности нравиться Ночной прицел на Гугл Пиксель 4 станут доступны сторонним приложениям камеры, использующим библиотеку CameraX.

Г-н Шарки заявляет, что Google планирует выпустить бета-версию к концу этого года.

Улучшения управления памятью в Android Q

Pixel 3 раскритиковали за многочисленные проблемы после запуска, но Google многое сделал для решения этих проблем с помощью многочисленных обновления после запуска. Управление памятью было одним из самых слабых аспектов Pixel 3, но в выпуске Android Q дела обстоят немного лучше. По словам Селима Синека:

«Например, в SystemUI мы предприняли различные большие усилия по рефакторингу Q, чтобы уменьшить использование оперативной памяти для уведомлений и других поверхностей».

Получим ли мы наконец беспроводной ADB?

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

Google все еще тестирует планшеты?

Признанный разработчик XDA Лук1337 спросил, тестирует ли Google еще AOSP UX на планшетах. Это справедливый вопрос, учитывая нехватка хороших Android-планшетов и присутствуют ошибки в текущих выпусках. Аллен Хуанг говорит что Google по-прежнему «ежегодно тестирует и вносит исправления» и что компания тесно сотрудничает с партнерами, «чтобы обеспечить хорошее качество работы с планшетами Android».


В полной теме на Reddit есть гораздо больше сообщений. То, что я здесь рассказал, обобщает всю новую информацию, которую мы узнали, но некоторые сотрудники Google (особенно Дайанн Хакборн) подробно излагают свои аргументы в пользу сокращения функции X или отсутствия реализации Y. разрешение. Я рекомендую вам прочитать полную версию AMA, если вы хотите лучше понять процесс принятия решений командой Android.

Полный текст AMA можно прочитать на странице /r/AndroidDev.