Google on välja andnud avatud mobiilse platvormi Android 12. Uue versiooni allikakoodid on paigutatud projekti Git-repositooriumisse (haru android-12.0.0_r1). Püsivara värskendused on valmistatud ette Pixel-seeria seadmete jaoks ning ka Samsung Galaxy, OnePlus, Oppo, Realme, Tecno, Vivo ja Xiaomide tootmistelefonide jaoks. Täiendavalt on loodud universaalsed GSI (Generic System Images) versioonid, mis sobivad erinevatele seadmetele, mis põhinevad ARM64 ja x86_64 arhitektuuridel.
Põhilised uuendused:
- Projektis on esitatud üks ajaloo kõige olulisemaid kasutajaliidese kujundamise uuendusi. Uus disain rakendab „Material You“ kontseptsiooni, mida tutvustatakse järgmise põlvkonna Material Design variandina. Uus kontseptsioon rakendub automaatselt kõigil platvormidel ja liidese elementidel, kusjuures rakenduste arendajatelt ei nõuta mingeid muudatusi. Juulis plaanitakse rakenduste arendajatele esitada esimene stabiilne versioon uut graafiliste liideste arendustööriistade komplekti – Jetpack Compose.

Platvormil on uus vidinate kujundus. Vidinad on tehtud silmatorkavamaks, nurkade ümardamine on suurenenud ja on antud võimalus kasutada dünaamilisi värve, mis vastavad süsteemi teemale. Lisa interaktiivsed juhtnupud, nagu linnukesed ja lülitid (CheckBox, Switch ja RadioButton), mis võimaldavad näiteks TODO vidinas ülesannete loetelu redigeerida ilma rakendust avamata.

Rakenduste visuaalne üleminek, mis on käivitatud vidinatest, on sujuvam. Vidinate isikupärastamine on lihtsustatud — ekraanile vidina paigutuse kiireks ümberseadmiseks on lisatud nupp (ringikujuline pliiats), mis ilmub pikema vajutamise korral vidinale.


Kohandatud vidinate suuruse piiramise režiimid ja võimalus kasutada vidinate elementide kohanduvat paigutust (responsive layout) võimaldavad luua standarditud paigutusi, mis muutuvad sõltuvalt nähtava ala suurusest (näiteks saab luua eristatavad paigutused tahvelarvutitele ja nutitelefonidele). Vidinate valimise liideses (widget picker) on rakendatud dünaamiline eelvaade ja vidina kirjelduse kuvamise võimalus.

- Lisatud on võimalus automaatseks süsteemi paleti kohandamiseks valitud tausta värviga — süsteem määrab automaatselt domineerivad värvid, kohandab praegust paletti ja rakendab muudatused kõikidele liidesekomponentidele, sealhulgas teadete alale, lukustuskuvale, vidinatele ja heliregulaatorile.
- Rakendatud on uusi animatsiooni efekte, nagu sujuv suuruse suurendamine ja alade õrn nihutamine kerimisel, elementide ekraanile ilmumisel ja liikumisel. Näiteks, kui lukustuskuval teade tühistatakse, suurendatakse automaatselt kellaindikaatorit, täites ruumi, mis varem kuulus teatele.
- Väljatõmbeala kujundus on ümber tehtud, lisatud on teated ja kiire seadistamine. Kiirete seadistuste hulka on lisatud valikud Google Pay'le ja nutikodu haldamiseks. Toite nupu pikema vajutamise puhul kutsutakse esile Google Assistant, kellele võib anda käsku helistamisest, rakenduse avamisest või artikli hääletuks lugemisest. Rakenduse määratud sisuga teated on viidud üldise väljanägemise juurde.

- Lisatud on kerimise piiride venitamise efekt (Stretch overscroll), mis annab märku, et kasutaja on kerimisalast väljas ja on jõudnud sisu lõppu. Uue efekti korral venitatakse ja hüpatakse tagasi sisu kuvamine. Uus kerimise lõpu indikaator on vaikimisi aktiveeritud, kuid seadetes on võimalus naasta vana käitumise juurde.
- Kasutajaliides on optimeeritud kokkuvolditavate ekraanidega seadmete jaoks.

