Випуск мобільної платформи Android 12

Компанія Google опублікувала реліз відкритої мобільної платформи Android 12. Пов'язані з новим випуском вихідні тексти розміщені в Git-репозиторії проекту (гілка android-12.0.0_r1). Оновлення прошивки підготовлені для пристроїв серії Pixel, а також для смартфонів виробництва Samsung Galaxy, OnePlus, Oppo, Realme, Tecno, Vivo та Xiaomi. Додатково сформовані універсальні збірки GSI (Generic System Images), які підходять для різних пристроїв на базі архітектур ARM64 та x86_64.

Основні нововведення:

  • Запропоновано одне із найбільш значних оновлень оформлення інтерфейсу в історії проекту. Новий дизайн реалізує концепцію «Material You», що підноситься як варіант Material Design наступного покоління. Нова концепція буде автоматично застосована для всіх платформ та елементів інтерфейсу, і не вимагатиме від розробників додатків внесення будь-яких змін. У липні розробникам програм планується надати перший стабільний випуск нового тулкіта для розробки графічних інтерфейсів - Jetpack Compose.
    Випуск мобільної платформи Android 12

    У самій платформі виділяється нове оформлення віджетів. Віджети зроблені помітнішими, посилено округлення кутів, надано можливість використання динамічних кольорів, що відповідають системній темі оформлення. Додані інтерактивні елементи керування, такі як прапорці та перемикачі (CheckBox, Switch та RadioButton), наприклад, що дозволяють у віджеті TODO редагувати списки завдань, не відкриваючи програму.

    Випуск мобільної платформи Android 12

    Реалізовано більш гладкий візуальний перехід до програм, запущених із віджетів. Спрощена персоналізація віджетів — додана кнопка (кружок з олівцем) для швидкого переналаштування розміщення віджету на екрані, що з'являється при тривалому торканні віджету.

    Випуск мобільної платформи Android 12Випуск мобільної платформи Android 12

    Наведено додаткові режими обмеження розміру віджету та можливість використання адаптивної розкладки елементів віджету (responsive layout) для створення типових розкладок, що змінюються залежно від розміру видимої області (наприклад, можна сформувати роздільні розкладки для планшетів та смартфонів). В інтерфейсі вибору віджетів (widget picker) реалізовано динамічний перегляд і можливість відображення опису віджету.

    Випуск мобільної платформи Android 12
  • Додана можливість автоматичної адаптації системної палітри до кольору вибраних шпалер – система автоматично визначає переважаючі кольори, коригує поточну палітру та застосовує зміни до всіх елементів інтерфейсу, включаючи область повідомлень, екран блокування, віджети та регулятор гучності.
  • Реалізовані нові анімовані ефекти, такі як поступове збільшення масштабу та плавний зсув областей при прокручуванні, появі та переміщенні елементів на екрані. Наприклад, при скасуванні повідомлення на екрані блокування, індикатор часу автоматично збільшується і займає простір, який раніше займав сповіщення.
  • Перероблено оформлення області, що випадає, з повідомленнями та швидкими налаштуваннями. До швидких налаштувань додано опції для Google Pay та управління розумним будинком. Під час утримання кнопки живлення забезпечено виклик Google Assistant, якому можна дати команду для здійснення дзвінка, виклику програми або прочитання вголос статті. До загального вигляду наведено повідомлення із вмістом, заданим додатком.
    Випуск мобільної платформи Android 12
  • Додано ефект розтягування меж прокручування (Stretch overscroll), що дає зрозуміти, що користувач вийшов за межу обросту прокручування і досяг кінця вмісту. Зображення вмісту при новому ефекті розтягується і відпружинує назад. Новий режим індикації кінця прокручування активовано за замовчуванням, але в налаштуваннях передбачено опцію повернення старої поведінки.
  • Оптимізовано інтерфейс для пристроїв зі складними екранами.
    Випуск мобільної платформи Android 12
  • Реалізовані більш гладкі звукові переходи - при перемиканні від однієї програми, що виводить звук, до іншого, звучання першого тепер плавно приглушується, а другого плавно наростає без накладання одного звуку на інший.
  • Модернізовано інтерфейс керування мережевими з'єднаннями в блоці швидких налаштувань, панелі та системному конфігураторі. Додано нову панель Internet, що дозволяє швидко перемикатися між різними провайдерами та проводити діагностику проблем.
    Випуск мобільної платформи Android 12
  • Додана можливість створення скріншотів, що охоплюють не лише видиму область, а й вміст у області прокручування. Можливість збереження вмісту поза видимою областю працює для всіх програм, які використовують для виведення клас View. Для реалізації підтримки скріншотів, що прокручуються, в програмах, що використовують специфічні інтерфейси, запропонований API ScrollCapture.
    Випуск мобільної платформи Android 12
  • Покращена функція автоматичного повороту вмісту екрана, яка тепер може використовувати розпізнавання обличчя передньою камерою для визначення потреби повороту екрана, наприклад, коли людина використовує телефон лежачи. Для конфіденційності інформація обробляється на льоту без проміжного збереження зображень. Можливість поки доступна лише на смартфонах Pixel 4 та новіших моделях.
  • Покращено режим «картинка в картинці» (PIP, Picture in Picture) та підвищено плавність перехідних ефектів. У разі включення автоматичного переходу в PIP при жесті up-to-home (зсув низу екрана вгору) програма тепер відразу переводиться в режим PIP, не чекаючи завершення анімації. Покращена зміна розміру PIP-вікон із вмістом, відмінним від відео. Додана можливість сховати PIP-вікно через його перетягування до лівого або правого краю екрана. Змінено поведінку при дотику до PIP-вікна - один дотик тепер призводить до відображення кнопок управління, а подвійне змінює розмір вікна.
  • Оптимізації продуктивності:
    • Проведено значну оптимізацію продуктивності системи — навантаження на CPU основних системних сервісів знизилося на 22%, що призвело до збільшення часу автономної роботи на 15%. За рахунок зниження конкуренції блокувань, скорочення затримок та оптимізації введення/виводу підвищено продуктивність переходу від одного додатка до іншого та скорочено час запуску додатків.

      У PackageManager при роботі зі снапшотами в режимі лише для читання конкурування блокувань знижено на 92%. У механізмі міжпроцесної взаємодії Binder застосовано легковажне кешування, що дозволило скоротити затримки в 47 разів для деяких видів викликів. Підвищено продуктивність обробки файлів dex, odex та vdex, що призвело до скорочення часу завантаження програм, особливо на пристроях з невеликим об'ємом пам'яті. Прискорено запуск програм із сповіщень, наприклад, запуск Google Photos з повідомлення тепер виконується на 34% швидше.

      Підвищено продуктивність запитів до БД через застосування inline-оптимізацій в операції CursorWindow. Для невеликих обсягів даних CursorWindow став швидшим на 36%, а для наборів, що включають більше 1000 рядків, прискорення може досягати 49 разів.

      Запропоновано критерії для класифікації пристроїв продуктивності. Залежно від можливостей пристрою йому надається клас продуктивності, який потім може використовуватися в додатках для обмеження функціональності кодеків на малопотужних пристроях або для роботи з мультимедійним контентом більш високої якості потужного обладнання.

    • Реалізовано режим глибокого сну додатків, що дозволяє якщо користувач давно явно не взаємодіяв з програмою автоматично скинути раніше видані додатком повноваження, зупинити виконання, повернути використовувані додатком ресурси, такі як пам'ять, і заблокувати запуск фонових робіт і відправлення push-повідомлень. Режим може застосовуватися для більшості програм та дозволяє захистити дані користувача, до яких продовжують мати доступ давно забуті програми. За бажанням режим глибокого сну можна вибірково вимкнути в налаштуваннях.
    • Оптимізовано анімацію при повороті екрану, що дозволило знизити затримку перед поворотом приблизно на 25%.
    • До складу включено новий високопродуктивний пошуковий движок AppSearch, що дозволяє індексувати інформацію на пристрої та виконувати повнотекстовий пошук з ранжуванням результатів. AppSearch надає два типи індексів - для організації пошуку в окремих додатках і для пошуку у всій системі.
    • Доданий API Game Mode та відповідні налаштування, що дозволяють керувати профілем продуктивності гри – наприклад, можна пожертвувати продуктивністю для продовження автономної роботи або використовувати всі доступні ресурси для досягнення максимального FPS.
    • Додано функцію play-as-you-download для завантаження ігрових ресурсів у фоні в процесі встановлення, що дозволяє почати грати ще до того, як завершиться завантаження. додатком.
    • Підвищена чуйність та швидкість реакції під час роботи з повідомленнями. Наприклад, при торканні користувача до повідомлення тепер здійснюється миттєвий перехід на пов'язану з ним програму. У додатках обмежено використання проміжних обробників сповіщень (notification trampoline).
    • Здійснено оптимізацію IPC-дзвінків у Binder. Завдяки застосуванню нової стратегії кешування та усунення конфліктів під час блокування вдалося значно скоротити затримки. У загальному вигляді продуктивність викликів Binder збільшилася приблизно вдвічі, але в деяких областях вдалося домогтися ще більш істотного прискорення. Наприклад, виклик refContentProvider() став швидшим у 47 разів, releaseWakeLock() у 15 разів, а JobScheduler.schedule() у 7.9 разу.
    • З метою запобігання можливим проблемам з продуктивністю програм заборонено запускати пріоритетні сервіси (foreground service) під час роботи у фоновому режимі, за винятком кількох спеціальних випадків. Для запуску робіт під час перебування у фоні рекомендовано використовувати WorkManager. Для спрощення переходу запропоновано новий тип робіт у JobScheduler, який запускається відразу, має підвищений пріоритет та доступ до мережі.
  • Зміни, що впливають на безпеку та конфіденційність:
    • Реалізовано інтерфейс Privacy Dashboard із загальним оглядом всіх налаштувань повноважень, що дозволяє зрозуміти до яких даних користувача програми мають доступ. В інтерфейсі також доступна шкала часу, що візуалізує історію доступу додатків до мікрофона, камери та даних про місцезнаходження. Для кожної програми можна переглянути деталі та причини звернення до конфіденційних даних.
      Випуск мобільної платформи Android 12
    • Панель додає індикатори активності мікрофона та камери, що з'являються, коли програма звертається до камери або мікрофона. При натисканні на індикатори з'являється діалог з налаштуваннями, що дозволяє визначити, який саме додаток працює з камерою або мікрофоном, і при необхідності відкликати повноваження.
    • У спливаючу блок швидких налаштувань додані перемикачі, за допомогою яких можна примусового вимкнути мікрофон і камеру. Після вимкнення спроби звернутися до камери та мікрофона призводять до виведення повідомлення та передачі програмі порожніх даних.
      Випуск мобільної платформи Android 12
    • Додано нове повідомлення, яке відображається внизу екрана кожного разу, коли програма намагається прочитати вміст буфера обміну через виклик функції getPrimaryClip(). Якщо вміст з буфера обміну копіюється в тій самій програмі, в якій вона була додана, повідомлення не виводиться.
    • Додано окреме повноваження BLUETOOTH_SCAN для сканування прилеглих пристроїв через Bluetooth. Раніше ця можливість надавалася за наявності доступу до інформації про місцезнаходження пристрою, що призводило до необхідності надання додаткових повноважень додатків, які потребують сполучення з іншим пристроєм Bluetooth.
    • Модернізовано діалог надання доступу до інформації про розташування пристрою. Користувачеві тепер надається можливість передати додатку відомості про точне місцезнаходження або надати лише приблизні дані, а також обмежити дію повноважень лише активним сеансом роботи з програмою (заборонити доступ під час знаходження у фоні). Рівень точності даних, що видаються при виборі приблизного розташування, можна змінити в налаштуваннях, у тому числі у прив'язці до окремих програм.
      Випуск мобільної платформи Android 12
    • Розробникам додатків надано можливість відключити спливаючі вікна із попередженнями, що перекривають вміст. Раніше можливість виведення вікон, що перекривають, регулювалася запитом повноважень, що підтверджуються під час встановлення додатків, що виводять вікна, що перекривають. Інструментів, що дозволяють впливати на перекриття контенту із додатків, вікна яких перекриваються, не було. При використанні дзвінка Window#setHideOverlayWindows() всі вікна, що перекривають вміст, тепер будуть автоматично ховатися. Наприклад, приховування може включатися під час виведення особливо важливої ​​інформації, такої як підтвердження транзакції.
    • Додатки надають додаткові налаштування для обмежень операцій із сповіщеннями під час блокування екрана. Раніше лише надавалася можливість керування видимістю повідомлень під час блокування екрану, а тепер можна включити обов'язкову автентифікацію для здійснення будь-яких дій із повідомленнями під час блокування екрана. Наприклад, програма для обміну повідомленнями може вимагати автентифікації перед видаленням повідомлення або позначкою прочитаним.
    • Доданий API PackageManager.requestChecksums() для запиту та перевірки контрольної суми встановленої програми. Підтримуються такі алгоритми, як SHA256, SHA512 та Merkle Root.
    • У Web-движку WebView реалізована можливість використання атрибуту SameSite для керування обробкою Cookie. Значення «SameSite=Lax» обмежує надсилання Cookie для міжсайтових субзапитів, таких як запит зображення або завантаження контенту через iframe з іншого сайту. У режимі «SameSite=Strict» Cookie не надсилаються для будь-яких видів міжсайтових запитів, включаючи всі вхідні посилання із зовнішніх сайтів.
    • Продовжено роботу над рандомізацією MAC-адрес для виключення можливості відстеження пристрою при підключенні до бездротової мережі. Для непривілейованих програм обмежений доступ до MAC-адреси пристрою і при виклику функції getHardwareAddress() тепер повертається пусте значення.
  • Низькорівневі зміни та покращення для розробників додатків:
    • Додана можливість адаптації елементів інтерфейсу до пристроїв із екранами, що округляють. Розробники тепер можуть отримати інформацію про заокруглення екрана і відкоригувати елементи інтерфейсу, що потрапляють на невидимі кутові області. Через новий API RoundedCorner можна дізнатися такі параметри, як радіус і центр закруглення, а через Display.getRoundedCorner() і WindowInsets.getRoundedCorner() визначити координати кожного кута екрана, що округляє.
      Випуск мобільної платформи Android 12
    • Додано новий API CompanionDeviceService, за допомогою якого можна активувати програми, що управляють супутніми пристроями, такими як розумний годинник та фітнес-трекери. API вирішує проблему із запуском та з'єднанням необхідних програм при появі поблизу супутнього пристрою. Система активує сервіс при знаходженні пристрою поблизу та надсилає повідомлення при відключенні пристрою або при вході або виході пристрою з області видимості. Програми також можуть використовувати новий профіль супутніх пристроїв для спрощення налаштувань повноважень для приєднання до пристрою.
    • Поліпшено систему прогнозування пропускної спроможності. Програми тепер можуть запитати відомості про прогнозовану загальну пропускну здатність у прив'язці до оператора, конкретної бездротової мережі (Wi-Fi SSID), типу мережі та рівня сигналу.
    • Спрощено застосування типових візуальних ефектів, таких як розмивання та спотворення кольорів, які тепер можна застосовувати за допомогою API RenderEffect до будь-якого об'єкта RenderNode або всієї видимої області, у тому числі в ланцюжку з іншими ефектами. Вказана можливість, наприклад, дозволяє розмити картинку, виведену через ImageView, без явного копіювання, обробки та заміни біт-мапу, виносячи ці дії на бік платформи. Додатково запропоновано API Window.setBackgroundBlurRadius(), за допомогою якого можна розмити фон вікна з ефектом матового скла та виділити глибину через розмиття простору навколишнього вікна.
      Випуск мобільної платформи Android 12
    • Інтегровані засоби для перекодування мультимедійних потоків, які можуть використовуватися в оточеннях з програмою для роботи з камерою, що зберігає відео у форматі HEVC, для забезпечення сумісності з програмами, що не підтримують цей формат. Для подібних програм додано функцію автоматичного перекодування до більш поширеного формату AVC.
    • Додано підтримку формату зображень AVIF (AV1 Image Format), в якому задіяні технології внутрішньокадрового стиснення з формату кодування відео AV1. Контейнер для поширення стислих даних в AVIF повністю аналогічний HEIF. AVIF підтримує як зображення HDR (High Dynamic Range) і колірному просторі Wide-gamut, так і в стандартному динамічному діапазоні (SDR).
    • Запропоновано уніфікований API OnReceiveContentListener для вставки та переміщення між програмами розширених видів контенту (відформатованого тексту, зображень, відео, звукових файлів тощо), використовуючи різні джерела надходження даних, включаючи буфер обміну, клавіатуру та інтерфейс drag&drop.
    • Додано реалізований за допомогою вбудованого в телефони вібромотора ефект тактильного зворотного зв'язку, частота і інтенсивність вібрації в якому залежать від параметрів звуку, що виводиться в даний момент. Новий ефект дозволяє фізично відчувати звук і може застосовуватися для надання додаткової реалістичності ігор та звукових програм.
    • У режимі занурення (Immersive mode), у якому програма показується весь екран із прихованням службових панелей, спрощена навігація з допомогою жестів. Наприклад, у програмах читання книг, перегляду відео та роботи з фотографіями тепер можна переміщатися за допомогою одного жесту скидання.
    • У рамках проекту Mainline, що дозволяє оновлювати окремі системні компоненти без оновлення платформи повністю, підготовлені нові оновлювані системні модулі на додаток до 22 модулів, доступних в Android 11. від виробника. Серед нових модулів, які зможуть оновлюватись через Google Play без оновлення прошивки – ART (Android Runtime) та модуль для перкодування відео.
    • До класу WindowInsets додано API для визначення позиції відображення індикаторів використання камери та мікрофона (індикатори можуть перекривати елементи керування у розгорнутих на весь екран програмах та через вказаний API додаток може скоригувати свій інтерфейс).
    • Для централізовано керованих пристроїв додано можливість, що дозволяє заборонити використання перемикачів для вимкнення мікрофона та камери.
    • Для виконуваних у фоні CDM-додатків (Companion Device Manager), що управляють супутніми пристроями, такими як розумний годинник та фітнес-трекери, надано можливість запускати активні (foreground) сервіси.
    • Замість редакції для пристроїв Android Wear, які носять, спільно з компанією Samsung вирішено розвивати нову уніфіковану платформу, що комбінує можливості Android і Tizen.
    • Розширено можливості редакцій Android для автомобільних інформаційно-розважальних систем та розумних телевізорів.

    Джерело: opennet.ru

  • Додати коментар або відгук