Kompania Google publikoi version e platformës mobile të hapur Android 12. Kodi i burimit i lidhur me versionin e ri është vendosur në repositorin Git të projektit (dega android-12.0.0_r1). Përditësimet e firmware janë përgatitur për pajisjet e serisë Pixel, si dhe për smartphone-t e prodhuesve Samsung Galaxy, OnePlus, Oppo, Realme, Tecno, Vivo dhe Xiaomi. Për më tepër, janë formuar ndërtimet universale GSI (Generic System Images), të përshtatshme për pajisje të ndryshme të bazuara në arkitekturën ARM64 dhe x86_64.
Të rejat kryesore:
- Është propozuar një nga përmirësimet më të rëndësishme të dizajnit të ndërfaqes në historinë e projektit. Dizajni i ri realizon konceptin "Material You", i paraqitur si një variant i Material Design të ardhshëm. Koncepti i ri do të aplikohet automatikisht për të gjitha platformat dhe elementet e ndërfaqes, dhe nuk do të kërkojë nga zhvilluesit e aplikacioneve që të bëjnë ndonjë ndryshim. Në korrik, është planifikuar që të ofrohet për zhvilluesit e aplikacioneve lëshimi i parë stabil i toolkit-it të ri për zhvillimin e ndërfaqeve grafike — Jetpack Compose.

Në platformë ka një dizajn të ri për widget-et. Widget-et janë bërë më të dukshme, me kënde më të lakuara, dhe është e mundur të përdoren ngjyra dinamike që përputhen me temën e sistemit. Janë shtuar elementë interaktivë të kontrollit, siç janë kutitë e kontrollit dhe kalimin (CheckBox, Switch dhe RadioButton), për shembull, duke lejuar në widget-in TODO të redaktoni listat e detyrave pa hapur aplikacionin.

Janë realizuar kalime më të qeta vizuale në aplikacionet që janë nisur nga widget-et. Personalizimi i widget-eve është thjeshtuar — është shtuar një buton (rreth me laps) për rregullimin e shpejtë të vendosjes së widget-it në ekran, i cili shfaqet pas një prekjeje të gjatë të widget-it.


Shtohen mënyrat e reja të kufizimit të madhësisë së widget-it dhe mundësia e përdorimit të dizajnit responsiv të elementeve të widget-it për të krijuar dizajne standarde që ndryshojnë në varësi të madhësisë së zonës së dukshme (p.sh., është e mundur të formoni dizajne të ndara për tabletët dhe smartphone-t). Në ndërfaqen e përzgjedhjes së widget-eve është realizuar një parapamje dinamike dhe mundësia e shfaqjes së përshkrimit të widget-it.

- Është shtuar mundësia e automatizmit të adaptimit të paletës së sistemit në ngjyrën e sfondit të zgjedhur — sistemi automatikisht përcakton ngjyrat dominuese, rregullon paletën aktuale dhe aplikon ndryshimet në të gjitha elementet e ndërfaqes, duke përfshirë zonën e njoftimeve, ekranin e bllokimit, widget-et dhe rregullatorin e volumit.
- Janë realizuar efekte të reja animuese, siç janë zvogëlimi gradual dhe zhvendosja e butë e zonave gjatë rrotullimit, shfaqjes dhe lëvizjes së elementeve në ekran. Për shembull, kur një njoftim anulohet në ekranin e bllokimit, treguesi i kohës automatikisht zmadhohet dhe merr hapësirën që më parë e zinte njoftimi.
- I është rishikuar dizajni i zonës së rënë me njoftime dhe cilësimet e shpejta. Mundësitë për Google Pay dhe menaxhimin e shtëpisë inteligjente janë shtuar në cilësimet e shpejta. Duke mbajtur butonin e energjisë, aktivizohet asistentin Google, të cilit mund t’i japësh urdhra për të bërë një thirrje, hapur një aplikacion ose lexuar një artikull me zë. Pamja e përgjithshme e njoftimeve është standardizuar në përmbajtjen e caktuar nga aplikacioni.

