Google je objavio otvorenu mobilnu platformu. Android Izvorni kod za novo izdanje postavljen je u Git repozitorij projekta (grana android-14.0.0_r1). Pripremljena su ažuriranja firmvera za Pixel uređaje. Ažuriranja firmvera za pametne telefone kompanija Samsung Galaxy, iQOO, Nothing, OnePlus, Oppo, Realme, Sharp, Sony, Tecno, vivo i Xiaomi planirana su za kasnija izdanja. Pored toga, kreirane su univerzalne GSI (Generic System Images) verzije, pogodne za različite uređaje bazirane na ARM64 i x86_64 arhitekturama.
Glavne inovacije:
- Osnovna platforma uključuje Health Connect spremište, koje je ranije bilo dostupno kao poseban paket putem Google Play-a. Health Connect obezbeđuje centralizovano skladištenje podataka sa fitnes narukvica i drugih uređaja koji se odnose na zdravlje korisnika, i organizuje zajednički pristup zdravstvenim podacima između različitih aplikacija. Pristup postavkama Health Connect će sada biti omogućen putem standardnog konfiguratora platforme, na primjer, putem postavki privatnosti možete kontrolirati kojim zdravstvenim podacima određene aplikacije mogu pristupiti. Dodatno, Health Connect je dodao podršku za čuvanje informacija o ruti koju je putovao tokom treninga (korisnik određuje vremenski period za koji će se čuvati lista putnih tačaka). Ruta se može vizualizirati na karti i po želji proslijediti drugim aplikacijama na obradu, nakon eksplicitne potvrde operacije od strane korisnika.

- Proširen je način potvrđivanja pristupa informacijama o lokaciji. U dijalog je dodat novi odjeljak koji zahtijeva potvrdu pristupa lokaciji s informacijama o tome kada se podaci o lokaciji prenose u aplikaciju (pristup je odbijen, dozvoljen samo jednom i dozvoljen svaki put kada se aplikacija izvršava) i detaljima gdje možete dobiti dodatne informacije o pristupu prenesenim podacima.

- Implementirano periodično (jednom mjesečno) prikazivanje obavještenja o promjenama od strane aplikacija kojima je odobren pristup lokaciji, načinima prijenosa podataka trećim licima (na primjer, prikazuje se kada aplikacija počne koristiti podatke o lokaciji prilikom prikazivanja reklama).

- Kada radite sa aplikacijama, implementiran je istaknutiji alat sa strelicom unazad kako bi se olakšalo razumijevanje mogućnosti korištenja pokreta na ekranu za povratak.

- Mehanizam Sharesheet, koji se koristi za slanje podataka (kao što je slika ili veza) izvan aplikacije ili drugom korisniku, ima mogućnost dodavanja vlastitih radnji. Na primjer, možete definirati vlastitu listu rukovatelja ChooserAction koji prikazuju aplikacije i korisnike kojima se može poslati. Dodatno, proširen je opseg signala koji se koriste za pozicioniranje ciljeva za direktno slanje podataka.

- Moguće je djelimično dodijeliti dozvole za pristup samo fotografijama i video zapisima koje odabere korisnik (READ_MEDIA_VISUAL_USER_SELECTED, fajlove kojima je odobren pristup korisnik bira preko sučelja za odabir fotografija kada se pojavi dijalog zahtjeva za dozvole). Jednom kada se aplikacija stavi u pozadinu ili se program prekine, dozvola koju je korisnik dobio automatski se opoziva. U dijalogu za potvrđivanje dozvola za pristup aplikaciji multimedijalnim datotekama sada je moguće omogućiti pristup samo odabranim fotografijama ili video zapisima.

- Odeljak je dodat u konfigurator da bi se nadjačala podešavanja regionalnih preferencija, kao što su jedinice temperature, prvi dan u nedelji i sistem brojeva. Na primjer, Evropljanin koji živi u Sjedinjenim Državama mogao bi postaviti temperaturu koja se prikazuje u Celzijusima umjesto u Farenhajtu i tretirati ponedjeljak kao početak sedmice umjesto nedjelje.

- Mogućnosti skaliranja fonta su proširene, maksimalni nivo skaliranja fonta je povećan sa 130% na 200%, a kako bi se osiguralo da tekst pri velikom uvećanju ne izgleda prevelik, sada se automatski primjenjuje nelinearna promjena u nivou skaliranja ( veliki tekst nije uvećan koliko mali tekst), što će omogućiti optimalnu čitljivost teksta osobama sa slabim vidom bez rizika od izobličenja u izgledu interfejsa.

