Google je objavio otvorenu mobilnu platformu. Android Izvorni kod za novo izdanje smješten je u Git repozitorij projekta (grana android-12.0.0_r1). Ažuriranja firmwarea dostupna su za Pixel uređaje, kao i za pametne telefone tvrtki Samsung Galaxy, OnePlus, Oppo, Realme, Tecno, Vivo i Xiaomi. Osim toga, kreirane su univerzalne GSI (Generic System Images) verzije, prikladne za različite uređaje temeljene na ARM64 i x86_64 arhitekturama.
Glavne inovacije:
- Predloženo je jedno od najznačajnijih ažuriranja dizajna sučelja u povijesti projekta. Novi dizajn implementira koncept "Material You", koji se reklamira kao sljedeća generacija materijalnog dizajna. Novi koncept automatski će se primjenjivati na sve platforme i elemente sučelja i neće zahtijevati nikakve izmjene od programera aplikacija. U srpnju se planira pružiti programerima aplikacija prvo stabilno izdanje novog alata za razvoj grafičkih sučelja - Jetpack Compose.

Sama platforma ima novi dizajn widgeta. Widgeti su postali vidljiviji, kutovi su bolje zaobljeni, a omogućena je i mogućnost korištenja dinamičnih boja koje odgovaraju temi sustava. Dodane su interaktivne kontrole kao što su potvrdni okviri i prekidači (CheckBox, Switch i RadioButton), na primjer, omogućujući vam uređivanje popisa zadataka u TODO widgetu bez otvaranja aplikacije.

Implementiran je glatkiji vizualni prijelaz na aplikacije pokrenute iz widgeta. Personalizacija widgeta je pojednostavljena - dodan je gumb (krug s olovkom) za brzu rekonfiguraciju položaja widgeta na ekranu, koji se pojavljuje kada widget dodirnete duže vrijeme.


Omogućeni su dodatni načini za ograničavanje veličine widgeta i mogućnost korištenja prilagodljivog rasporeda elemenata widgeta (responzivni izgled) za stvaranje standardnih izgleda koji se mijenjaju ovisno o veličini vidljivog područja (na primjer, možete stvoriti zasebne izglede za tableti i pametni telefoni). Sučelje za odabir widgeta implementira dinamički pregled i mogućnost prikaza opisa widgeta.

- Dodana je mogućnost automatske prilagodbe palete sustava boji odabrane pozadine - sustav automatski detektira prevladavajuće boje, prilagođava trenutnu paletu i primjenjuje promjene na sve elemente sučelja, uključujući područje obavijesti, zaključani zaslon, widgete i kontrolu glasnoće.
- Implementirani su novi animirani efekti, poput postupnog zumiranja i glatkog pomicanja područja prilikom pomicanja, pojavljivanja i pomicanja elemenata na zaslonu. Na primjer, kada otkažete obavijest na zaključanom zaslonu, indikator vremena se automatski proširuje i zauzima prostor koji je obavijest prethodno zauzimala.
- Dizajn padajućeg područja s obavijestima i brzim postavkama je redizajniran. U brze postavke dodane su opcije za Google Pay i upravljanje pametnim domom. Držanjem tipke za uključivanje/isključivanje otvara se Google Assistant, kojem možete narediti da uputite poziv, otvorite aplikaciju ili pročitate članak naglas. Obavijesti sadržaja određenog aplikacijom daju se u općem obliku.

- Dodan efekt Stretch overscroll koji označava da se korisnik pomaknuo izvan područja pomicanja i došao do kraja sadržaja. S novim efektom, čini se da se slika sadržaja rasteže i vraća natrag. Novo ponašanje na kraju pomicanja omogućeno je prema zadanim postavkama, ali u postavkama postoji opcija za vraćanje na staro ponašanje.
- Sučelje je optimizirano za uređaje sa preklopnim zaslonima.

