Tvrtka Google objavila je verziju otvorene mobilne platforme Android 14. Izvorni kod vezan za novo izdanje dostupan je u Git repozitoriju projekta (grana android-14.0.0_r1). Firmware ažuriranja pripremljena su za uređaje serije Pixel. Kasnije se planiraju ažuriranja firmwara za pametne telefone proizvođača Samsung Galaxy, iQOO, Nothing, OnePlus, Oppo, Realme, Sharp, Sony, Tecno, vivo i Xiaomi. Dodatno, formirane su univerzalne GSI (Generic System Images) verzije, prikladne za razne uređaje temeljen na ARM64 i x86_64 arhitekturama.
Glavne novine:
- U osnovni sastav platforme uključeno je skladište Health Connect, ranije isporučeno u obliku odvojenog paketa putem Google Playa. Health Connect omogućuje centralizirano pohranjivanje podataka s fitness narukvica i drugih uređaja povezanih sa zdravljem korisnika, a organizira i zajednički pristup različitih aplikacija tim podacima. Pristup postavkama Health Connect sada će biti dostupan putem zadane konfiguracije platforme, na primjer, putem postavki privatnosti može se upravljati kojim točno podacima o zdravlju određene aplikacije mogu pristupiti. Osim toga, u Health Connect dodana je podrška za pohranu informacija o ruti koja je pređena tijekom treninga (korisnik određuje vremenski period za koji će se sačuvati popis točaka). Ruta se može vizualizirati na karti i, uz želju, proslijediti za obradu drugim aplikacijama, nakon izričitog odobrenja korisnika.

- Proširena su sredstva za potvrdu pristupa informacijama o lokaciji. U dijalog s zahtjevom za potvrdu pristupa lokaciji dodan je novi odjeljak s informacijama o tome kada aplikacija prenosi podatke o lokaciji (pristup zabranjen, dopušten samo jednom i dopušten pri svakom korištenju aplikacije) i detaljima gdje se mogu dobiti dodatne informacije o pristupu prenesenim podacima.

- Implementirano je periodično (jednom mjesečno) obavještavanje korisnika o promjenama aplikacija kojima je odobren pristup lokaciji, u metodama prijenosa podataka trećim stranama (na primjer, obavijest se pojavljuje kada aplikacija počne koristiti podatke o lokaciji za prikazivanje oglasa).

- Kada radite s aplikacijama, uvedena je istaživačka funkcija s povratnom strelicom koja se prikazuje kako bi se olakšalo razumijevanje mogućnosti korištenja ekranskog geste za povratak.

- U mehanizmu Sharesheet, koji se koristi za slanje podataka (npr. slika ili linkova) izvan aplikacije ili drugom korisniku, implementirana je opcija dodavanja vlastitih radnji. Na primjer, možete definirati vlastitu listu ChooserAction handlera koji prikazuju aplikacije i korisnike kojima je moguće slati podatke. Dodatno je proširen spektar signala koji se koriste za rangiranje ciljeva za izravno slanje podataka.

- Omogućeno je djelomično davanje ovlasti za pristup samo odabranim fotografijama i videozapisima (READ_MEDIA_VISUAL_USER_SELECTED, datoteke kojima se pristupa odabire korisnik putem sučelja Photo picker tijekom dijaloga za dopuštenje). Nakon prebacivanja aplikacije u pozadinu ili zatvaranja programa, odobrene ovlasti se automatski povlače. U dijalogu za potvrdu ovlastima pristupa aplikacija multimedia datotekama dodana je mogućnost davanja pristupa samo odabranim fotografijama ili videima.

- U konfigurator je dodana sekcija za prepisivanje postavki regionalnih preferencija, poput mjernih jedinica temperature, prvog dana u tjednu i sustava brojanja. Na primjer, Europljanin koji živi u SAD-u može postaviti korištenje Celzijevih stupnjeva umjesto Fahrenheita i smatrati ponedjeljak kao početak tjedna umjesto nedjelje.

- Proširene su mogućnosti skaliranja fontova, maksimalna razina skaliranja fonta povećana je s 130% na 200%, a kako bi tekst pri velikom povećanju izgledao manje uočljivo, automatski se primjenjuje nelinerarno povećanje razine skaliranja (veći text se ne povećava toliko kao manji), što omogućava optimalnu čitljivost teksta osobama s oslabljenim vidom bez rizika od deformacija u dizajnu sučelja.