- Efekti i shtrirjes së kufijve të rrotullimit (Stretch overscroll) është shtuar, duke dhënë të kuptojë se përdoruesi ka dalë jashtë zonës së rrotullimit dhe ka arritur fundin e përmbajtjes. Pamja e përmbajtjes me efektin e ri duket si të shtrihet dhe të kthehet prapa. Rejima e re e tregimit të fundit të rrotullimit është aktivizuar si parazgjedhje, por në cilësime është parashikuar një opsion për të kthyer sjelljen e vjetër.
- Interfaca është optimizuar për pajisje me ekrane të palosshme.

- Kalimet e zërit janë realizuar më të qeta — kur kalon nga një aplikacion që lëshon zë në një tjetër, zëri i aplikacionit të parë tani zbehet gradualisht, ndërsa ai i dytë rritet gradualisht, pa përplasje të zërit të njërit mbi tjetrin.
- Ndërfaqja e menaxhimit të lidhjeve rrjetësore në bllokun e cilësimeve të shpejta, panelin dhe konfiguruesin sistemik është modernizuar. Është shtuar një panel i ri Interneti që lejon kalim të shpejtë midis ofruesve të ndryshëm dhe diagnostikimin e problemeve.

- Është shtuar mundësia e krijimit të screenshot-eve që mbulojnë jo vetëm zonën e dukshme, por edhe përmbajtjen në zonën e rrotullimit. Mundësia e ruajtjes së përmbajtjes jashtë zonës së dukshme funksionon për të gjitha aplikacionet që përdorin për output klasën View. Për të zbatuar mbështetje për screenshot-et e rrotullueshme në programet që përdorin ndërfaqe specifike, është propozuar API ScrollCapture.