- Implementirani su glatki prijelazi zvuka - pri prelasku s jedne aplikacije koja emitira zvuk na drugu, zvuk prve se sada glatko utišava, a druge se glatko povećava, bez preklapanja jednog zvuka s drugim.
- Modernizirano je sučelje za upravljanje mrežnim vezama u bloku brzih postavki, panelu i konfiguratoru sustava. Dodana je nova internetska ploča koja vam omogućuje brzo prebacivanje između različitih pružatelja usluga i dijagnosticiranje problema.

- Dodana je mogućnost stvaranja snimki zaslona koje pokrivaju ne samo vidljivo područje, već i sadržaj u području za pomicanje. Mogućnost zadržavanja sadržaja izvan vidljivog područja radi za sve aplikacije koje koriste klasu View za izlaz. Za implementaciju podrške za pomicanje snimaka zaslona u programima koji koriste određena sučelja, predložen je ScrollCapture API.

- Poboljšana je značajka automatskog zakretanja sadržaja zaslona, koja sada može koristiti prepoznavanje lica s prednje kamere kako bi odredila treba li zaslon zakrenuti, na primjer kada osoba koristi telefon dok leži. Kako bi se osigurala povjerljivost, informacije se obrađuju u hodu bez međuspremanja slika. Značajka je trenutno dostupna samo na Pixelu 4 i novijim pametnim telefonima.
- Poboljšan način rada slika u slici (PIP, Slika u slici) i povećana glatkoća prijelaznih efekata. Ako omogućite automatski prijelaz na PIP gestom gore-na-home (pomicanjem dna zaslona prema gore), aplikacija se sada odmah prebacuje u PIP način, bez čekanja da animacija završi. Poboljšana promjena veličine PIP prozora s nevideo sadržajem. Dodana je mogućnost skrivanja PIP prozora povlačenjem na lijevi ili desni rub zaslona. Promijenjeno je ponašanje pri dodirivanju PIP prozora - jednim dodirom sada se prikazuju gumbi za upravljanje, a dvostrukim dodirom mijenja se veličina prozora.
- Provedena je značajna optimizacija performansi sustava - opterećenje CPU-a glavnih usluga sustava smanjeno je za 22%, što je zauzvrat dovelo do povećanja trajanja baterije za 15%. Smanjenjem sukoba zaključavanja, smanjenjem latencije i optimizacijom I/O, izvedba prijelaza s jedne aplikacije na drugu se povećava i vrijeme pokretanja aplikacije se smanjuje.
U PackageManageru, kada radite sa snimkama u načinu rada samo za čitanje, sukob zaključavanja smanjen je za 92%. Binderov međuprocesni komunikacijski mehanizam koristi lagano predmemoriranje za smanjenje kašnjenja do 47 puta za neke vrste poziva. Poboljšana izvedba za obradu dex, odex i vdex datoteka, što rezultira bržim učitavanjem aplikacija, posebno na uređajima s malo memorije. Ubrzano je pokretanje aplikacija iz obavijesti, primjerice, pokretanje Google Photos iz obavijesti sada je 34% brže.
Izvedba upita baze podataka poboljšana je korištenjem ugrađenih optimizacija u operaciji CursorWindow. Za male količine podataka, CursorWindow je postao 36% brži, a za skupove od više od 1000 redaka, ubrzanje može biti do 49 puta.
Predloženi su kriteriji za razvrstavanje uređaja prema učinku. Na temelju mogućnosti uređaja, dodjeljuje mu se klasa performansi, koja se zatim može koristiti u aplikacijama za ograničavanje funkcionalnosti kodeka na uređajima male snage ili za obradu multimedijskog sadržaja više kvalitete na moćnom hardveru.
- Implementiran je način hibernacije aplikacije, koji omogućuje, ako korisnik nije izričito komunicirao s programom dulje vrijeme, automatski resetirati prethodno dodijeljene dozvole aplikaciji, zaustaviti izvršenje, vratiti resurse koje koristi aplikacija, poput memorije, i blokirati pokretanje pozadinskog rada i slanje push obavijesti. Način se može koristiti za većinu aplikacija i omogućuje vam zaštitu korisničkih podataka kojima davno zaboravljeni programi i dalje imaju pristup. Po želji, način hibernacije može se selektivno onemogućiti u postavkama.
- Animacija prilikom rotacije zaslona je optimizirana, smanjujući odgodu prije rotacije za približno 25%.
- Struktura uključuje novu tražilicu visokih performansi AppSearch, koja vam omogućuje indeksiranje informacija na uređaju i izvođenje pretraživanja cijelog teksta s rezultatima rangiranja. AppSearch nudi dvije vrste indeksa - za organiziranje pretraživanja u pojedinačnim aplikacijama i za pretraživanje cijelog sustava.
- Dodan je Game Mode API i odgovarajuće postavke koje vam omogućuju upravljanje profilom performansi igre - na primjer, možete žrtvovati performanse kako biste produljili trajanje baterije ili koristiti sve dostupne resurse za postizanje maksimalnog FPS-a.
- Dodana funkcija play-as-you-download za preuzimanje resursa igre u pozadini tijekom postupka instalacije, što vam omogućuje da počnete igrati prije nego što preuzimanje završi. primjena.
- Povećana odzivnost i brzina reakcije pri radu s obavijestima. Na primjer, kada korisnik dodirne obavijest, ona ga sada odmah vodi u pridruženu aplikaciju. Aplikacije ograničavaju korištenje trampolina za obavijesti.
- Optimizirani IPC pozivi u Binderu. Korištenjem nove strategije predmemoriranja i uklanjanjem sukoba zaključavanja, kašnjenje je značajno smanjeno. Sveukupno, performanse Binder poziva su se otprilike udvostručile, ali u nekim su područjima postignuta još značajnija ubrzanja. Na primjer, pozivanje refContentProvider() postalo je 47 puta brže, releaseWakeLock() 15 puta brže, a JobScheduler.schedule() 7.9 puta brže.
- Kako bi se spriječili potencijalni problemi s izvedbom, aplikacijama je zabranjeno pokretanje usluga u prvom planu dok rade u pozadini, osim u nekoliko posebnih slučajeva. Za početak rada dok ste u pozadini, preporučuje se korištenje WorkManagera. Kako bi se pojednostavio prijelaz, u JobScheduleru je predložena nova vrsta posla, koja počinje odmah, ima povećani prioritet i pristup mreži.
- Sučelje Privacy Dashboard implementirano je s općim pregledom svih postavki dopuštenja, što vam omogućuje da razumijete kojim korisničkim podacima aplikacije imaju pristup. Sučelje također uključuje vremensku traku koja vizualizira povijest pristupa aplikacije mikrofonu, kameri i podacima o lokaciji. Za svaku aplikaciju možete vidjeti detalje i razloge za pristup osjetljivim podacima.