- Sujuvama heli ülemineku rakendamine - ühelt heli edastavalt rakenduselt teisele üleminekul vaigistatakse esimene heli sujuvalt ja teise heli kõlatus tõuseb sujuvalt, ilma et need omavahel kattuks.
- Uuendatud võrguhalduse liides kiirete seadistuste, paneeli ja süsteemikonfiguratsiooni plokis. On lisatud uus Interneti-paneel, mis võimaldab kiiresti vahetada erinevate teenusepakkujate vahel ja diagnoosida probleeme.

- Lisatud on võimalus luua ekraanipilte, mis katab mitte ainult nähtava ala, vaid ka sisu keritavas osas. Sisu salvestamine väljaspool nähtavat ala töötab kõigi rakendustega, mis kasutavad väljundi jaoks klassi View. Keritavate ekraanipiltide toetamiseks spetsiifiliste liideste kasutamisel on pakutud API ScrollCapture.

- Kohandatud on ekraani sisu automaatse pööramise funktsiooni, mis suudab nüüd kasutada eesmist kaamerat näotuvastuseks, et määrata, kas ekraani pööramine on vajalik, näiteks siis, kui inimene kasutab telefoni pikali. Privaatsuse tagamiseks töödeldakse teavet reaalajas ilma pilte vahepeal salvestamata. See võimalus on praegu saadaval ainult Pixel 4 ja uuematele nutitelefonidele.
- PIP-režiim (Picture in Picture) on täiustatud, samuti on parandatud üleminekuefektide sujuvust. Kui automaatne üleminek PIP-režiimile aktiveeritakse üles-poole suunatud žestiga (ekraani alumise osa ülespoole liigutamine), lülitub rakendus nüüd kohe PIP-režiimi, ootamata animatsiooni lõppu. PIP-akna suuruse muutmine, kui sisu erineb videost, on paranenud. Lisatud võimalus PIP-aken peita, tõmmates selle vasakule või paremale ekraani äärde. Muudetud on käitumist PIP-akna puudutamisel: ühekordne puudutus kuvab juhtnuppe, samas kui kahekordne muudab akna suurust.
- Süsteemi tootlikkust on oluliselt optimeeritud — põhiteenuste CPU-koormus on vähenenud 22%, mis omakorda on suurendanud autonoomset tööaega 15%. Suuremad lukustamisvõistluste vähendused, viivituste lühenemine ja sisendi/sisendi optimeerimine on parandanud rakenduste vahel ülemineku efektiivsust ning vähendanud rakenduste käivitamise aega.
PackageManageris snapsotide lugemise režiimis on lukustamise konkurents vähenenud 92%. Interprotsesside suhtlemismehhanismis Binder on rakendatud kerget vahemälu, mis on vähendanud viivitusi 47 korda teatud tüüpi kutsete puhul. Dex, odex ja vdex failide töötlemise jõudlust on tõstatatud, mis on vähendanud rakenduste käivitamise aega, eriti väikese mälumahu seadmetes. Rakenduste käivitamine teavitustest, näiteks Google Photos avamine teavitusest, toimub nüüd 34% kiiremini.
Andmebaasi päringute jõudlust on suurendatud inline-optimeerimiste rakendamise kaudu CursorWindow'i operatsioonis. Väikeste andmemahtude korral on CursorWindow kiirus kasvanud 36%, ja üle 1000 rida sisaldavate komplektide korral võib kiirus kasvada kuni 49 korda.
Seadmete klassifitseerimise kriteeriumid on välja pakutud vastavalt nende jõudlusele. Seadmestiku võimete põhjal määratakse jõudlusklass, mida saab seejärel rakendustes kasutada, et piirata dekooderite funktsionaalsust nõrkade seadmete puhul või töötada kõrgema kvaliteediga multimeedia sisuga võimsatel seadmetel.
- Rakenduste talveune režiim on rakendatud, võimaldades automaatselt tühistada rakendusele antud õigused, peatada rakenduse töötamine, vabastada selle ressursid, nagu mälu, ja blokeerida taustatööde käivitamine ja push-teavituste saatmine, kui kasutaja ei ole pikka aega rakendusega aktiivselt suhelnud. Režiimi saab rakendada enamikule rakendustest ning see aitab kaitsta kasutaja andmeid, millele pääsevad ligi ammu unustatud programmid. Soovi korral saab talveune režiimi seadetes valikuliselt välja lülitada.
- Ekraani pööramise animatsiooni on optimeeritud, mis on võimaldanud vähendada pööramise hilinemist umbes 25%.
- Uuendatud on uus kõrge jõudlusega otsingumootor AppSearch, mis võimaldab seadmes teavet indekseerida ja teostada täistekstiotsingut koos tulemuste reastamisega. AppSearch pakub kahte tüüpi indekseid - teatud rakendustes otsingu korraldamiseks ja kogu süsteemi ulatuses otsimiseks.
- Lisatud on API Mängurežiim ja vastavad seaded, mis võimaldavad mängu jõudlusprofiili juhtimist - näiteks on võimalik ohverdada jõudlust, et pikendada autonoomset tööaega, või kasutada kõiki saadaolevaid ressursse maksimaalse FPS-i saavutamiseks.
- Lisatud on funktsioon 'Mängi samal ajal, kui allalaadid', et laadida mängu ressursse taustal paigaldamise käigus, mis võimaldab alustada mängimist juba enne allalaadimise lõppemist.
- Parandatud on reageerimisvõimet ja kiirus, kui tegeletakse teatistega. Näiteks, kui kasutaja puudutab teadet, toimub nüüd kohe sujuv üleminek seotud rakendusele. Rakendustes on piiratud vahepealsete teatiste käitlejate (notification trampoline) kasutamine.
- IPC-kõnede optimeerimine Binderis on lõpule viidud. Uue vahemälu strateegia ja blokeeringute konfliktide kõrvaldamise abil on õnnestunud oluliselt vähendada viivitusi. Üldiselt on Binderi kõnede jõudlus kahekordistunud, kuid mõnedes valdkondades on saavutatud veelgi suuremad kiiruselt tõusud. Näiteks on refContentProvider() kõne kiirus kasvanud 47 korda, releaseWakeLock() 15 korda ja JobScheduler.schedule() 7,9 korda.
- Rakenduste võimalike jõudlusprobleemide vältimiseks on keelatud käivitada esmajärgulisi teenuseid (foreground service) taustatöös, välja arvatud mõned erilised juhtumid. Taustatöös töötamise korral soovitatakse kasutada WorkManagerit. Ülemineku lihtsustamiseks on JobScheduleris tutvustatud uusi tööde tüüpe, mis käivituvad koheselt, omavad kõrgendatud prioriteeti ja juurdepääsu võrku.
- Rakendati privaatsuse juhtpaneel, mis annab ülevaate kõigist volituste seadistustest, võimaldades mõista, millistel andmetel rakendused ligipääsu omavad. Juhtpaneelil on samuti ajaskala, mis visualiseerib rakenduste juurdepääsu ajalugu mikrofonile, kaamerale ja asukohandmetele. Iga rakenduse jaoks on võimalik vaadata üksikasju ja põhjusi, miks on pääsetud konfidentsiaalsetele andmetele.