- Funksioni i automatik të rrotullimit të përmbajtjes së ekranit është përmirësuar, tani mund të përdorë njohjen e fytyrës nga kamera e përparme për të përcaktuar nevojën për të rrotulluar ekranin, për shembull, kur personi përdor telefonin shtrirë. Për të siguruar privatësinë, informacioni përpunohet në fluks pa ruajtjen ndërmjetësore të imazheve. Mundësia është për momentin e disponueshme vetëm në smartphone-t Pixel 4 dhe modelet më të reja.
- Është përmirësuar moda "imazhi në imazh" (PIP, Picture in Picture) dhe është rritur qartësia e efekteve të kalimit. Në rast se aktivizohet kalimi automatik në PIP me gjestin up-to-home (në lartësi të faqes) aplikacioni tani kalon menjëherë në modin PIP, pa pritur përfundimin e animacionit. Është përmirësuar ndryshimi i madhësisë së dritareve PIP me përmbajtje që nuk është video. Shtohet mundësia për të fshehur dritaren PIP duke e tërhequr atë në anën e majtë ose të djathtë të ekranit. Comportamenti kur preket dritarja PIP është ndryshuar — një prekje tani tregon butonat e kontrollit, ndërsa një prekje dyfish ndryshon madhësinë e dritares.
- Është realizuar një optimizim i rëndësishëm i performancës së sistemit — ngarkesa në CPU e shërbimeve kryesore të sistemit është ulur me 22%, gjë që ka çuar në një rritje të kohës së funksionimit për 15%. Përmes uljes së konkurrencës së bllokimeve, reduktimit të vonesave dhe optimizimit të hyrjes/daljes, është rritur performanca e kalimit nga një aplikacion në tjetrin dhe është zvogëluar koha e nisjes së aplikacioneve.
Në PackageManager, gjatë punës me snapshot-et në modalitetin e leximit, konkurrenca e bllokimeve është ulur me 92%. Në mekanizmin e bashkëveprimit në mes të proceseve Binder është aplikuar një memorie e lehtë e cila e ka lejuar uljen e vonesave në 47 herë për disa lloje të thirrjeve. Është rritur performanca e përpunimit të skedarëve dex, odex dhe vdex, çka ka çuar në një ulje të kohës së ngarkesës së aplikacioneve, veçanërisht në pajisjet me memorie të vogël. Është përshpejtuar nisja e aplikacioneve nga njoftimet, për shembull, nisja e Google Photos nga njoftimi tani realizohet 34% më shpejt.
Përmirësuar performanca e pyetjeve në DB përmes aplikimit të optimizimeve inline në operacionin CursorWindow. Për sasi të vogla të të dhënave, CursorWindow është bërë më i shpejtë me 36%, ndërsa për grupe që përfshijnë më shumë se 1000 rreshta, shpejtësia mund të arrijë deri në 49 herë.
Kriteret janë proponuar për klasifikimin e pajisjeve sipas performancës. Në varësi të mundësive të pajisjes, i jepet një klasë performance që më pas mund të përdoret në aplikacione për të kufizuar funksionalitetin e kodeve në pajisjet me fuqi të ulët ose për të punuar me përmbajtje multimediale me cilësi më të lartë në pajisje më të fuqishme.
- Është realizuar moduli i hibernimit të aplikacioneve, që lejon që nëse përdoruesi nuk ka ndërvepruar për një kohë të gjatë me programin, automatikisht të anulojë autorizimet e dhëna më parë aplikacionit, të ndalojë ekzekutimin, të kthjellojë burimet e përdorura nga aplikacioni, si memoria, dhe të bllokojë nisjen e punëve në sfond dhe dërgimin e njoftimeve push. Ky moduli mund të aplikohet për shumicën e aplikacioneve dhe ndihmon në ruajtjen e të dhënave të përdoruesit, të cilat ende janë qasje nga programet e harruara. Nëse dëshirohet, moduli i hibernimit mund të çaktivizohet selektivisht në cilësime.
- Animacioni gjatë rrotullimit të ekranit është optimizuar, duke reduktuar vonesën përpara rrotullimit me rreth 25%.
- Në përbërje është përfshirë një motor kërkimi me performancë të lartë, AppSearch, që lejon indeksimin e informacionit në pajisje dhe kryerjen e kërkimeve me tekst të plotë me renditjen e rezultateve. AppSearch ofron dy lloje indekset - për organizimin e kërkimeve në aplikacione të veçanta dhe për kërkimin në të gjithë sistemin.
- Është shtuar API Game Mode dhe cilësimet përkatëse që lejojnë menaxhimin e profilit të performancës së lojës - për shembull, mund të sakrifikosh performancën për të zgjatur jetëgjatësinë e baterisë ose të përdorësh të gjitha burimet e disponueshme për të arritur FPS maksimale.
- Është shtuar funksioni play-as-you-download për shkarkimin e burimeve të lojërave në sfond gjatë procesit të instalimit, që lejon fillimin e lojës para se shkarkimi të përfundojë.
- Është rritur përgjegjshmëria dhe shpejtësia e reagimit kur punohet me njoftimet. Për shembull, tani, me prekjen e përdoruesit në një njoftim, ka një kalim të menjëhershëm në aplikacionin e lidhur. Në aplikacione, përdorimi i përpunuesve ndërmjetës të njoftimeve (notification trampoline) është kufizuar.
- Është optimizuar thirrjet IPC në Binder. Falë përdorimit të një strategie të re të ruajtjes dhe eliminimit të konflikteve gjatë bllokimeve, është arritur të reduktohen ndjeshëm vonesat. Në formën e përgjithshme, performanca e thirrjeve të Binder është rritur rreth dy herë, por në disa fusha është arritur të përmirësohet akoma më shumë. Për shembull, thirrja e refContentProvider() është bërë 47 herë më e shpejtë, releaseWakeLock() 15 herë dhe JobScheduler.schedule() 7.9 herë.
- Me qëllim parandalimin e problemeve të mundshme me performancën, aplikacioneve u ndalohet të aktivizojnë shërbimet me përparësi (foreground service) gjatë punës në mënyrë të prapambetur, përveç disa rasteve speciale. Për të aktivizuar punët gjatë qëndrimit në prapavijë, rekomandohet të përdoret WorkManager. Për të thjeshtuar kalimin, është ofruar një lloj i ri punësh në JobScheduler, i cili aktivizohet menjëherë, ka përparësi më të lartë dhe qasje në rrjet.
- Është zbatuar ndërfaqja Privacy Dashboard me një pamje të përgjithshme të të gjitha cilësimeve të autorizimeve, që lejon të kuptosh se cilat të dhëna të përdoruesit kanë akses aplikacionet. Në ndërfaqe gjithashtu është e disponueshme një shkallë kohe që vizualizon historinë e aksesit të aplikacioneve në mikrofon, kamerë dhe të dhëna për vendndodhjen. Për çdo aplikacion, mund të shihen detajet dhe arsyet e aksesit në të dhënat e privatësisë.

