Spoločnosť Google zverejnila vydanie otvorenej mobilnej platformy Android 14. Súvisiace zdrojové kódy sú umiestnené v Git repozytóriu projektu (vetva android-14.0.0_r1). Aktualizácie firmvéru sú pripravené pre zariadenia série Pixel. Neskôr sa plánuje pripraviť aktualizácie firmvéru pre smartfóny výroby Samsung Galaxy, iQOO, Nothing, OnePlus, Oppo, Realme, Sharp, Sony, Tecno, vivo a Xiaomi. Okrem toho sú vytvorené univerzálne zostavy GSI (Generic System Images), vhodné pre rôzne zariadenia na báze architektúr ARM64 a x86_64.
Hlavné novinky:
- Hlavné zloženie platformy obsahuje úložisko Health Connect, ktoré bolo predtým dodávané vo forme samostatného balíka cez Google Play. Health Connect zabezpečuje centralizované ukladanie údajov z fitness náramkov a iných zariadení, ktoré súvisia so zdravím používateľa, a organizuje spoluprístup rôznych aplikácií k údajom o zdraví. Prístup k nastaveniam Health Connect bude teraz poskytovaný cez štandardný konfigurátor platformy, napríklad prostredníctvom nastavení ochrany súkromia, kde je možné spravovať, ktoré konkrétne údaje o zdraví môžu určité aplikácie získať. Okrem toho, v Health Connect bola pridaná podpora pre ukladať informácie o trase prekonanej počas tréningu (používateľ určuje časový úsek, počas ktorého bude zachovaný zoznam míľnikov). Trasa môže byť vizualizovaná na mape a na želanie odoslaná na spracovanie iným aplikáciám, po výslovnom potvrdení operácie používateľom.

- Rozšírené prostriedky potvrdenia prístupu k informáciám o polohe. Do dialógu so žiadosťou o potvrdenie prístupu k polohe bol pridaný nový oddiel s informáciami o tom, kedy aplikácia prenáša údaje o polohe (prístup je zamietnutý, povoliť len raz a povoliť pri každom spustení aplikácie) a podrobnosti, kde je možné získať ďalšie informácie o prístupe k prenášaným údajom.

- Realizované je periodické (raz za mesiac) zobrazovanie oznámení s upozornením na zmeny aplikácií, ktorým bol poskytnutý prístup k polohe, metód prenosu údajov tretím stranám (napríklad sa zobrazuje, keď aplikácia začne používať údaje o polohe pri zobrazovaní reklamy).

- Pri práci s aplikáciami bola implementovaná výraznejšia nápoveda so spätnou šípkou, ktorá sa zobrazuje na zjednodušenie porozumenia možnostiam použitia gestu na obrazovke pre návrat späť.

- V mechanizme Sharesheet, používanom na odosielanie dát (napríklad obrázkov alebo odkazov) mimo aplikácie alebo inému používateľovi, bola zavedená možnosť pridania vlastných akcií. Napríklad je možné definovať vlastný zoznam spracovateľov ChooserAction, ktorí zobrazujú aplikácie a používateľov, ktorým je možné poslať. Navyše bol rozšírený okruh signálov používaných na triedenie cieľov pre priamu odosielanie údajov.

- Bol poskytnutý prístup na čiastočné udelenie oprávnení pre prístup iba k vybraným používateľom fotografiám a videám (READ_MEDIA_VISUAL_USER_SELECTED, súbory, ku ktorým sa poskytuje prístup, vyberá používateľ cez rozhranie Photo picker počas zobrazenia dialógu žiadosti o oprávnenie). Po prevode aplikácie do pozadia alebo ukončení programu sa udelené používateľské oprávnenie automaticky odníma. V dialógu potvrdzovania oprávnení prístupu aplikácií k multimediálnym súborom bola pridaná možnosť udelenia prístupu len k vybraným fotografiám alebo videám.