- Paneelile on lisatud mikrofoni ja kaamera aktiivsuse indikaatorid, mis ilmuvad, kui rakendus pääseb kaamerale või mikrofonile ligi. Indikaatoritele klikkides avaneb dialoog seadistustega, mis võimaldab määrata, milline rakendus töötab kaamera või mikrofoniga, ning vajadusel volitusi tühistada.
- Kiirseadete hüpikaknale on lisatud lülitid, mille abil on võimalik sundida mikrofoni ja kaamerat välja lülitama. Pärast välja lülitamist toovad katsetused kaamerale ja mikrofonile juurdepääsu andmine kaasa teate kuvamise ja rakendusele tühjade andmete edastamise.

- Uus teade on lisatud, mis kuvatakse ekraani alumises osas iga kord, kui rakendus püüdleb kuvada lõikepuhvrisse sisu meetodi getPrimaryClip() kaudu. Kui lõikepuhvri sisu kopeeritakse samas rakenduses, kuhu see lisati, siis teatet kuvatakse.
- Lisatud eraldi volitus BLUETOOTH_SCAN lähedalolevate seadmete skaneerimiseks Bluetoothi kaudu. Varasemalt oli see võimalus saadaval ainult seadme asukohainfot jagades, mis tähendas, et rakendustele, mis vajavad Bluetooth-seadme paaritamiseks lisavolitusi, olid vajalikud täiendavad volitused.
- Täiendatud on seadme asukoha info jagamise dialooge. Kasutajale on nüüd antud võimalus edastada rakendusele täpset asukoha teavet või jagada ainult umbkaudu andmeid ning piirata õiguste kehtivust ainult aktiivses rakenduse seansis (keelata juurdepääs rakenduse töötamise ajal taustal). Umbkaudse asukoha valimisel väljastatav andmete täpsus on seadetes muudetav, sealhulgas rakenduste lõikes.

