Кампанія Google апублікавала рэліз адчыненай мабільнай платформы Android 13. Звязаныя з новым выпускам зыходныя тэксты размешчаны ў Git-рэпазітар праекта (галінка android-13.0.0_r1). Абнаўленні прашыўкі падрыхтаваны для прылад серыі Pixel. Пазней плануецца падрыхтаваць абнаўленні прашывак для смартфонаў вытворчасці Samsung, Asus, HMD (Nokia), iQOO, Motorola, OnePlus, Oppo, Realme, Sharp, Sony, Tecno, vivo і Xiaomi. Дадаткова сфарміраваны ўніверсальныя зборкі GSI (Generic System Images), прыдатныя для розных прылад на базе архітэктур ARM64 і x86_64.
Асноўныя навіны:
- Прапанаваны набор папярэдне падрыхтаваных варыянтаў каляровага афармлення інтэрфейсу, якія дазваляюць крыху карэктаваць колеры ў рамках абранай каляровай схемы. Каляровыя варыянты ўплываюць на вонкавы выгляд усіх кампанентаў аперацыйнай сістэмы, уключаючы фонавыя шпалеры.

- Прадастаўлена магчымасць адаптацыі фону піктаграм любых дадаткаў да каляровай схемы тэмы афармлення або колеру фонавага малюнка.

- У інтэрфейсе кіравання прайграваннем музыкі забяспечана выкарыстанне ў якасці фону малюнкаў вокладак альбомаў.


- Дададзена магчымасць прывязкі да прыкладанняў індывідуальных настроек мовы, якія адрозніваюцца ад настроек мовы, абраных у сістэме.

- Значна палепшана праца на прыладах з вялікімі экранамі, такімі як планшэтныя ПК, Chromebook і смартфоны са складанымі экранамі. Для вялікіх экранаў аптымізавана кампаноўка выпадальнага блока з апавяшчэннямі, хатняга экрана і экрана блакавання сістэмы, якія зараз выкарыстоўваюць усю наяўную экранную прастору. У блоку, які з'яўляецца пры слізгальным жэсце зверху-ўніз, на вялікіх экранах забяспечаны падзел у розныя слупкі хуткіх налад і спісу апавяшчэнняў. Дададзена падтрымка двухпанэльнага рэжыму працы ў канфігуратары, у якім на вялікіх экранах зараз стала бачныя часткі налад.
Палепшаны рэжымы сумяшчальнасці для прыкладанняў. Прапанаваная рэалізацыя панэлі задач, якая паказвае ў ніжняй частцы экрана піктаграмы запушчаных прыкладанняў, якая дазваляе хутка перамыкацца паміж праграмамі і якая падтрымлівае перанос прыкладанняў праз інтэрфейс drag&drop у розныя вобласці шматваконнага рэжыму (split-screen), які падзяляе экран на часткі для працы адначасова з некалькімі прыкладаннямі.

- Павышана зручнасць малявання і ўводу тэксту з выкарыстаннем электроннага пяра. Дададзена абарона ад з'яўлення ілжывых мазкоў пры дотыку сэнсарнага экрана рукамі падчас малявання стілус.
- Для некаторых прылад, такіх як Pixel 6, дададзена падтрымка поўнай віртуалізацыі, якая дазваляе запускаць асяроддзі з іншымі аперацыйнымі сістэмамі. Віртуалізацыя рэалізавана на базе гіпервізара KVM і інструментара crosvm (VVM, Virtual Machine Manager). Апцыянальна даступны рэжым pKVM (Protected KVM), які забяспечвае стражэйшую ізаляцыю асяроддзяў з выкарыстаннем пашырэнняў віртуалізацыі для архітэктуры AArch64. У платформе віртуалізацыю плануюць выкарыстоўваць для падвышэння абароны выканання іншага сістэмнага кода, напрыклад, зачыненых выкананых файлаў і кампанентаў DRM.
- Дададзена магчымасць выбарачнага прадастаўлення паўнамоцтваў для доступу да мультымедыйных файлаў. Калі раней для чытання мультымедыйных файлаў прыходзілася падаваць доступ да ўсіх файлаў у лакальным сховішчы, то зараз доступ можна абмежаваць толькі выявамі, гукавымі файламі ці відэа.