- Do konfigurátora bola pridaná sekcia na prepisovanie nastavení regionálnych preferencií, ako sú jednotky teploty, prvý deň v týždni a systém číslovania. Napríklad, Európan žijúci v USA si môže nastaviť zobrazenie teploty v stupňoch Celzia namiesto stupňov Fahrenheita a považovať pondelok za začiatok týždňa namiesto nedele.

- Možnosti prispôsobenia veľkosti písma boli rozšírené, maximálna úroveň zväčšenia písma bola zvýšená zo 130 % na 200 %, a aby text pri veľkom zväčšení nevyzeral príliš veľký, teraz sa automaticky aplikuje nelineárna zmena úrovne zväčšenia (veľký text už nie je zväčšovaný tak silno ako malý text), čo umožní dosiahnuť optimálnu čitateľnosť textu pre ľudí so slabším zrakom bez rizika deformácie v rozložení rozhrania.

- Podpora nahrávania videa s vysokým dynamickým rozsahom jasu (HDR), ktorá sa objavila v predchádzajúcej verzii, bola rozšírená o možnosti získavania dodatočných informácií z kamery, čo umožňuje uchovávať obrázky vo formáte „Ultra HDR“, pri ktorom sa na kódovanie farieb používa 10 bitov na kanál. Formát Ultra HDR je plne kompatibilný s JPEG, čo umožňuje aplikáciám bez nutnosti zmien pracovať s HDR obrázkami a v prípade potreby ich zobraziť pomocou bežného rozsahu jasu. Výstup v režime HDR sa zabezpečuje automaticky silami platformy, ak je aktivovaná podpora HDR v manifeste aplikácie alebo pri vyžiadaniu Window.setColorMode. Na samostatné vykreslenie Ultra HDR pomocou OpenGL alebo Vulkan môže byť použitá trieda Gainmap.