- Paneli është pasuruar me tregues aktiviteti për mikrofonin dhe kamerën, që shfaqen kur aplikacioni ka akses në kamerë ose mikrofon. Kur klikoni në treguesit, shfaqet një dialog me cilësimet që lejon përcaktimin se cili aplikacion po punon me kamerën ose mikrofonin, dhe nëse është e nevojshme, të revokoni autorizimet.
- Në bllokun e shpejtë të cilësimeve janë shtuar kalimtarë, me anë të të cilëve mund të fikni me forcë mikrofonin dhe kamerën. Pas fikjes, përpjekjet për të aksesuar kamerën dhe mikrofonin do të çojnë në shfaqjen e një njoftimi dhe përcjelljen e të dhënave të zbrazëta aplikacionit.

- Është shtuar një njoftim i ri, që shfaqet në fund të ekranit çdo herë që aplikacioni përpiqet të lexojë përmbajtjen e buferit të kopjimit përmes thirrjes së funksionit getPrimaryClip(). Nëse përmbajtja nga buferi i kopjimit kopjohet në të njëjtin aplikacion në të cilin është shtuar, njoftimi nuk shfaqet.
- Shtuar autorizimi i veçantë BLUETOOTH_SCAN për skanimin e pajisjeve të afërta përmes Bluetooth. Më parë, kjo mundësi ofrohej vetëm nëse kishte akses në informacionet mbi vendndodhjen e pajisjes, duke kërkuar kështu dhënien e autorizimeve shtesë për aplikacioneve që kërkojnë lidhje me një pajisje tjetër përmes Bluetooth.
- Dialogu për modernizimin e dhënies së qasshmërisë në informacione mbi vendndodhjen e pajisjes është përmirësuar. Tani përdoruesi ka mundësinë të japë aplikacionit të dhëna të vendndodhjes së saktë ose të ofrojë vetëm të dhëna të afërta, si dhe të kufizojë fuqitë në vetëm seancën aktive të punës me programin (ndaloni qasshmërinë gjatë qëndrimit në sfond). Nivelin e saktësisë së të dhënave të ofruara kur zgjidhet vendndodhja e afërt mund ta ndryshoni në cilësimet, duke përfshirë lidhjen me aplikacionet e veçanta.