- Rakenduste arendajatel on võimalus keelata teatiste hüpikaknad, mis katavad sisu. Varem reguleeriti katvate akende kuvamist volituste taotlusega, mis kinnitati rakenduste installimise ajal, mis neid aknaid kuvavad. Ei olnud tööriistu, mis võimaldaksid mõjutada sisu katmist rakendustest, mille aknad on katnud. Kui kasutada kätet Window#setHideOverlayWindows(), siis kõik sisu katvad aknad peidetakse nüüd automaatset. Näiteks võib peitmine käivituda siis, kui kuvatakse äärmiselt olulist teavet, nagu tehingu kinnitamine.
- Rakendustele on lisatud täiendavad seaded, et piirata teavituste toimingute sooritamist lukustatud ekraani ajal. Varem oli saadaval vaid teavituste nähtavuse haldamise võimalus lukustatud ekraani ajal, kuid nüüd on võimalik nõuda kohustuslikku autentimist teavitustega seotud toimingute sooritamiseks lukustatud ekraani ajal. Näiteks võib sõnumirakendus nõuda autentimist enne sõnumi kustutamist või loetuks märkimist.
- Lisatud on API PackageManager.requestChecksums() installitud rakenduse kontrollsummade taotlemiseks ja kontrollimiseks. Toetatakse selliseid algoritme nagu SHA256, SHA512 ja Merkle Root.
- WebView'i veebimootoris on rakendatud SameSite atribuudi kasutamise võimalus küpsiste töötlemise haldamiseks. "SameSite=Lax" väärtus piirab küpsiste saatmist kolmandate osapoolte alamsaadetesse, nagu pildi taotlemine või sisu laadimine iframe'i kaudu teiselt saidilt. Režiimis "SameSite=Strict" ei saadeta küpsiseid ühegi tüüpi kolmandate osapoolte taotlustega, sealhulgas kõikide väliste saitide sissejuhatavad lingid.
- Tööd MAC-aadresside randomiseerimise nimel jätkatakse, et vältida seadme jälgimist traadita võrku ühendamisel. Tavaliste rakenduste jaoks on juurdepääs seadme MAC-aadressile piiratud, ja funktsionaalsuse getHardwareAddress() väljakutsumisel tagastatakse nüüd tühi väärtus.
- Lisatud on kasutajaliidese elementide kohandamise võimalus ümarate ekraanidega seadmetele. Arendajad saavad nüüd teavet ekraani ümarate nurkade kohta ning kohandada liideselemente, mis satuvad nähtamatutesse nurkadesse. Uue API kaudu RoundedCorner on võimalik teada saada selliseid parameetreid nagu raadius ja ümaruse keskus, ning Display.getRoundedCorner() ning WindowInsets.getRoundedCorner() abil määrata iga ümarat nurka ekraanil.

- Lisatud on uus API CompanionDeviceService, millega saab aktiveerida rakendusi, mis haldavad seotud seadmeid, nagu nutikellad ja fitness-trackerid. API lahendab probleemid rakenduste käivitamise ja ühendamisega, kui seotud seade on läheduses. Süsteem aktiveerib teenuse seotud seadme tuvastamisel ja saadab teate seadme välja lülitamisel või kui seade kaob nähtavuspiirkonnast. Rakendused saavad samuti kasutada uut seotud seadmete profiili, et lihtsustada seadme ühendamise õiguste seadistamist.
- Parandatud on läbilaskevõime ennustamissüsteemi. Rakendused saavad nüüd küsida prognoositud koguläbilaskevõimet operaatori, konkreetse traadita võrgu (Wi-Fi SSID), võrgu tüübi ja signaali taseme järgi.
- Lihtsustatud on tavaliste visuaalefektide rakendamine, nagu hägustamine ja värvide moonutamine, mis on nüüd API RenderEffect abil kohandatavad iga RenderNode objekti või kogu nähtava ala kohta, sealhulgas koos teiste efektidega. Näiteks võimaldab see hägustada pilti, mis on kuvatud ImageView kaudu, ilma et oleks vaja selgelt koopiat teha, töödelda ja bitmape asendada, viies need toimingud platvormile. Täiendavalt on pakkuda saanud API Window.setBackgroundBlurRadius(), millega saab akna tausta hägustada mattklaasiefekti abil ja tõsta esile sügavust, hägustades akent ümbritsevat ruumi.