- Рэалізаваны новы інтэрфейс выбару фатаграфій і відэа, які дазваляе даць з дадаткам доступ толькі да абраных малюнкаў і відэа і блакаваць зварот да астатніх файлаў. Раней падобны інтэрфейс быў рэалізаваны для дакументаў. Магчыма праца як з лакальнымі файламі, так і з дадзенымі, размешчанымі ў хмарных сховішчах.

- Дададзены запыт паўнамоцтваў на вывад апавяшчэнняў праграмамі. Без атрымання папярэдняга права на адлюстраванне апавяшчэнняў адпраўка апавяшчэнняў дадаткам будзе блакавацца. Для раней створаных прыкладанняў, разлічаных на выкарыстанне з мінулымі версіямі Android, паўнамоцтвы будуць прадастаўлены сістэмай ад імя карыстальніка.

- Скарочана колькасць прыкладанняў, якія патрабуюць доступу да інфармацыі аб месцазнаходжанні карыстальніка. Напрыклад, прыкладанням якія выконваюць аперацыі сканавання бесправадных сетак зараз не патрабуюцца паўнамоцтвы, звязаныя з вызначэннем месцазнаходжання.
- Пашыраны магчымасці, накіраваныя на павышэнне прыватнасці і інфармаванне карыстальніка аб магчымых рызыках. Акрамя папярэджанняў аб доступе дадатку да буфера абмену ў новай галінцы забяспечана аўтаматычнае выдаленне гісторыі памяшкання дадзеных у буфер абмену пасля вызначанага часу неактыўнасці.
- Дададзена новая ўніфікаваная старонка з настойкамі бяспекі і канфідэнцыяльнасці, у якой рэалізавана наглядная каляровая індыкацыя стану бяспекі і прапанаваны рэкамендацыі па ўзмацненні абароны.

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