- Për zhvilluesit e aplikacioneve është ofruar mundësia për të çaktivizuar dritaret e jashtme me paralajmërime që mbulojnë përmbajtjen. Më parë, mundësia e shfaqjes së dritareve mbuluese u rregullua përmes kërkesës për autorizim, të cilat ishin konfirmuar gjatë instalimit të aplikacioneve që shfaqnin dritare mbuluese. Nuk kishte mjete që lejonin të ndikoheshin në mbulimin e përmbajtjes nga aplikacione të cilat ishin mbuluese. Me përdorimin e thirrjes Window#setHideOverlayWindows() të gjitha dritaret mbuluese tani do të fshihen automatikisht. Për shembull, fshirja mund të aktivizohet në shfaqjen e informacionit të veçantë siç është konfirmimi i transaksionit.
- Aplikacioneve u janë ofruar cilësime shtesë për kufizimet e operacioneve me njoftime gjatë bllokimit të ekranit. Më parë, vetëm ishte ofruar mundësia e menaxhimit të dukshmërisë së njoftimeve gjatë bllokimit të ekranit, ndërsa tani mund të aktivizohet autentikimi i detyrueshëm për kryerjen e çdo veprimi me njoftime gjatë bllokimit të ekranit. Për shembull, një aplikacion për shkëmbimin e mesazheve mund të kërkojë ta kryejë autentikimin përpara se të fshijë një mesazh ose ta shënojë si të lexuar.
- Është shtuar API PackageManager.requestChecksums() për kërkimin dhe verifikimin e checksum-it të aplikacionit të instaluar. Mbështeten algoritme si SHA256, SHA512 dhe Merkle Root.
- Në motorin web WebView është zbatuar mundësia e përdorimit të atributit SameSite për menaxhimin e Cookie. Vlerat "SameSite=Lax" kufizojnë dërgimin e Cookie për kërkesa ndërsite, siç janë kërkesat për imazhe ose ngarkimin e përmbajtjes përmes iframe nga një sit tjetër. Në modalitetin "SameSite=Strict", Cookie nuk dërgohen për asnjë lloj kërkese ndërsite, përfshirë të gjitha lidhjet hyrëse nga sitet e jashtme.
- Është vazhduar puna mbi randomizimin e adresave MAC për të përjashtuar mundësinë e ndjekjes së pajisjes kur është e lidhur me një rrjet të paelin. Për aplikacionet e paprivilegjuara, është kufizuar qasja në adresën MAC të pajisjes dhe kur thirret funksioni getHardwareAddress() tani kthehet një vlerë e zbrazët.
- Shtohet mundësia e adaptimit të elementeve të ndërfaqes për pajisjet me ekrane të rrumbullakosur. Të zhvilluesit tani mund të marrin informacion mbi këndet e rrumbullakosura dhe të rregullojnë elementet e ndërfaqes që bien në zonat e padukshme. Përmes API-së së re RoundedCorner, mund të mësohen parametra të tillë si rrezja dhe qendra e rrumbullakosjes, ndërsa përmes Display.getRoundedCorner() dhe WindowInsets.getRoundedCorner() përcaktohen koordinatat e çdo këndi të rrumbullakosur të ekranit.

- Është shtuar një API i ri CompanionDeviceService, që mundëson aktivizimin e aplikacioneve që kontrollojnë pajisje shoqëruese, siç janë orët inteligjente dhe treguesit e aktivitetit. API zgjidh problemin e aktivizimit dhe lidhjes së aplikacioneve të nevojshme kur një pajisje shoqëruese është afër. Sistemi aktivizon shërbimin kur pajisja është në afërsi dhe dërgon një njoftim kur pajisja lidhet ose shkëputet nga zona e dukshmërisë. Aplikacionet gjithashtu mund të përdorin profilin e ri të pajisjeve shoqëruese për të thjeshtuar konfigurimin e autorizimeve për t'u lidhur me pajisjen.
- Është përmirësuar sistemi i parashikimit të kapacitetit. Aplikacionet tani mund të kërkojnë informacione mbi kapacitetin e parashikuar të përgjithshëm në lidhje me operatorin, një rrjet të veçantë wireless (Wi-Fi SSID), llojin e rrjetit dhe nivelin e sinjalit.
- Është thjeshtuar aplikimi i efekteve vizuale standarde, si blur dhe ndryshimi i ngjyrave, të cilat tani mund të aplikohen me ndihmën e API-së RenderEffect për çdo objekt RenderNode ose të gjithë zonën e dukshme, duke përfshirë zinxhirin me efekte të tjera. Ky funksionalitet, për shembull, lejon që të zbutet një imazh i paraqitur përmes ImageView, pa kopjim, përpunim dhe zëvendësim të qartë të bitmap-it, duke lënë këto veprime në anën e platformës. Po ashtu është ofruar një API Window.setBackgroundBlurRadius(), me anë të së cilës mund të zbutet sfondi i dritares me efektin e xhamit të mjegullt dhe të theksohet thellësia përmes mjegullës së hapësirës përreth dritares.