- Na ploču su dodani indikatori aktivnosti mikrofona i kamere koji se pojavljuju kada aplikacija pristupi kameri ili mikrofonu. Kada kliknete na indikatore, pojavljuje se dijaloški okvir s postavkama koji vam omogućuje da odredite koja aplikacija radi s kamerom ili mikrofonom i, ako je potrebno, opozovete dopuštenja.
- U skočni blok brzih postavki dodani su prekidači pomoću kojih možete prisilno isključiti mikrofon i kameru. Nakon isključivanja, pokušaji pristupa kameri i mikrofonu rezultirat će obavijesti i slanjem praznih podataka aplikaciji.

- Dodana je nova obavijest koja se pojavljuje na dnu zaslona kad god aplikacija pokuša pročitati sadržaj međuspremnika putem poziva funkcije getPrimaryClip(). Ako se sadržaj iz međuspremnika kopira u istu aplikaciju u kojoj je dodan, obavijest se ne pojavljuje.
- Dodano je zasebno dopuštenje BLUETOOTH_SCAN za skeniranje uređaja u blizini putem Bluetootha. Prethodno je ova mogućnost bila omogućena na temelju pristupa informacijama o lokaciji uređaja, što je rezultiralo potrebom davanja dodatnih dopuštenja aplikacijama koje zahtijevaju uparivanje s drugim uređajem putem Bluetootha.
- Moderniziran je dijalog za pristup informacijama o lokaciji uređaja. Korisnik sada ima mogućnost dati aplikaciji informaciju o točnoj lokaciji ili dati samo približne podatke, kao i ograničiti ovlaštenje samo na aktivnu sesiju s programom (zabraniti pristup u pozadini). Razina točnosti podataka vraćenih prilikom odabira približne lokacije može se promijeniti u postavkama, uključujući i u odnosu na pojedinačne aplikacije.

