Выпуск мабільнай платформы 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(), пры дапамозе якога можна размыць фон акна c эфектам матавага шкла і вылучыць глыбіню праз размыццё прасторы, навакольнага акно.
      Выпуск мабільнай платформы 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 асобна ад OTA-абнаўленняў ад вытворцы. Сярод новых модуляў, якія змогуць абнаўляцца праз Google Play без абнаўлення прашыўкі - ART (Android Runtime) і модуль для перкадавання відэа.
    • У клас WindowInsets дададзены API для вызначэння пазіцыі адлюстравання індыкатараў выкарыстання камеры і мікрафона (індыкатары могуць перакрываць элементы кіравання ў разгорнутых на ўвесь экран праграмах і праз паказаны API прыкладанне можа скарэктаваць свой інтэрфейс).
    • Для цэнтралізавана кіраваных прылад дададзена магчымасць, якая дазваляе забараніць выкарыстанне перамыкачоў для выключэння мікрафона і камеры.
    • Для выкананых у фоне CDM-прыкладанняў (Companion Device Manager), якія кіруюць спадарожнымі прыладамі, такімі як разумныя гадзіны і фітнес-трэкеры, прадастаўлена магчымасць запускаць актыўныя (foreground) сэрвісы.
    • Замест рэдакцыі для носных прылад Android Wear сумесна з кампаніяй Samsung вырашана развіваць новую уніфікаваную платформу, якая камбінуе магчымасці Android і Tizen.
    • Пашыраны магчымасці рэдакцый Android для аўтамабільных інфармацыйна-забаўляльных сістэм і разумных тэлевізараў.

    Крыніца: opennet.ru

  • Дадаць каментар