- Integreeritud on tööriistad multimeedia voogude dekodeerimiseks, mida saab kasutada kaamerarakendustes, mis salvestavad video HEVC formaadis, et tagada ühilduvus rakendustega, mis seda formaati ei toeta. Selliste rakenduste jaoks on lisatud automaatse dekodeerimise funktsioon rohkem levinud AVC formaati.
- On lisatud AVIF (AV1 pildiformaat) pildifailide tugi, mis kasutab video kodeerimise AV1 tehnoloogia sisemist kompressiooni. AVIF-i tihendatud andmete konteiner on täielikult analoogne HEIF-iga. AVIF toetab nii HDR (kõrge dünaamiline ulatus) ja laia värvigammi, kui ka standardset dünaamilist ulatust (SDR).
- Pakutud on ühtne API OnReceiveContentListener, mis võimaldab sisestada ja liigutada erinevate rakenduste vahel täiustatud sisu tüüpe (vormindatud tekst, pildid, videod, helifailid jne), kasutades erinevaid andmeallikaid, sealhulgas lõikepõhist, klaviatuuri ja lohista ning loob.
- Lisatud on efekt, mis saavutatakse telefonidesse sisseehitatud vibratsioonimootori abil, mille vibratsiooni sagedus ja intensiivsus sõltuvad hetkel esitatava heli parameetritest. Uus efekt võimaldab füüsiliselt tunda heli ning seda saab kasutada mängude ja heliprogrammide lisarealistuse saavutamiseks.
- Sukeldumisseisundis (Immersive mode), kus rakendus kuvatakse täisekraanil koos abipaneelide varjamisega, on navigeerimine lihtsustatud juhtimisžestide abil. Näiteks e-raamatute lugemise, videote vaatamise ja fotode töötlemise rakendustes saab nüüd liikuda ühe pühkimise žestiga.
- Mainline'i projekti raames, mis võimaldab eraldi süsteemikomponente värskendada ilma kogu platvormi värskendamata, on ette valmistatud uued värskendatavad süsteemimoodulid lisaks Android 11-s saadaval olevatele 22 moodulile. Värskendused puudutavad riistvarast sõltumatuid komponente, mis laaditakse Google Play kaudu eraldi tootja OTA-firmware värskendustest. Uute moodulite hulka, mis saavad värskendatud Google Play kaudu ilma firmware'i värskendamiseta, kuuluvad ART (Android Runtime) ja videotöötlusmoodul.
- Klassi WindowInsets on lisatud API, et määrata kindlaks kaamera ja mikrofoni kasutamise indikaatorite kuvamise asukoht (indikaatorid võivad kattuda täielikult ekraanile laiendatud rakenduste juhtnuppudega ning antud API kaudu saab rakendus oma liidese kohandada).
- Tsentraliseeritud hallatavate seadmete jaoks on lisatud võimalus, mis keelab mikrofoni ja kaamera väljalülitamiseks lülitite kasutamise.
- Taustal töötavate CDM-rakenduste (Companion Device Manager), mis haldavad kaasnevaid seadmeid nagu nutikellad ja spordikellad, puhul on antud võimalus käivitada aktiivseid teenuseid.
- Android Wear'i versiooni arendamise asemel koos ettevõtte Samsungiga otsustati välja arendada uus ühtne platvorm, mis ühendab Androidi ja Tizeni võimalused.
- Androidi versioonide võimalusi on laiendatud automaatorite teabe- ja meelelahutussüsteemide ning nutitelerite jaoks.
Allikas: opennet.ru