- Razvojni programeri aplikacija sada mogu onemogućiti skočne prozore s upozorenjima koji se preklapaju sa sadržajem. Prije je mogućnost prikaza preklapajućih prozora bila kontrolirana zahtjevom za dopuštenja koji se potvrđivao tijekom instalacije aplikacija koje prikazuju preklapajuće prozore. Nisu postojali alati za kontrolu preklapa li se sadržaj s aplikacijama čiji su se prozori preklapali. Prilikom korištenja poziva Window#setHideOverlayWindows() Svi prozori koji se preklapaju sa sadržajem sada će se automatski sakriti. Na primjer, skrivanje se može omogućiti prilikom prikazivanja posebno važnih informacija, kao što je potvrda transakcije.
- Aplikacije dobivaju dodatne postavke za ograničavanje operacija obavijesti dok je zaslon zaključan. Prethodno ste samo mogli kontrolirati vidljivost obavijesti dok je zaslon zaključan, ali sada možete omogućiti obaveznu autentifikaciju za izvođenje bilo koje radnje s obavijestima dok je zaslon zaključan. Na primjer, aplikacija za razmjenu poruka može zahtijevati provjeru autentičnosti prije brisanja ili označavanja poruke kao pročitane.
- Dodan API PackageManager.requestChecksums() za traženje i provjeru kontrolnog zbroja instalirane aplikacije. Podržani algoritmi uključuju SHA256, SHA512 i Merkle Root.
- Web-motor WebView implementira mogućnost korištenja atributa SameSite za kontrolu obrade kolačića. Vrijednost "SameSite=Lax" ograničava slanje kolačića za podzahtjeve s više stranica, kao što je traženje slike ili učitavanje sadržaja putem iframea s druge stranice. U načinu rada "SameSite=Strict", kolačići se ne šalju za bilo koju vrstu zahtjeva između stranica, uključujući sve dolazne veze s vanjskih stranica.
- Nastavljamo raditi na nasumičnom odabiru MAC adresa kako bismo uklonili mogućnost praćenja uređaja kada su povezani na bežičnu mrežu. Neprivilegirane aplikacije imaju ograničen pristup MAC adresi uređaja i poziv getHardwareAddress() sada vraća nultu vrijednost.
- Dodana je mogućnost prilagodbe elemenata sučelja uređajima sa zaobljenim zaslonima. Programeri sada mogu dobiti informacije o zaokruživanju zaslona i prilagoditi elemente sučelja koji padaju na nevidljiva kutna područja. Putem novog API-ja RoundedCorner možete saznati parametre kao što su polumjer i središte zaobljenja, a putem Display.getRoundedCorner() i WindowInsets.getRoundedCorner() možete odrediti koordinate svakog zaobljenog kuta zaslona.

- Dodan je novi CompanionDeviceService API s kojim možete aktivirati aplikacije koje kontroliraju prateće uređaje, poput pametnih satova i uređaja za praćenje fitnessa. API rješava problem pokretanja i povezivanja potrebnih aplikacija kada se prateći uređaj pojavi u blizini. Sustav aktivira uslugu kada je uređaj u blizini i šalje obavijest kada je uređaj isključen ili kada uređaj uđe ili napusti opseg. Aplikacije također mogu koristiti novi profil pratećeg uređaja za lakše postavljanje dopuštenja za pridruživanje uređaju.
- Poboljšan sustav predviđanja kapaciteta. Aplikacije sada mogu tražiti informacije o predviđenoj ukupnoj propusnosti u odnosu na operatera, određenu bežičnu mrežu (Wi-Fi SSID), vrstu mreže i snagu signala.
- Primjena uobičajenih vizualnih efekata, kao što su zamućivanje i izobličenje boja, je pojednostavljena i sada se može primijeniti pomoću RenderEffect API-ja na bilo koji objekt RenderNode ili cijelo vidljivo područje, uključujući u lancu s drugim efektima. Ova vam značajka, na primjer, omogućuje zamućivanje slike prikazane kroz ImageView bez eksplicitnog kopiranja, obrade i zamjene bitmape, premještajući te radnje na stranu platforme. Uz to, predložen je API Window.setBackgroundBlurRadius() s kojim možete zamutiti pozadinu prozora s efektom mat stakla i istaknuti dubinu zamućivanjem prostora koji okružuje prozor.