- Podrška za snimanje videa sa visokim dinamičkim opsegom (HDR), koja se pojavila u prethodnoj temi, proširena je mogućnošću dobijanja dodatnih informacija od kamere, što omogućava čuvanje slika u „Ultra HDR“ formatu, koji koristi 10 bita po kanalu za kodiranje boja. Ultra HDR format je u potpunosti kompatibilan sa JPEG-om, omogućavajući aplikacijama da rade sa HDR slikama bez modifikacija i, ako je potrebno, da ih prikažu koristeći normalan raspon svjetline. HDR izlaz je automatski omogućen od strane platforme kada je podrška za HDR omogućena u manifestu aplikacije ili kada se pozove Window.setColorMode. Za samostalno Ultra HDR renderiranje koristeći OpenGL ili Vulkan, može se koristiti klasa Gainmap.

- Tipovi aplikacija kojima je dozvoljeno prikazivanje obavještenja preko cijelog ekrana kada je ekran zaključan su ograničeni. Ova obavještenja su dizajnirana da skrenu pažnju na informacije koje zahtijevaju hitnu akciju, kao što je dolazni poziv ili alarm, tako da će moć prikazivanja takvih obavještenja sada biti ograničena na aplikacije za pozivanje i upozorenja.
- Poboljšana kontrola animacije koja signalizira prijelaz između različitih ekrana (listova) u aplikaciji kada se koristi klizeći pokret koji pomiče sadržaj. Nove komponente su dodane za animiranje prebacivanja donjeg i bočnog ekrana, kao i pozivanje pretrage. Dodan API za kreiranje vlastitih efekata prijelaza u aplikaciji.
- Skup Camera Extensions je ažuriran kako bi pružio mogućnost korištenja dugotrajnijih algoritama koji zahtijevaju kompjuterski intenzivnu obradu slike, kao što je poboljšanje kvaliteta slika pri slabom osvjetljenju. Dodane funkcije za predviđanje kašnjenja u obradi slike, dobivanje informacija o napretku obrade i brzo dobivanje grube verzije slike prije nego što se završna slika završi. Implementiran optimiziraniji i energetski efikasniji SurfaceView način pregleda. Kada koristite ekstenzije, obezbeđena je podrška dodirom za fokusiranje i zumiranje.
- Obezbeđena je podrška za korišćenje ugrađenih mogućnosti skaliranja i isecanja kamere za prenete RAW slike.
- Za žičane slušalice povezane preko USB-a, dodata je mogućnost korištenja zvučnih formata bez gubitka kvalitete (lossless). Klasa AudioMixerAttributes je dodana API-ju, omogućavajući vam da direktno pošaljete audio na uređaj, bez miješanja, podešavanja jačine zvuka ili obrade efekata.
- Grafički API implementira klasu Mesh, koja vam omogućava da kreirate sopstvene varijante poligonalne mreže sa šederima vrhova i fragmenata napisanim na AGSL jeziku.
- Dodata mogućnost hardverskog ubrzanja renderiranja u bafer, implementirana kroz klasu HardwareBufferRenderer.
- Klasa Path, koja vam omogućava da kreirate vektorsku grafiku zasnovanu na složenim geometrijskim putanjama, dodata je da podrži interpolaciju između putanja sa sličnom strukturom kako bi se stvorio efekat morfiranja i koristio PathIterator za ponavljanje kroz sve segmente putanje u nizu.
- Proširena je mogućnost povezivanja pojedinačnih jezičkih postavki s različitim aplikacijama. Uvedena je mogućnost definiranja liste jezika koji će se prikazivati u konfiguratoru. Android prilikom odabira jezika za određenu aplikaciju.
- Proširene oblasti u kojima sistem prikazuje informacije vezane za privatnost definisane od strane programera u obrascu Play konzole, kao što su pravila u vezi sa deljenjem podataka sa trećim stranama. Na primjer, takve informacije se sada prikazuju u dijalogu zahtjeva za dozvole.
- Aplikacije koje koriste pozadinske rukovaoce sada moraju specificirati tip usluge u pozadini. Tokom rada, sistem provjerava usklađenost specificiranog tipa usluge, traženih dozvola i korištenog API-ja. Na primjer, ako aplikacija specificira pozadinski tip usluge FOREGROUND_SERVICE_TYPE_LOCATION, podrazumijeva se da može zahtijevati dozvole ACCESS_COARSE_LOCATION ili ACCESS_FINE_LOCATION.
- Izmjene su napravljene radi poboljšanja sigurnosti: aplikacijama je zabranjeno slanje zahtjeva za namjeru nekim internim komponentama platforme. Dinamički učitani kod bi sada trebao biti označen atributom pristupa samo za čitanje. Funkcije ZipFile(String) i ZipInputStream.getNextEntry() ne dozvoljavaju obradu zip arhiva čije staze počinju znakom “/” ili sadrže niz “..”. Pokretanje rada iz pozadinskih rukovatelja je ograničeno i ažurirana su ograničenja u području pozivanja programskih sučelja koji nisu navedeni u SDK-u.
- Prilikom povezivanja uređaja putem USB-a na desktop računar, pored prethodno dostupnih načina interakcije, kao što su prijenos datoteka, punjenje, ukrcavanje, itd., postalo je moguće koristiti pametni telefon kao web kameru (UVC način rada, USB Video Class) . Podrazumevano, ova funkcija je onemogućena, ali se može aktivirati ako imate root pristup.
- Nastavili smo da poboljšavamo performanse platforme na tabletima i uređajima sa sklopivim ekranom. Biblioteke su obezbeđene za predviđanje događaja povezanih sa kretanjem pokazivača i obezbeđuju nisko kašnjenje pri radu sa olovkom. Predlošci interfejsa za velike ekrane daju se za prilagođavanje upotrebe kao što su društvene mreže, komunikacije, multimedijalni sadržaj, čitanje i kupovina.
- Dodata je posebna dozvola za omogućavanje aplikacijama da izvršavaju radnje dok je aplikacija u pozadini. Aktivacija u pozadini je ograničena kako ne bi ometala korisnika dok radi s trenutnom aplikacijom. Aktivnim aplikacijama se daje veća kontrola nad aktivacijom akcija od strane drugih aplikacija s kojima su u interakciji.
- Sistem upravljanja memorijom je optimizovan da efikasnije dodeljuje resurse aplikacijama koje rade u pozadini. Nakon nekoliko sekundi od postavljanja aplikacije u keširano stanje, rad u pozadini je ograničen na API-je koji upravljaju životnim ciklusom aplikacije, kao što su Foreground Services API, JobScheduler i WorkManager.
- Obavještenja označena zastavicom FLAG_ONGOING_EVENT sada mogu biti odbijena kada se prikazuju na otključanom uređaju. Ako je vaš uređaj u načinu rada zaključanog ekrana, ova obavještenja neće biti odbačena. Obavještenja koja su važna za funkcionisanje sistema također će ostati neodbačena.
- Nove metode su dodane u PackageInstaller API: requestUserPreapproval(), koji omogućava direktoriju aplikacije da odgodi preuzimanje APK paketa dok ne dobije potvrdu instalacije od korisnika; setRequestUpdateOwnership(), koji vam omogućava da dodijelite buduće operacije ažuriranja aplikacije instalateru; setDontKillApp(), koji vam omogućava da postavite dodatne mogućnosti za aplikaciju dok radite s programom. InstallConstraints API daje instalaterima mogućnost da pokrenu instalaciju ažuriranja aplikacije kada se aplikacija ne koristi.
- Nastavlja se rad na poboljšanju performansi platforme na tabletima i uređajima sa sklopivim ekranima. Ažurirali smo smjernice za razvoj aplikacija za uređaje s velikim ekranom i dodali generičke obrasce korisničkog sučelja za velike ekrane kako bismo odgovorili na upotrebu kao što su društveni mediji, komunikacije, multimedijalni sadržaj, čitanje i kupovina. Predloženo je preliminarno izdanje Cross device SDK-a s alatima za razvoj aplikacija koje ispravno rade s različitim tipovima uređaja (pametni telefoni, tableti, pametni televizori, itd.) i različitim faktorima oblika.
- Optimizirana je koordinacija pozadinskog rada koji zahtijeva puno resursa, kao što je preuzimanje velikih datoteka kada postoji Wi-Fi veza. Izmjene su napravljene u API-ju za pokretanje prioritetnih usluga (Foreground Service) i zakazivanje zadataka (JobScheduler), što je dodalo novu funkcionalnost za poslove koje pokreće korisnik koji se odnose na prijenos podataka. Uvedeni su zahtjevi za označavanje vrste prioritetnih servisa za pokretanje (rad sa kamerom, sinhronizacija podataka, reprodukcija multimedijalnih podataka, praćenje lokacije, pristup mikrofonu, itd.). Lakše je definirati uvjete za aktiviranje preuzimanja podataka, na primjer, preuzimanje samo kada se pristupa preko Wi-Fi mreže.
- Interni sistem emitovanja za isporuku emitovanih poruka aplikacijama je optimizovan za smanjenje potrošnje energije i poboljšanje odziva. Poboljšano prihvatanje registrovanih tokova poruka u aplikaciji - poruke se mogu staviti u red čekanja, spojiti (na primjer, serija BATTERY_CHANGED poruka će biti objedinjena u jednu) i isporučena tek nakon što aplikacija izađe iz stanja keširanja.
- Ograničenje maksimalnog broja keširanih aplikacija je povećano, što je smanjilo broj aplikacija koje se pokreću u "hladnom" načinu (tj. nisu keširane u memoriji i pokreću se sporije). Za uređaje sa 8 GB RAM-a, nakon promjene ograničenja, broj pokretanja "hladnih" aplikacija smanjen je za 20%, a sa 12 GB - za 30%.
- Korištenje funkcije Exact Alarms u aplikacijama sada zahtijeva pribavljanje posebne dozvole SCHEDULE_EXACT_ALARM, jer korištenje ove funkcionalnosti može negativno utjecati na trajanje baterije i dovesti do povećane potrošnje resursa (za planirane zadatke preporučuje se korištenje aktivacije u približnom vremenu). Aplikacije sa implementacijom kalendara i sata koje koriste aktivaciju zasnovanu na vremenu moraju dobiti dozvolu USE_EXACT_ALARM nakon instalacije. Objavljivanje aplikacija u Google Play direktorijumu sa dozvolom USE_EXACT_ALARM dozvoljeno je samo za programe koji implementiraju budilnik, tajmer i kalendar sa obavještenjima o događajima.
- Uvedena je mogućnost određivanja jezičkih postavki specifičnih za pojedinačne aplikacije. Programer aplikacije sada može mijenjati postavke localeConfig pozivanjem LocaleManager.setOverrideLocaleConfig kako bi odredio listu jezika prikazanih za aplikaciju u interfejsu postavki. Android.
- API za gramatičku infleksiju je dodat kako bi se olakšalo dodavanje prijevoda elemenata interfejsa koji uzimaju u obzir jezike sa rodnim sistemom.
- Kako bi se spriječilo zlonamjerne aplikacije da presretnu zahtjeve za namjere, nova verzija zabranjuje slanje namjera bez eksplicitnog navođenja paketa ili interne komponente.
- Sigurnost dinamičkog učitavanja koda (DCL) je poboljšana - kako bi se izbjeglo umetanje zlonamjernog koda u dinamički učitane izvršne datoteke, ove datoteke sada moraju imati prava pristupa samo za čitanje.
- Instalacija aplikacija za koje je deklarirana verzija SDK-a niža od 23 je zabranjena, što će blokirati zaobilaženje ograničenja dozvola vezivanjem za stare API-je (API verzija 22 je zabranjena, jer je u verziji 23 (Android 6.0) je uveo novi model kontrole pristupa koji vam omogućava da u hodu zatražite pristup sistemskim resursima. Prethodno instalirane aplikacije koje koriste stare API-je više neće biti dostupne nakon ažuriranja. Android nastavit će svoj rad.
- Predložen je API Credential Manager, koji vam omogućava da organizirate prijavu u aplikacije koristeći vjerodajnice vanjskih provajdera autentifikacije. Implementirana je podrška za Passkeys tehnologiju, koja omogućava korisniku da se autentifikuje bez lozinke koristeći biometrijske identifikatore kao što su otisak prsta ili prepoznavanje lica. Poboljšan interfejs za odabir naloga.
- В Android Runtime (ART) sada podržava OpenJDK 17. Osnovne Java biblioteke platforme i alati za razvoj aplikacija ažurirani su kako bi podržali OpenJDK 17. Dodana je podrška za jezičke funkcije i Java klase dostupne u OpenJDK 17, kao što su klase zapisa, višelinijski stringovi i usklađivanje uzoraka u operatoru "instanceof".
- В Android Runtime koristi naprednije metode kompresije, koje su smanjile veličinu datoteka u prosjeku za 9.3% bez žrtvovanja performansi.
- Promijenjen je način ažuriranja certifikata certifikacijskog tijela (CA). Sistemski certifikati više neće biti vezani za firmver, već će biti isporučeni kao poseban paket, ažuriran putem Google Play-a. Ovaj pristup će olakšati održavanje ažuriranih certifikata i uklanjanje certifikata od kompromitovanih certifikacijskih tijela, a također će spriječiti proizvođače uređaja da manipuliraju listom root certifikata i učiniti proces njihovog ažuriranja nezavisnim od ažuriranja firmvera. S druge strane, novi način isporuke neće dozvoliti korisniku da izvrši promjene u sistemskim certifikatima, čak i ako ima root pristup sistemu i ima potpunu kontrolu nad firmverom.
izvor: opennet.ru