- Аптымізавана аперацыя пераносу слоў (разрыў якія не змяшчаюцца ў радок слоў з выкарыстаннем злучка). У новай версіі прадукцыйнасць пераносу павялічана на 200% і зараз практычна не ўплывае на хуткасць адмалёўкі.
- Дададзена падтрымка праграмуемых графічных шэйдараў (аб'ектаў RuntimeShader), якiя вызначаюцца на мове AGSL (Android Graphics Shading Language), які ўяўляе сабой падмноства мовы GLSL, адаптаванае для выкарыстання з рухавічком рэндэрынгу платформы Android. Падобныя шэйдары ўжо выкарыстоўваюцца ў самой платформе Android для рэалізацыі розных візуальных эфектаў, такіх як пульсацыя, размыццё і расцяг пры пракрутцы за мяжу старонкі. Падобныя эфекты зараз можна ствараць і ў дадатках.
- Базавыя Java-бібліятэкі платформы і сродкі распрацоўкі прыкладанняў абноўлены да OpenJDK 11.
- У рамках праекта Mainline, які дазваляе абнаўляць асобныя сістэмныя кампаненты без абнаўлення платформы цалкам, падрыхтаваны новыя абнаўляюцца сістэмныя модулі. Абнаўленні закранаюць не прывязаныя да абсталявання кампаненты, якія загружаюцца праз Google Play асобна ад OTA-абнаўленняў прашыўкі ад вытворцы. Сярод новых модуляў, якія змогуць абнаўляцца праз Google Play без абнаўлення прашыўкі – Bluetooth і Ultra wideband. Праз Google Play таксама распаўсюджваюцца модулі з Photo picker і OpenJDK 11.
- Спрошчана тэсціраванне і адладка новых магчымасцей платформы. Змены зараз можна выбарачна ўключаць для прыкладанняў у раздзеле налад для распрацоўшчыкаў або праз утыліту adb.

- Дададзены API, які дазваляе з дадаткам адмовіцца ад раней атрыманых паўнамоцтваў. Напрыклад, калі ў новай версіі запатрабаванне ў нейкіх пашыраных правах знікла, праграма ў рамках клопату аб канфiдэнцыяльнасцi карыстача можа адклікаць раней атрыманыя правы.
- Дадзена магчымасць рэгістрацыі апрацоўшчыкаў несістэмных шырокавяшчальных аперацый (BroadcastReceiver) у прывязцы да кантэксту іх выкарыстання. Для кіравання экспартам падобных апрацоўшчыкаў дададзены новыя сцягі RECEIVER_EXPORTED і RECEIVER_NOT_EXPORTED, якія дазваляюць выключыць выкарыстанне апрацоўшчыкаў для адпраўкі шырокавяшчальных паведамленняў з іншых прыкладанняў.
- Дададзена падтрымка каляровых вектарных шрыфтоў у фармаце COLRv1 (падмноства шрыфтоў OpenType, якія змяшчаюць акрамя вектарных гліфаў пласт c інфармацыяй аб колеры). Таксама дададзены новы набор шматколерных emoji, які пастаўляецца ў фармаце COLRv1. Новы фармат падае кампактную форму захоўвання, падтрымлівае градыенты, накладанні і трансфармацыі, забяспечвае эфектыўны сціск і дапушчае паўторнае выкарыстанне контураў, што дазваляе істотна паменшыць памер шрыфта. Напрыклад, шрыфт Noto Color Emoji ў растравым уяўленні займае 9MB, а ў вектарным фармаце COLRv1 – 1.85MB.

- У асяроддзі выканання прыкладанняў ART рэалізаваны больш эфектыўны зборшчык смецця, заснаваны на выкарыстанні API ядра Linux userfaultfd, які дазваляе ствараць апрацоўшчыкі зваротаў да нявыдзеленых старонак памяці (page faults) у прасторы карыстальніка. Новы зборшчык смецця забяспечвае фіксаваныя накладныя выдаткі для кожнага загружанага аб'екта, спажывае менш памяці і прыводзіць да скарачэння скампіляванага кода прыкладна на 10%. Ужыванне новага зборшчыка смецця таксама дазваляе падоўжыць час аўтаномнай працы, пазбавіцца ад падвісанняў падчас зборкі смецця і абараніць прыкладанняў ад прымусовага завяршэння пры недахопе памяці ў сістэме.
У ART істотна падвышаная прадукцыйнасць пераключэння на натыўны код і наадварот – JNI-выклікі зараз выконваюцца да 2.5 разоў хутчэй. Код апрацоўкі спасылак (reference processing) падчас выканання пераведзены на працу ў неблакіруючым рэжыме для скарачэння падвісанняў. Дададзены API Reference.refersTo(), які можна выкарыстоўваць для хутчэйшага вяртання памяці. У інтэрпрэтатары паскораны пошук класаў і метадаў. Дададзена магчымасць верыфікацыі байткода на этапе ўстаноўкі, а не пры выкананні, што дазволіла скараціць час запуску прыкладанняў.
- Дададзена падтрымка тэхналогіі Bluetooth LE Audio (Low Energy), якая дазваляе знізіць энергаспажыванне пры перадачы высакаякасных гукавых патокаў праз Bluetooth. У адрозненне ад класічнага Bluetooth новая тэхналогія таксама дазваляе перамыкацца паміж рознымі рэжымамі выкарыстання для дасягнення аптымальных суадносін паміж якасцю і энергаспажываннем.
- Дададзена падтрымка спецыфікацыі MIDI 2.0 і магчымасць падлучэння музычных прылад і кантролераў, якія падтрымліваюць MIDI 2.0, праз порт USB.
- Для прыкладанняў, якія генеруюць ключы, API Keystore і KeyMint зараз падаюць больш дэталёвыя і дакладныя індыкатары памылак і дазваляюць выкарыстоўваць выключэнні java.security.ProviderException для перахопу памылак.
- У AudioManager дададзены API для маршрутызацыі гуку, які дазваляе вызначыць якім чынам будзе апрацаваны гукавы струмень. Дададзены метад getAudioDevicesForAttributes() для атрымання спісу прылад, у праз якія магчымы вывад гуку, а таксама метад getDirectProfilesForAttributes() для вызначэння магчымасці прамога прайгравання гукавых патокаў.
Крыніца: opennet.ru