- Typy aplikácií, ktorým je povolené zobrazenie celoobrazovkových upozornení pri uzamknutí obrazovky, sú obmedzené. Takéto upozornenia sú navrhnuté na upútanie pozornosti na informácie, ktoré vyžadujú okamžitú reakciu, ako je prichádzajúci hovor alebo spustenie budíka, preto budú oprávnenia na zobrazenie týchto upozornení teraz obmedzené na aplikácie na uskutočňovanie hovorov a zobrazenie varovných signálov.
- Vylepšené riadenie animácie signalizujúcej prechod medzi rôznymi obrazovkami (listami) v aplikácii pri posúvaní obsahu. Pridané nové komponenty na animáciu prepínania dolných a bočných obrazoviek, ako aj na vyvolanie vyhľadávania. Pridané API na vytváranie vlastných prechodových efektov v aplikácii.
- Obnovil sa súbor rozšírení pre kameru (Camera Extensions), ktorý poskytuje možnosť využívania dlhšie vykonávaných algoritmov vyžadujúcich intenzívne výpočty na spracovanie obrazov, napríklad na zlepšenie kvality snímok pořízených pri slabom osvetlení. Pridané funkcie na predikciu oneskorenia pri spracovaní snímky, získavanie informácií o postupe spracovania a rýchle pořízení konceptu snímky pred dokončením prípravy konečného obrazu. Implementovaný je optimalizovaný a energeticky efektívny režim náhľadu SurfaceView. Počas používania rozšírení je zabezpečená podpora dotyku na zaostrenie a zoomovanie.
- Podporuje sa používanie zabudovaných v kamere funkcií na škálovanie a orezávanie prenášaných RAW obrázkov.
- Pre drôtové slúchadlá pripojené cez USB sa pridala možnosť použitia zvukových formátov bez straty kvality (lossless). Do API bol pridaný trieda AudioMixerAttributes, ktorá umožňuje priamo posielať zvuk na zariadenie bez zmiešavania, úpravy hlasitosti a spracovania efektov.
- V grafickom API bola implementovaná trieda Mesh, ktorá umožňuje vytvárať svoje vlastné varianty polygonálnej siete s vrcholovými a fragmentovými shadermi napísanými v jazyku AGSL.
- Pridaná funkcia hardvérovej akcelerácie vykresľovania do vyrovnávacej pamäte, implementovaná cez triedu HardwareBufferRenderer.
- Do triedy Path, ktorá umožňuje vytvárať vektorovú grafiku na základe zložených geometrických kontúr, bola pridaná podpora interpolácie medzi kontúrami s podobnou štruktúrou na vytvorenie efektu morphingu a použitie iterátora PathIterator na postupné prechádzanie všetkými segmentmi kontúru.
- Rozšírené možnosti viazania jednotlivých jazykových nastavení na rôzne aplikácie. Poskytla sa možnosť určiť zoznam jazykov, ktoré sa budú zobraziť v konfigurátore Android pri výbere jazyka pre konkrétnu aplikáciu.
- Rozšírené oblasti, v ktorých systém zobrazuje informácie o ochrane osobných údajov, určené vývojárom v Play Console Form, ako sú politiky týkajúce sa poskytovania údajov tretím stranám. Napríklad, takéto údaje sa teraz zobrazujú v dialógu s požiadavkami na oprávnenia.
- V aplikáciách využívajúcich spracovateľov v pozadí teraz musí byť uvedený typ pozadového servisu. Počas práce systém kontroluje súlad medzi zadaným typom servisu, požadovanými oprávneniami a použitým API. Napríklad, ak aplikácia uviedla typ pozadového servisu FOREGROUND_SERVICE_TYPE_LOCATION, predpokladá sa, že môžu byť požadované oprávnenia ACCESS_COARSE_LOCATION alebo ACCESS_FINE_LOCATION.
- Boli vykonané zmeny na zvýšenie bezpečnosti: Odosielanie intent-žiadostí aplikáciami k niektorým interným komponentom platformy je zakázané. Dynamicky načítaný kód musí byť teraz označený atribútom prístupu v režime len na čítanie. Spracovanie zip-archívov v metódach ZipFile(String) a ZipInputStream.getNextEntry() je zakázané, ak cesty začínajú znakom "/" alebo obsahujú sekvenciu "..". Spustenie prác z pozadí je obmedzené a obmedzenia v oblasti volania softvérových rozhraní, ktoré nie sú súčasťou SDK, boli aktualizované.
- Pri pripojení zariadenia cez USB k stolovému počítaču, okrem predtým dostupných režimov interakcie, ako je prenos súborov, nabíjanie, zdieľanie internetu a pod., pribudla možnosť využiť smartfón ako webovú kameru (režim UVC, USB Video Class). Táto funkcia je predvolene vypnutá, ale môže byť aktivovaná pri prístupe s oprávneniami root.
- Pokračuje zlepšovanie fungovania platformy na tabletoch a zariadeniach so skladacími obrazovkami. Poskytli sa knižnice, ktoré umožňujú predpovedanie udalostí súvisiacich s pohybom kurzora a zabezpečujú nízke oneskorenia pri práci s stylusmi. K dispozícii sú šablóny užívateľského rozhrania pre veľké obrazovky, zohľadňujúce také aplikácie, ako sú sociálne siete, komunikácia, multimediálny obsah, čítanie a nakupovanie.
- Pridalo sa osobitné oprávnenie na umožnenie aplikáciám spúšťať akcie pri nachádzaní aplikácie na pozadí. Aktivácia počas pozadia je obmedzená, aby sa používateľ počas práce s aktuálnou aplikáciou nedostal do rozptylov. Aktívnym aplikáciám je poskytnuté viac možností na kontrolu aktivácie akcií inými aplikáciami, s ktorými interagujú.
- Optimalizácia systému správy pamäte bola vykonaná na efektívnejšie pridelenie zdrojov aplikáciám, ktoré bežia na pozadí. Niekoľko sekúnd po prechode aplikácie do cache stavu je pozadová práca obmedzená na API, ktoré riadia životný cyklus aplikácie, ako sú API Foreground Services, JobScheduler a WorkManager.
- Oznámenia so značkou FLAG_ONGOING_EVENT môžu teraz byť zamietnuté, ak sa zobrazujú na odomknutej obrazovke zariadenia. Ak je zariadenie v režime uzamknutia obrazovky, takéto oznámenia zostanú nezamietnuté. Oznámenia, ktoré sú dôležité pre fungovanie systému, taktiež zostanú nezamietnuté.
- Do API PackageInstaller boli pridané nové metódy: requestUserPreapproval(), ktorá umožňuje adresáru aplikácií odložiť sťahovanie APK balíkov do času získania potvrdenia od používateľa na inštaláciu; setRequestUpdateOwnership(), ktorá umožňuje viazať inštalatéra na budúce aktualizačné operácie aplikácie; setDontKillApp(), ktorá umožňuje nastaviť dodatočné možnosti pre aplikáciu počas jej prevádzky. V API InstallConstraints získali inštalatéri možnosť aktivovať inštaláciu aktualizácie aplikácie v okamihoch, keď sa aplikácia nepoužíva.
- Pokračuje sa v práci na zlepšení výkonu platformy na tabletoch a zariadeniach so skladacími obrazovkami. Aktualizované sú odporúčania na vývoj aplikácií pre zariadenia s veľkými obrazovkami a pridané typové šablóny rozhrania pre veľké obrazovky, ktoré zohľadňujú aplikácie ako sociálne siete, komunikáciu, multimediálny obsah, čítanie a nakupovanie. Navrhnutý je predbežný pre-release Cross device SDK s nástrojmi na vývoj aplikácií, ktoré správne fungujú s rôznymi typmi zariadení (smartfóny, tablety, inteligentné televízory atď.) a rôznymi formátmi.
- Prebehla optimalizácia koordinácie vykonávania náročných prác na pozadí, ako je sťahovanie veľkých súborov pri pripojení cez Wi-Fi. Boli vykonané zmeny v API na spustenie prioritných služieb (Foreground Service) a plánovanie úloh (JobScheduler), do ktorých bola pridaná nová funkčnosť pre používateľom spúšťané práce súvisiace s prenosom dát. Boli zavedené požiadavky na určenie typu spustených prioritných služieb (práca s kamerou, synchronizácia údajov, prehrávanie multimediálnych dát, sledovanie polohy, prístup k mikrofónu a pod.). Bolo zjednodušené určenie podmienok na aktiváciu sťahovania dát, napríklad pre sťahovanie iba pri prístupe cez Wi-Fi.
- Interný systém doručovania vysielacích správ aplikáciám (broadcast system) bol optimalizovaný na zníženie spotreby energie a zvýšenie reakčnej doby. Vylepšený je príjem registrovaných tokov správ aplikáciami — správy môžu byť zaradené do fronty, kombinované (napríklad séria správ BATTERY_CHANGED sa agreguje do jednej) a doručované iba po ukončení aplikácie z vyrovnávacej pamäte.
- Zvýšil sa limit na maximálny počet vyrovnaných aplikácií, čo viedlo k zníženiu počtu aplikácií spúšťaných v „studenom“ režime (t. j. nevyrovnaných v pamäti a spúšťaných pomalšie). Pre zariadenia s 8 GB RAM sa po zmene obmedzení počet „studených“ spustení aplikácií znížil o 20 %, a pre 12 GB o 30 %.
- Používanie funkcie vykonávania operácií v presnom čase (exact alarms) v aplikáciách teraz vyžaduje získanie samostatného povolenia SCHEDULE_EXACT_ALARM, pretože použitie tejto funkčnosti môže negatívne ovplyvniť výdrž batérie a viesť k zvýšenej spotrebe prostriedkov (pre úlohy vykonávané podľa rozvrhu sa odporúča používať aktiváciu v približnom čase). Aplikáciám s implementáciou kalendára a hodín, ktoré používajú aktiváciu v presnom čase, musí byť pri inštalácii poskytnuté povolenie USE_EXACT_ALARM. Zverejnenia aplikácií v katalógu Google Play, ktoré majú povolenie USE_EXACT_ALARM, sú povolené iba pre programy s implementáciou budíka, časovača a kalendára s notifikáciami o udalostiach.
- Bola poskytnutá možnosť určiť nastavenia jazyka viazané na jednotlivé aplikácie. Vývojár aplikácie môže teraz meniť parametre localeConfig prostredníctvom volania LocaleManager.setOverrideLocaleConfig na určenie zoznamu jazykov, ktoré sa zobrazia pre aplikáciu v rozhraní nastavenia Android.
- Pridané API Grammatical Inflection pre zjednodušenie pridávania prekladov prvkov rozhrania, ktoré zohľadňujú jazyky so systémom rodov.
- Na prevenciu zachytávania intent-žiadostí škodlivými aplikáciami je v novej verzii zakázané odosielanie intent-ov bez jasného určenia balíka alebo interného komponentu.
- Zvýšená bezpečnosť dynamického sťahovania kódu (DCL, Dynamic Code Loading) — aby sa predišlo vkladaniu škodlivého kódu do dynamicky sťahovaných spustiteľných súborov, tieto súbory musia mať oprávnenia, ktoré umožňujú iba čítanie.
- Inštalácia aplikácií, ktoré majú deklarovanú verziu SDK nižšiu ako 23, je zakázaná, čím sa zabránia obchádzaniu obmedzení oprávnení prostredníctvom prepojenia na staré API (verzia API 22 je zakázaná, pretože vo verzii 23 (Android 6.0) sa objavila nová model prístupu, ktorá umožňuje na vyžiadanie získať prístup k systémovým zdrojom). Predtým nainštalované aplikácie, ktoré využívajú staré API, budú po aktualizácii Androidu pokračovať v prevádzke.
- Bol navrhnutý API Credential Manager, ktorý umožňuje v aplikáciách organizovať prihlásenie pomocou údajov od externých poskytovateľov autentifikácie. Implementovala sa podpora technológie Passkeys, ktorá umožňuje používateľom autentifikáciu bez hesiel pomocou biometrických identifikátorov, ako sú odtlačky prstov alebo rozpoznávanie tváre. Vylepšil sa rozhranie pre výber účtu.
- V Android Runtime (ART) bola implementovaná podpora OpenJDK 17. Základné Java knižnice platformy a nástroje na vývoj aplikácií boli aktualizované na OpenJDK 17. Bola pridaná podpora jazykových funkcií a Java tried dostupných v OpenJDK 17, napríklad tried typu record, viacriadkových reťazcov a zhodovania vzorov v operátore „instanceof“.
- V Android Runtime sa použili progresívnejšie metódy kompresie, čo umožnilo znížiť veľkosť súborov v priemere o 9,3 % bez straty výkonu.
- Zmenil sa spôsob aktualizácie certifikátov certifikačných autorít (CA). Systémové certifikáty už nebudú viazané na firmware, ale budú dodávané v samostatnom balíku, ktorý sa aktualizuje prostredníctvom Google Play. Takýto prístup zjednoduší udržiavanie aktuálnych certifikátov a odstraňovanie certifikátov skompromitovaných certifikačnými autoritami, a takisto zabrání výrobcom zariadení manipulovať so zoznamom koreňových certifikátov a sprístupní proces ich aktualizácie nezávisle od aktualizácie firmvéru. Na druhej strane, nový spôsob dodávania neumožní používateľovi vykonať zmeny v systémových certifikátoch, aj keď má root prístup k systému a úplne ovláda firmware.
Zdroj: opennet.ru