- Janë integruar mjete për kodimin e përshtatshëm të rrjedhave multimediatike, të cilat mund të përdoren në mjedise me aplikacione që punojnë me kamerën, duke ruajtur video në formatin HEVC, për të siguruar përputhshmërinë me aplikacionet që nuk e mbështesin këtë format. Për këto aplikacione është shtuar funksioni i kodimit automatik në një format më të zakonshëm AVC.
- Shtohet mbështetje për formatin e imazheve AVIF (AV1 Image Format), i cili përdor teknologjitë e kompresimit intra-kadri nga formati i kodimit të videove AV1. Konteineri për shpërndarjen e të dhënave të kompresuara në AVIF është plotësisht analog me HEIF. AVIF mbështet si imazhe në HDR (High Dynamic Range) dhe hapësirën ngjyrorë Wide-gamut, ashtu edhe në Standard Dynamic Range (SDR).
- Është propozuar një API i unifikuar OnReceiveContentListener për ngjitjen dhe lëvizjen midis aplikacioneve për lloje të zgjeruara të përmbajtjes (tekst i formatizuar, imazhe, video, skedarë audio etj.), duke përdorur burime të ndryshme të dhënash, duke përfshirë buferin e transferimit, tastierën dhe ndërfaqen drag&drop.
- Është shtuar efekti i ndjeshmërisë nëpërmjet motorit të vibratorit të integruar në telefon, frekuenca dhe intensiteti i vibrimit të të cilit varen nga parametrat e tingullit që po shfaqet aktualisht. Ky efekt i ri lejon ndjeshmëri fizike të tingullit dhe mund të përdoret për të shtuar realizmin në lojëra dhe programe audio.
- Në modalitetin e zhytjes (Immersive mode), ku programi shfaqet në ekran të plotë duke fshehur panelat e shërbimit, navigimi është lehtësuar me ndihmën e Gestures kontrolluese. Për shembull, në aplikacionet për leximin e librave, shikimin e videove dhe punën me fotografi, tani është e mundur të lëvizni me një lëvizje të vetme.
- Në kuadër të projektit Mainline, i cili lejon përditësimin e komponentëve të veçantë të sistemit pa përditësimin e gjithë platformës, janë përgatitur modulet e reja sistemike që mund të përditësohen, përveç 22 moduleve që janë të disponueshme në Android 11. Përditësimet prekin komponentët e pakërcyer me pajisjen, të cilët shkarkohen përmes Google Play veçmas nga përditësimet OTA të softuerit nga prodhuesi. Ndër modulet e reja që mund të përditësohen përmes Google Play pa përditësimin e softuerit janë ART (Android Runtime) dhe moduli për rikodimin e videove.
- Në klasën WindowInsets është shtuar një API për të përcaktuar pozita për shfaqjen e treguesve të përdorimit të kamerës dhe mikrofonit (treguesit mund të mbivendosen te elementet e kontrollit në aplikacione me ekran të plotë dhe përmes këtij API, aplikacioni mund të rregullojë ndërfaqen e tij).
- Për pajisjet që administrohen në mënyrë të centralizuar është shtuar mundësia për të ndaluar përdorimin e ndërruesve për të fikur mikrofonin dhe kamerën.
- Për aplikacionet CDM (Companion Device Manager) që operojnë në sfond dhe menaxhojnë pajisje shoqëruese si orët inteligjente dhe treguesit e aktivitetit, është ofruar mundësia për të aktivizuar shërbime aktive (foreground).
- Në vend të redaksisë për pajisjet e veshura Android Wear, është vendosur në bashkëpunim me kompaninë Samsung që të zhvillohet një platformë e re unike, që kombinohet me mundësitë e Android dhe Tizen.
- Kanalet e redaktimeve Android për sistemet infotainment të automjeteve dhe televizorët e mençur janë zgjeruar.
Burimi: opennet.ru














