Днями інженери Google провели AMA на Reddit. AMA стосувалася бета-версії Android Q. Ось короткий виклад того, що ми дізналися з їхніх відповідей.
Минулого року команда Google Android організувала Ask Me Anything (AMA) у субреді Reddit /r/AndroidDev, щоб поставити запитання про Попередній перегляд розробника Android P. Цього року команда інженерів, яка працює над бета-версією Android Q, відповіла на запитання на Reddit. AMA розпочався 1 серпня о 12:00 за тихоокеанським стандартним часом і завершився приблизно через півтори години. 33 інженери Google були залучені до AMA, відповідаючи на масу запитань за короткий час, що тривав AMA. Ось наше резюме всієї нової інформації, яку ми дізналися.
Android Q AMA: все, що ми дізналися від Google
Учасники з команди бета-версії Android Q
- Адам Коен: TLM на панелі запуску Android / інтерфейсі користувача системи
- Адам Пауелл: TLM on UI toolkit/framework; перегляди, життєвий цикл, фрагменти, бібліотеки підтримки
- Алан Віверетт: TLM, Jetpack / AndroidX
- Аллен Хуанг: PM для інтерфейсу користувача, панелі запуску, сповіщень, інтеграції пошуку тощо!
- Ендрю Саппірштейн: Налаштування TLM на Android
- Брахім Ельбучіхі: PM Director for Android Machine Learning and Camera (NN API, ML Kit, CameraX, Camera Platform)
- Чед Брубейкер: інженер-програміст, безпека платформи Android
- Шармен Д’Сільва: PM для конфіденційності
- Чет Хаасе: Головний адвокат Android, зв’язки з розробниками
- Діана Вонг: PM, сумісність програм, використання не-SDK API, ART, NDK
- Даян Хекборн: Менеджер команди Android Framework (ресурси, диспетчер вікон, диспетчер активності, багатокористувацький доступ, друк, спеціальні можливості тощо)
- Е.К. Чунг: Директор UX
- Ян Лейк: Інженер-програміст, Jetpack (фрагменти, навігація, архітектурні компоненти)
- Іліян Малчев: Головний інженер-програміст, Project Mainline
- Якоб Лербаум: Директор зі зв’язків з розробниками для Android
- Джейк Вартон: Інженер-програміст, Jetpack
- Джамал Ісон: PM, Android Studio
- Джефф Бейлі: TLM, Android Open Source Project (AOSP)
- Джефф Шаркі: Інженер-програміст, Android Framework
- Джеффрі ван Гог: Android Studio, компілятори
- Джен Чай: PM, місцезнаходження та контекст, автентифікація, автозаповнення, використання API не SDK, ART
- Карен Нг: Group PM для інструментів розробника Android, Android Studio, Android Tookit і Jetpack
- Пол Бенкхед: Директор з управління продуктами Google Play
- Рохан Шах: Менеджер із продуктів, інтерфейс системи Android
- Ромен Гі: Менеджер команди Android Toolkit/Jetpack
- Сагар Камдар: Директор з управління продуктами Android
- Сб К: Директор з розробки Android Connectivity
- Селім Цінек: Інженер-програміст, інтерфейс системи Android
- Стефані Саад Катбертсон: Старший директор з управління продуктами Android
- Сумір Катарія: Інженер-програміст, Jetpack (WorkManager)
- Тревіс Маккой: PM, платформа Android
- Трістан Апстилл: Заслужений інженер, керівник відділу Android System UI & Intelligence
- Вініт Моді: PM, камера Android
читати далі
OEM-виробники більше не можуть закривати додатки, коли користувач видаляє їх у останніх
Якщо ви коли-небудь користувалися смартфоном китайського бренду, то, мабуть, стикалися з дратівливими функціями «оптимізації акумулятора», які вимкніть усі ваші улюблені програми у фоновому режимі. Така поведінка не тільки дратує користувачів, які очікують, що певні програми з будь-якої причини продовжуватимуть працювати у фоновому режимі, але це також дратує розробників, які страждають від поганих відгуків від користувачів, які не розуміють, що це не програма несправність. Поки Google є досі не повністю вирішуючи це питання (вони відмахнулися від проблеми, заявивши, що така поведінка є ймовірно, вже порушує вимоги документу визначення сумісності Android). є вжиття заходів проти однієї зміни поведінки "збереження батареї", яку використовують деякі OEM-виробники.
«Щоб допомогти впоратися з ситуацією, ми додали тест CTS в Android Q, щоб переконатися, що програма не припиняється після переміщення з Recents».
Android R може внести більше змін у знімки екрана, ніж ми очікували
Google планує додати прокручування знімків екрана в Android R, але в той же час, Команда Android "уважно дивляться на те, як [вони] можуть покращити весь екран [X] для R." Отже, ми можемо перегляньте інші покращення поведінки знімка екрана (ТА скрінкасту) у наступній основній версії Android.
Роз’яснення нового режиму робочого столу Android Q
The перша публічна бета-версія Android Q додав інтерфейс прихованого режиму робочого столу до AOSP і Pixel Launcher. Хоча Google коротко торкнувся функції під час сесії Google I/O ми ніколи не чули безпосередньо від Google, як нова функція вписується в екосистему Android. Google тепер уточнює:
«У Q AOSP «режим робочого столу» є опцією розробника, призначеною для розробників програм. Це дозволяє їм тестувати свої додатки в середовищах з кількома дисплеями та вікнами довільної форми. Раніше не було зручного способу перевірити поведінку програми на додатковому дисплеї та у вікнах, які можна вільно змінювати, на стандартному Android. Ця функція не створена сама по собі і наразі не призначена для звичайних користувачів. Тим не менш, це основа платформи Android для OEM-виробників, щоб впроваджувати інновації та створювати чудові продукти».
Таким чином, ми можемо очікувати, що OEM-виробники створять нативний режим робочого столу Android Q. Наприклад, OnePlus 7 Pro підтримує відображення через HDMI, тож можливо, що OxygenOS 10 на базі Android Q у майбутньому матиме власний інтерфейс режиму робочого столу. Ми також сподіваємося, що Google розробить цю функцію в майбутньому Pixel 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 представив Camera2 API, щоб краще визначити, як програми можуть взаємодіяти з окремими камерами, підключеними до вашого смартфона. Поки 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-виробників будувати на. Ми це вже знаємо Google проти використання накладень ресурсів виконання користувачами для тематичних програм, але для розробників компанія сподіваючись що його Інтерфейс Jetpack Compose фреймворк запропонує «цікаві підходи до динамічного оформлення».
Vulkan-backend для Skia для відтворення інтерфейсу користувача
Минулого року, ми помітили дискусію серед інженерів Google, які говорять про свої плани використання в інтерфейсі Android графічного API Vulkan для рендерингу інтерфейсу користувача. Хоча тепер можна ввімкнути апаратно-прискорений бекенд Vulkan без телефону збій, ми не чули жодних конкретних планів від Google щодо того, коли вони планують розгорнути їх зміни. Ця AMA не дає відповіді на це запитання, але принаймні ми маємо підтвердження того, що вона все ще знаходиться в роботі. За словами Ромена Гі:
«Команда працює над серверною частиною 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; Чи можете ви порівняти свої тести з останньою бета-версією? Також переконайтеся, що ви використовуєте ContentProviderClient під час виконання будь-яких групових операцій."
Project Treble покращив впровадження Android Pie порівняно з Android Oreo
Ми вже бачили, як Project Treble, серйозна низькорівнева реархітектура фреймворку Android, покращила адаптацію нових версій ОС Android. Google вважає, що Treble стоїть за великою кількістю постачальників смартфонів, які приєдналися до Бета-версія Android P минулого року і Бета-версія Android Q цього року. Іліян Мальчев, керівник проекту Treble і Магістральний інженер, каже що наприкінці 2018 року впровадження Android Pie було «втричі» більшим, ніж Android Oreo.
У тому ж коментарі Дік Догерті дражнить, що для діаграми розповсюдження версій Android розробляються більш корисні показники. Діаграма була останнє оновлення в травні, але його дані більш корисні для журналістів, ніж для розробників додатків.
Запис екрана все ще є WIP
Ранні бета-версії Android Q додали позначку функції для базового запису екрану, але сама платформа значно покращила корисність запису екрана на дозволяючи програмам записувати аудіо з інших програм. Стефані Саад Катбертсон сказала, що команда розглядає, «як ми можемо покращити потреби запису екрана ще вчора». Інші бренди смартфонів, як OnePlus, ASUS, Huawei та Samsung мають надійні пристрої для запису екрану, які можуть записувати внутрішній звук, тож Google тут гратиме надолужувати.
Темна тема Все!
Якщо ви пропустили це, Google додає темний режим до більшості своїх програм. Стефані Саад Катбертсон каже очікувати, що всі «основні програми» підтримуватимуть темну тему «в офіційному випуску [Android Q]. Навіть Google Chrome, який зараз примусово перезавантажує сторінку, коли ввімкнено загальносистемну темну тему, буде оновлено, щоб більше не оновлюватись, коли тему ввімкнено змінено.
Так, програми запуску сторонніх розробників працюватимуть із жестами (з часом)
Жести Android – це начебто порушується під час використання програми запуску сторонніх виробників. Це тому, що інтерфейс нещодавніх програм міститься в стандартній програмі запуску, а Google ще цього не зробив розробив спосіб отримати ті самі плавні переходи, які ми бачимо під час використання жестів зі стандартним Pixel Пускач. Адам Коен стверджує Google планує вирішити ці проблеми "якомога швидше після випуску". Далі він каже, що несумісність "буде вирішено в оновленні після Q і буде портовано для нових пристроїв, які запускаються з Q."
Динамічні/логічні розділи створені не для того, щоб вбивати користувацькі ПЗУ
Щоб підтримати Динамічні оновлення системи в Android Q деякі пристрої, як-от Google Pixel 3 і Pixel 3 XL, використовують логічні розділи. Ці розділи можна динамічно змінювати. Ця зміна має доведено, що отримати доступ до кореневого доступу складно, і деякі розробники стурбовані тим, що користувацькі ПЗУ стають ціллю. Іліян Мальчев запевняє нас, що намір не полягає в обмеженні користувацьких ПЗУ. як пояснює він:
«Динамічні розділи не призначені для обмеження того, що ви можете робити з користувальницькими ПЗУ. Вони просто вирішення проблеми фіксованих розмірів розділів і відсутності безпечного способу перерозподілу пристроїв OTA. До динамічних розділів, якщо OEM припустився помилки у розмірі, напр. системний розділ, потім вони буде обмежено таким вибором, що унеможливить оновлення пристрою після певного часу точка. Деякі OEM-виробники на практиці перерозподіляють свої пристрої на OTA, але це а) офіційно не підтримується в Android і б) зміна таблиці розділів вважається досить ризикованою. Динамічні розділи мають на меті полегшити проблему, запровадивши певний рівень опосередкованості між фізичною таблицею розділів і ОС. Це, у свою чергу, дозволяє нам безпечно регулювати розміри розділів на OTA. Що стосується користувальницьких ПЗУ, ви не повинні бути обмежені тим, що ви можете зробити, більше, ніж сьогодні. Підтримка користувальницьких ПЗУ є і продовжує бути тим, що кожен окремий OEM вирішує ввімкнути».
Основна лінія проекту – модуль ART і довжина підтримки
Mainline — це нова ініціатива Google, спрямована на стандартизацію певних бібліотек і пакетів, щоб їх можна було оновлювати незалежно від оновлень платформи. Дехто дивувався, чому Android Runtime (ART) ще не є модулем Mainline, але на Google I/O мені сказали, що складність, пов’язана з модульністю ART, не дозволила їм включити його як один із початкових пакетів APEX. як пояснив як Іліян Малчев, так і Діана Вонг:
«Оновлення Runtime (особливо продуктивності, виправлень GC і основних бібліотек) — це безумовно те, що ми досліджуємо в контексті основної лінії. Ми бачимо багато переваг у можливості зробити ці оновлення узгодженими на всіх пристроях і в кількох випусках за допомогою основної мережі. Це також величезна технічна проблема, оскільки ми думаємо про те, як зробити це найкращим чином для розробників, і, ймовірно, це потребуватиме багаторічних зусиль. Зараз це не те, що 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 Kit, SDK Firebase машинного навчання Google, тож розробники можуть завантажувати кадри зображень у ML Kit для аналізу.
Розширення постачальника CameraX і дата випуску
Розробник програми для камери нарікає на те, що розширені функції камери, такі як Night Sight Google Pixel, недоступні стороннім додаткам для камери. Передбачається, що це можна вирішити за допомогою розширень постачальника CameraX, до яких Джефф Шаркі з Google каже що «всі пристрої Pixel оптимізовані для CameraX Core». Він дражнить, що «аспект розширень буде підтримуватися на нових і майбутніх пристроях». Крім того, Google є «працювати з декількома виробниками, щоб мати можливість надати можливості своїх пристроїв розробникам і користувачам». Хоча це прямо не підтверджено, можливо, ми можемо побачити функції люблю Нічний приціл на Google Pixel 4 стають доступними для сторонніх програм камери, які використовують бібліотеку CameraX.
Містер Шаркі заявляє, що Google планує випуск бета-версії на кінець цього року.
Покращення керування пам’яттю в Android Q
Pixel 3 був розкритикований за наявність численні проблеми після запуску, але Google багато зробив для вирішення цих проблем через численні оновлення після запуску. Керування пам’яттю було одним із найслабших аспектів Pixel 3, але у версії Android Q все повинно бути трохи краще. За словами Селіма Сінека:
«Наприклад, у системному інтерфейсі користувача ми провели ряд великих рефакторингів у Q, щоб зменшити використання оперативної пам’яті сповіщеннями та іншими поверхнями».
Чи отримаємо ми нарешті бездротовий ADB?
Якщо ви хочете бездротово налагодити свій телефон, вам доведеться рутувати свій пристрій. Джамал Ісон з команди Android Studio каже що вони зараз розглядають можливість реалізації цієї функції.
Google все ще проводить тестування на планшетах?
Визнаний розробник XDA Luk1337 запитав, чи Google усе ще тестує AOSP UX на планшетах. Це справедливе запитання, враховуючи дефіцит хороших планшетів Android і наявність помилок у поточних випусках. Аллен Хуан каже що Google все ще «тестує та вносить виправлення щороку» і що компанія тісно співпрацює з партнерами, «щоб забезпечити хорошу роботу планшетів Android».
У повній темі на Reddit є ще багато дописів. Те, що я тут висвітлив, узагальнює всю нову інформацію, яку ми дізналися, але кілька співробітників Google (особливо Дайан Хекборн) заглиблюються в їхні міркування щодо скорочення функції X або нереалізації Y дозвіл. Я рекомендую вам прочитати повну версію AMA, якщо ви хочете трохи краще зрозуміти, як команда Android приймає рішення.
Прочитайте повну версію AMA на /r/AndroidDev