- Nedavno predstavljena podrška za snimanje videa s visokim dinamičkim opsegom (HDR) proširena je mogućnostima za prikupljanje dodatnih informacija s kamere, što omogućava spremanje slika u formatu „Ultra HDR“, u kojem se za kodiranje boja koristi 10 bita po kanalu. Format Ultra HDR je potpuno kompatibilan s JPEG-om, što omogućava aplikacijama da rade s HDR slikama bez ikakvih izmjena, a ako je potrebno, da ih prikazuju koristeći uobičajeni dinamički opseg. Izlaz u HDR režimu automatski osigurava platforma u slučaju aktiviranja HDR podrške u manfestu aplikacije ili prilikom pozivanja Window.setColorMode. Za odvojeno prikazivanje Ultra HDR putem OpenGL-a ili Vulkana može se primijeniti klasa Gainmap.

- Ograničeni su tipovi aplikacija koje imaju dozvolu za prikazivanje obavijesti na cijelom ekranu prilikom zaključavanja ekrana. Takve obavijesti su dizajnirane za privlačenje pažnje na informacije koje zahtijevaju hitnu reakciju, kao što su dolazni pozivi ili aktiviranje alarma, stoga će ovlaštenja za prikazivanje takvih obavijesti sada biti ograničena na aplikacije za pozive i obavijesti.
- Unaprijeđeno je upravljanje animacijom koja signalizira prelazak između različitih ekrana (viewova) u aplikaciji prilikom gestikulacije klizanja koja pomiče sadržaj. Dodani su novi komponente za animaciju prebacivanja donjih i bočnih ekrana, kao i pokretanja pretraživanja. Implementiran je API za izradu vlastitih prijelaznih efekata unutar aplikacije.
- Ažuriran je skup proširenja za kameru (Camera Extensions), u kojem je omogućena upotreba duljih algoritama koji zahtijevaju intenzivna računalna sredstva za obradu slika, na primjer, za poboljšanje kvalitete fotografija snimljenih pri slabom osvjetljenju. Dodane su funkcije za prediktivno mjerenje kašnjenja u obradi snimaka, omogućavanje pregleda napretka obrade i brzo dobijanje skice snimke prije završetka pripreme konačne slike. Implementiran je optimiziraniji i energetski učinkovitiji način pregleda SurfaceView. Tijekom korištenja proširenja osigurana je podrška za dodir kako bi se fokusiralo i zumiralo.
- Podržana je upotreba ugrađenih funkcija kamere za skaliranje i obrezivanje prenesenih RAW slika.
- Za žične slušalice povezane putem USB-a dodana je mogućnost primene zvučnih formata bez gubitka kvaliteta (lossless). U API je dodat razred AudioMixerAttributes, koji omogućava direktno slanje zvuka na uređaj, bez mešanja, podešavanja jačine zvuka i obrade efekata.
- U grafičkom API-ju implementiran je razred Mesh, koji omogućava kreiranje vlastitih varijacija poligonalne mreže sa vertex i fragment shaderima napisanima na jeziku AGSL.
- Dodana je mogućnost hardverskog ubrzanja prikazivanja u baferu, realizovana putem razreda HardwareBufferRenderer.
- U razred Path, koji omogućava kreiranje vektorske grafike na osnovu složenih geometrijskih kontura, dodatna je podrška za interpolaciju između kontura slične strukture radi stvaranja efekta morfinga i korišćenje iteratora PathIterator za sekvencijalno prolazak kroz sve segmente kontura.
- Proširene su mogućnosti vezivanja pojedinačnih podešavanja jezika za različite aplikacije. Omogućeno je određivanje liste jezika koji će se prikazivati u Android konfiguratoru prilikom odabira jezika za određenu aplikaciju.
- Proširena su područja u kojima sistem prikazuje informacije vezane uz privatnost, koje je definisao developer u Play Console Form-u, kao što je politika u vezi sa deljenjem podataka s trećim stranama. Na primer, slične informacije se sada prikazuju u dijalogu za zahtev za dozvolama.
- U aplikacijama koje koriste obrtnike koji rade u pozadini, sada je obavezno navođenje tipa pozadinske usluge. Tokom rada, sistem proverava usklađenost naznačenog tipa usluge, zatraženih dozvola i korišćenog API-ja. Na primer, ako aplikacija naznači tip pozadinske usluge FOREGROUND_SERVICE_TYPE_LOCATION, podrazumeva se da mogu biti zatražene dozvole ACCESS_COARSE_LOCATION ili ACCESS_FINE_LOCATION.
- Unesene su izmjene radi poboljšanja sigurnosti: Aplikacijama je zabranjeno slanje intent-zahtjeva nekim unutarnjim komponentama platforme. Dinamički učitani kod sada mora biti označen atributom pristupa samo za čitanje. U funkcijama ZipFile(String) i ZipInputStream.getNextEntry() zabranjena je obrada zip-archiva čiji putevi počinju sa znakom "\/" ili sadrže niz "..". Ograničeno je pokretanje poslova iz pozadinskih handlera, a ažurirana su ograničenja u vezi s pozivom programskih sučelja koja nisu dostupna u SDK-u.
- Kada se uređaj poveže putem USB-a s računalom, osim prethodno dostupnih načina interakcije poput prijenosa datoteka, punjenja, dijeljenja interneta itd., sada je omogućena upotreba pametnog telefona kao web kamere (UVC način, USB Video Class). Ova značajka je prema zadanim postavkama isključena, ali može se aktivirati uz root pristup.
- Nastavljena su poboljšanja rada platforme na tabletima i uređajima s preklopnim ekranima. Pružene su biblioteke koje osiguravaju predviđanje događaja povezanih s pomicanjem pokazivača i omogućuju niske latencije prilikom rada s olovkama. Pruženi su interfejsi za velike ekrane koji uzimaju u obzir primjene poput društvenih mreža, komunikacije, multimedijalnog sadržaja, čitanja i kupovine.
- Dodana je posebna ovlast za omogućavanje aplikacijama pokretanje radnji kada su u pozadini. Aktivacija tijekom rada u pozadini je ograničena kako ne bi ometala korisnika dok radi s trenutnom aplikacijom. Aktivnim aplikacijama je omogućeno više mogućnosti za kontrolu nad aktivacijom radnji drugih aplikacija s kojima se međusobno povezuju.
- Optimiziran je sustav upravljanja memorijom radi racionalnijeg dodjeljivanja resursa aplikacijama koje se izvršavaju u pozadini. Nekoliko sekundi nakon prebacivanja aplikacije u predmemorirano stanje, pozadinski radovi ograničeni su na rad s API-jima koji upravljaju životnim ciklusom aplikacije, kao što su API Foreground Services, JobScheduler i WorkManager.
- Obavijesti označene oznakom FLAG_ONGOING_EVENT sada se mogu odbiti na uređaju s otključanim zaslonom. Ako je uređaj u načinu zaključavanja zaslona, takve obavijesti će ostati neodbijene. Neodbijene će također ostati obavijesti važne za funkcioniranje sustava.
- U API PackageInstaller dodane su nove metode: requestUserPreapproval(), koja omogućava katalogu aplikacija da odgodi preuzimanje APK paketa do dobivanja potvrde od korisnika za instalaciju; setRequestUpdateOwnership(), koja omogućava instalateru da osigura buduće operacije ažuriranja aplikacije; setDontKillApp(), koja omogućava postavljanje dodatnih mogućnosti za aplikaciju tijekom rada s programom. U API InstallConstraints instalaterima je omogućena aktivacija instalacije ažuriranja aplikacije u trenucima kada aplikacija nije u upotrebi.
- Nastavljen je rad na poboljšanju performansi platforme na tabletima i uređajima sa savitljivim ekranima. Ažurirane su preporuke za razvoj aplikacija za uređaje s velikim ekranima i dodani su uzorci sučelja za velike ekrane koji uzimaju u obzir primjene poput društvenih mreža, komunikacija, multimediјalnog sadržaja, čitanja i kupovine. Ponuđena je preliminarna verzija Cross device SDK-a s alatima za razvoj aplikacija koje ispravno rade s različitim vrstama uređaja (pametan telefoni, tableti, pametni televizori itd.) i različitim form-faktorima.
- Optimizirana je koordinacija izvršenja resursno intenzivnih pozadinskih poslova, poput preuzimanja velikih datoteka kada je dostupan Wi-Fi. Unesene su izmjene u API-ju za pokretanje prioritetnih usluga (Foreground Service) i planiranje zadataka (JobScheduler), kojima je dodana nova funkcionalnost za korisnički pokrenute poslove povezane s prijenosom podataka. Uvedeni su zahtjevi za označavanje vrste pokrenutih prioritetnih usluga (rad s kamerom, sinkronizacija podataka, reprodukcija multimedijskih podataka, praćenje lokacije, pristup mikrofonu itd.). pojednostavljena su pravila za definiranje uvjeta aktivacije preuzimanja podataka, na primjer, za preuzimanje samo kada je dostupan Wi-Fi.
- Unutarnji sustav isporuke javnih poruka aplikacijama (broadcast system) optimiziran je za smanjenje potrošnje energije i povećanje responzivnosti. Poboljšano je primanje registriranih tokova poruka od strane aplikacija — poruke se mogu stavljati u red, spajati (na primjer, niz poruka BATTERY_CHANGED će se agregirati u jednu) i isporučivati samo nakon izlaska aplikacije iz predmemoriranog stanja.
- Povećan je limit za maksimalan broj unaprijed keširanih aplikacija, što je omogućilo smanjenje broja aplikacija koje se pokreću u "hladnom" režimu (tj. onih koje nisu keširane u memoriji i pokreću se sporije). Za uređaje s 8 GB RAM-a nakon promjene ograničenja broj "hladnih" pokretanja aplikacija smanjen je za 20%, a za 12 GB — za 30%.
- Korištenje funkcije izvođenja operacija u točno vrijeme (exact alarms) u aplikacijama sada zahtijeva dobivanje posebne dozvole SCHEDULE_EXACT_ALARM, jer primjena ove funkcionalnosti može negativno utjecati na trajanje baterije i dovesti do povećanog potrošnje resursa (za zadatke koji se izvršavaju prema rasporedu preporučuje se korištenje aktivacije u približno vrijeme). Aplikacijama koje koriste implementaciju kalendara i sata, a koriste aktivaciju u točno vrijeme, pri instalaciji je potrebno dati dozvolu USE_EXACT_ALARM. Objave u Google Play trgovini aplikacija s dozvolom USE_EXACT_ALARM dopuštene su samo za programe s implementacijom alarma, tajmera i kalendara s obavijestima o događajima.
- Omogućeno je postavljanje jezičnih postavki vezanih uz pojedine aplikacije. Programer aplikacije sada može mijenjati parametre localeConfig putem poziva LocaleManager.setOverrideLocaleConfig za određivanje popisa jezika prikazanih za aplikaciju u sučelju za postavke Androida.
- Dodana je API Grammatical Inflection za pojednostavljenje dodavanja prijevoda elemenata sučelja koji uzimaju u obzir jezike s rodnim sustavom.
- Kako bi se spriječilo presretanje intent-skih zahtjeva od strane zlonamjernih aplikacija, u novoj verziji zabranjeno je slanje intent-a bez jasnog navođenja paketa ili unutarnje komponente.
- Povećana je sigurnost dinamičkog učitavanja koda (DCL, Dynamic Code Loading) — kako bi se izbjegla zamjena zlonamjernim kodom u dinamički učitavanim izvršnim datotekama, te datoteke sada moraju imati dozvole koje dopuštaju samo čitanje.
- Instalacija aplikacija za koje je navedena verzija SDK ispod 23 je zabranjena, što će omogućiti blokiranje zaobilaženja ograničenja ovlasti putem vezivanja na stare API-je (verzija API 22 je zabranjena, jer je u verziji 23 (Android 6.0) predstavljena nova paradigma upravljanja pristupom, koja omogućava trenutni zahtjev za pristup sistemskim resursima). Aplikacije koje su ranije instalirane i koriste stare API-je nastavit će raditi nakon ažuriranja Androida.
- Predložen je API Credential Manager, koji omogućava organizaciju prijave u aplikacijama koristeći podatke za autentifikaciju vanjskih pružatelja. Implementirana je podrška za tehnologiju Passkeys, koja omogućava korisnicima autentifikaciju bez lozinki koristeći biometrijske identifikatore kao što su otisak prsta ili prepoznavanje lica. Poboljšano je sučelje za odabir računa.
- U Android Runtime (ART) implementirana je podrška za OpenJDK 17. Osnovne Java biblioteke platforme i alati za razvoj aplikacija ažurirani su na OpenJDK 17. Dodana je podrška za jezike nove mogućnosti i Java klase dostupne u OpenJDK 17, uključujući record klase, višelinijske stringove i obrasce u operatoru "instanceof".
- U Android Runtime korištene su naprednije metode kompresije, što je omogućilo smanjenje veličine datoteka u prosjeku za 9,3% bez gubitka performansi.
- Promijenjen je način ažuriranja certifikata certifikacijskih tijela (CA). Sustavni certifikati više neće biti povezani s firmwareom, već će se isporučivati kao zaseban paket, koji se ažurira putem Google Playa. Ovaj pristup pojednostavit će održavanje ažuriranih certifikata i uklanjanje certifikata kompromitiranih certifikacijskih tijela, a također će spriječiti proizvođače uređaja da manipulišu popisom korijenskih certifikata i učiniti proces njihovog ažuriranja neovisnim o ažuriranju firmware-a. S druge strane, novi način isporuke neće omogućiti korisnicima da unose promjene u sustavne certifikate, čak i ako imaju root pristup u sustavu i potpuno kontroliraju firmware.
Izvor: opennet.ru