- Integrirani alati za transkodiranje medijskih tokova koji se mogu koristiti u okruženjima s aplikacijom kamere koja sprema video u HEVC formatu, kako bi se osigurala kompatibilnost s aplikacijama koje ne podržavaju ovaj format. Za takve je primjene funkcija automatskog transkodiranja dodana uobičajenom AVC formatu.
- Dodana je podrška za format slike AVIF (AV1 Format slike), koji koristi tehnologije kompresije unutar okvira iz AV1 formata video kodiranja. Spremnik za distribuciju komprimiranih podataka u AVIF-u potpuno je sličan HEIF-u. AVIF podržava obje slike u HDR (High Dynamic Range) i Wide-gamut prostoru boja, kao iu standardnom dinamičkom rasponu (SDR).
- Unificirani API OnReceiveContentListener predložen je za umetanje i premještanje proširenih vrsta sadržaja (formatirani tekst, slike, video zapisi, audio datoteke itd.) između aplikacija koje koriste različite izvore podataka, uključujući međuspremnik, tipkovnicu i sučelje za povlačenje i ispuštanje.
- Dodan je taktilni povratni efekt, implementiran pomoću vibracijskog motora ugrađenog u telefone, čija frekvencija i intenzitet vibracije ovisi o parametrima trenutno izlaznog zvuka. Novi efekt omogućuje vam da fizički osjetite zvuk i može se koristiti za dodavanje dodatnog realizma igrama i zvučnim programima.
- U Immersive modu, u kojem se program prikazuje na cijelom zaslonu sa skrivenim servisnim pločama, navigacija je pojednostavljena korištenjem kontrolnih pokreta. Na primjer, knjigama, videozapisima i fotografijama sada se može kretati jednim pokretom prsta.
- Kao dio projekta Mainline, koji omogućuje ažuriranje pojedinačnih komponenti sustava bez ažuriranja cijele platforme, pripremljeni su novi ažurirani moduli sustava uz 22 modula dostupna u Android 11. Ažuriranja utječu na komponente koje nisu vezane uz hardver, a koje se preuzimaju putem Google Playa odvojeno od proizvođačevih OTA ažuriranja firmvera. Među novim modulima koji se mogu ažurirati putem Google Playa bez ažuriranja firmvera su ART (Android Runtime) i modul za transkodiranje videa.
- Klasi WindowInsets dodan je API za određivanje položaja prikaza pokazatelja upotrebe kamere i mikrofona (pokazatelji mogu preklapati kontrole u programima raspoređenim na cijelom zaslonu, a putem navedenog API-ja aplikacija može prilagoditi svoje sučelje).
- Za centralno upravljane uređaje dodana je opcija za sprječavanje upotrebe prekidača za isključivanje mikrofona i kamere.
- Za CDM (Companion Device Manager) aplikacije koje rade u pozadini, a koje kontroliraju prateće uređaje kao što su pametni satovi i uređaji za praćenje fitnessa, moguće je pokrenuti usluge u prvom planu.
- Umjesto uvodnika za nosive uređaje Android Wear je, zajedno sa Samsungom, odlučio razviti novu objedinjenu platformu koja kombinira mogućnosti Android i Tizen.
- Proširene uredničke mogućnosti Android za automobilske infotainment sustave i pametne televizore.
Izvor: opennet.ru














