A Google kiadta az Android 14 nyílt mobilplatform verzióját. Az új kiadással kapcsolatos forráskódok a projekt Git-repozitóriumában találhatók (android-14.0.0_r1 ág). A Pixel sorozatú eszközökre firmware frissítések készültek. Később tervezik a frissítések előkészítését a Samsung Galaxy, iQOO, Nothing, OnePlus, Oppo, Realme, Sharp, Sony, Tecno, vivo és Xiaomi gyártású okostelefonokhoz. Továbbá általános GSI (Generic System Images) csomagokat alakítottak ki, amelyek különböző ARM64 és x86_64 architektúrájú eszközökhöz használhatók.
Főbb újítások:
- A platform alap összetevőjénél helyet kapott a Health Connect, amely korábban külön csomag formájában volt elérhető a Google Playen. A Health Connect központosított adatkezelést biztosít a felhasználók egészségével kapcsolatos adatokhoz, amelyeket különféle fitnesz karkötők és más egészséggel kapcsolatos eszközök szolgáltatnak, és lehetővé teszi, hogy különböző alkalmazások közösen hozzáférjenek ezekhez az adatokhoz. A Health Connect beállításai mostantól a platform beépített konfigurálóján keresztül érhetők el, például a magánélet beállításai között kezelhető, hogy mely alkalmazások férhetnek hozzá a felhasználó egészségügyi adataihoz. Ezen kívül a Health Connect támogatja a edzések során megtett útvonal információinak tárolását (a felhasználó meghatározza az időtartamot, amely alatt a pontok listáját elmenti). Az útvonal térképen is megjeleníthető, és igény esetén más alkalmazások számára átadható a felhasználó kifejezett jóváhagyása után.

- Bővítették a helymeghatározási információkhoz való hozzáférés megerősítésének eszközeit. A helymeghatározási hozzáférés megerősítésére irányuló párbeszédhez új rész került, amely információkat tartalmaz arról, hogy mikor történik az alkalmazás által a helymeghatározási adatok továbbítása (hozzáférés megtagadva, egyszeri engedélyezés, és engedélyezés az alkalmazás minden használatakor), valamint részletezve, hol lehet további információkat kapni a továbbított adatokhoz való hozzáférésről.

- Megvalósították a rendszeres (havonta egyszer) értesítések megjelenítését, figyelmeztetve a felhasználókat a helymeghatározáshoz hozzáféréssel rendelkező alkalmazások által az adatok harmadik félnek való továbbításának módjára vonatkozóan (például értesítést kap a felhasználó, amikor egy alkalmazás elkezdi a helymeghatározási adatok használatát a reklámok megjelenítésekor).

- Alkalmazások használata során észlelhetőbbé vált a visszafelé nyíl jelzés, amely megkönnyíti a képernyő gesztusának alkalmazására vonatkozó lehetőségek megértését.

- A ShareSheet mechanizmusban, amelyet adatok (például képek vagy linkek) alkalmazáson kívüli küldésére vagy más felhasználóknak történő átadására használnak, lehetővé vált saját műveletek hozzáadása. Például saját ChooserAction kezelőlistát definiálhatunk, amely megjeleníti azokat az alkalmazásokat és felhasználókat, akiknek elérhetők az adatok. Továbbá bővült a közvetlen adatküldési célok rangsorolásához használt jelek köre is.

- Lehetőség nyílt a kiválasztott felhasználó által megadott fényképekhez és videókhoz való korlátozott hozzáférési jogok kiadására (READ_MEDIA_VISUAL_USER_SELECTED, a hozzáférésre jogosult fájlokat a felhasználó a Photo picker felületen választhatja ki a jogosultságkérés párbeszédablak megjelenésekor). Az alkalmazás háttérbe küldése vagy a program leállítása után a felhasználó által megadott jogosultság automatikusan visszavonásra kerül. A multimédiafájlokhoz való hozzáférés helyességéről szóló jogosultságmegerősítő párbeszédablakban lehetőség nyílt a kiválasztott fényképek vagy videókhoz való hozzáférés biztosítására.

- A konfigurátorhoz új szekció került a regionális preferenciák beállításainak felülbírálására, például a hőmérséklet mértékegysége, a hét első napja és a számítási rendszer. Például egy az Egyesült Államokban élő európai beállíthatja, hogy a hőmérséklet Celsius-fokban jelenjen meg a Fahrenheit helyett, és hogy a hét első napja hétfő legyen, nem pedig vasárnap.

- A betűméretek skálázásának lehetőségei kibővültek, a maximális betűméret-arány 130%-ról 200%-ra nőtt. Azt is megszüntették, hogy a nagy méretarányú szöveg túl nagy legyen: mostantól nemlineáris skálázási módosítás alkalmazásra kerül (a már nagy szöveg arányozása kevésbé intenzív, mint a kicsi), amely lehetővé teszi az olvashatóság optimalizálását gyengénlátók számára anélkül, hogy a felhasználói felület elrendezése torzulna.

- A legutóbb megjelent video HDR (nagy dinamikatartományú világosság) támogatásának lehetőségeit kibővítették a kamerából származó kiegészítő információk beszerzésével, amelyek lehetővé teszik a képek "Ultra HDR" formátumban történő mentését, ahol a színkódolás 10 bit/csatorna használatával történik. Az Ultra HDR formátum teljes mértékben kompatibilis a JPEG képformátummal, így az alkalmazások módosítások nélkül képesek kezelni az HDR-képeket, és szükség esetén megjeleníteni azokat a hagyományos dinamikatartományban. Az HDR üzemmód automatikusan aktiválásra kerül a platform által, ha az alkalmazás manifesztjében aktív a HDR támogatás, vagy amikor a Window.setColorMode hívásra kerül. A külön Ultra HDR renderelése OpenGL vagy Vulkan segítségével a Gainmap osztály használatával valósítható meg.

- Korlátozták azon alkalmazás típusait, amelyeknek engedélyezett a teljes képernyős értesítések megjelenítése a képernyő lezárása közben. Ezek az értesítések a sürgős reagálást igénylő információkra, például bejövő hívásra vagy ébresztőóra jelzésére összpontosítanak, ezért ezeknek az értesítéseknek a megjelenítésére jogköröket most csak a telefonálásra és figyelmeztető jelzések kiadására alkalmas alkalmazások kapják meg.
- Fejlesztették az animációs vezérlést, amely a különböző képernyők (lapok) közötti áttérést jelzi a tartalom elcsúsztató gesztusával. Új komponensek kerültek bevezetésre az alsó és oldalsó képernyők váltásához, valamint a keresés meghívásához. API-t adtak hozzá egyedi átmeneti effektusok létrehozásához az alkalmazásban.
- Frissítették a kamera kiterjesztések (Camera Extensions) készletét, amely lehetőséget biztosít a hosszabb időt igénylő, intenzív számításokat igénylő algoritmusok használatára a képek feldolgozása során, például a gyenge világítással készült fényképek minőségének javítására. Új funkciók kerültek hozzáadásra, amelyek lehetővé teszik a fénykép feldolgozásához szükséges késleltetések előrejelzését, a feldolgozási előrehaladás nyomon követését és a végső kép elkészítése előtt gyors vázlat készítését. A SurfaceView előnézeti üzemmódja optimalizáltabb és energiatakarékosabb lett. A kiterjesztések használata során biztosítva van a tapintás támogatása a fókuszáláshoz és a nagyításhoz.
- Támogatást kapott a kamerába épített skálázási és vágási lehetőségek használatára a továbbított RAW képek esetében.
- A USB-n keresztül csatlakoztatott vezetékes fejhallgatók számára most már lehetséges a veszteségmentes hangformátumok alkalmazása. Az API-hoz hozzáadódott az AudioMixerAttributes osztály, amely lehetővé teszi a hang közvetlen továbbítását az eszközre, keverés, hangerőkorrekció és effektuskezelés nélkül.
- A grafikus API-ban megvalósításra került a Mesh osztály, amely lehetővé teszi saját polygon hálózati variációk létrehozását AGSL nyelven írt csúcspont és fragment shader-ekkel.
- Hozzáadva a hardveres gyorsítás a képkockák bufrába történő rajzolásához, amelyet a HardwareBufferRenderer osztály valósított meg.
- A Path osztályhoz, amely lehetővé teszi vektorgrafika létrehozását összetett geometriai kontúrok alapján, hozzáadódott a kontúrok közötti interpoláció támogatása hasonló struktúrával a morfáló hatás létrehozásához, valamint a PathIterator iterátor a kontúr minden szegmense soros bejárásához.
- Bővült a különböző alkalmazásokhoz kötött nyelvi beállítások szabályozásának lehetősége. Lehetőséget biztosít arra, hogy meghatározza a nyelvlistát, amely megjelenik az Android konfigurátorban, amikor a konkrét alkalmazás számára választ nyelvet.
- Bővítették azokat a területeket, ahol a rendszer a Play Console Form-ban a fejlesztő által meghatározott adatvédelmi információkat mutatja, mint például a harmadik félnek való adatközlés politikája. Például ezek az információk mostantól a jogosultsági kérés párbeszédablakában is megjelennek.
- A háttérben működő kezelőket használó alkalmazásokban most már kötelező a háttérszolgáltatás típusának megadása. A rendszer működés közben ellenőrzi a megadott szolgáltatási típus, a kért jogosultságok és a használt API megfelelőségét. Például, ha egy alkalmazás a FOREGROUND_SERVICE_TYPE_LOCATION háttérszolgáltatás típust adta meg, akkor elvárt, hogy kérje az ACCESS_COARSE_LOCATION vagy ACCESS_FINE_LOCATION jogosultságokat.
- A módosítások célja a biztonság növelése: Az alkalmazások számára tilos belső platformkomponensekhez intent kéréseket küldeni. A dinamikusan betöltött kódot ezentúl csak olvasási módban kell megjelölni. A ZipFile(String) és a ZipInputStream.getNextEntry() funkciókban tilos az olyan zip-archívumok kezelése, amelyek útvonala „/” karakterrel kezdődik, vagy tartalmazza a „..” sorozatot. Korlátozott a háttérkezelők által végzett feladatok futtatása, és frissültek a SDK-n nem elérhető programozási interfészek hívási korlátai.
- USB-n keresztül történő csatlakozáskor a korábban elérhető interakciós módok, mint a fájlátvitel, töltés, internetmegosztás stb. mellett megjelent a mobiltelefon webkamera üzemmódban való használatának lehetősége (UVC, USB Video Class üzemmód). Alapértelmezés szerint ez a funkció le van tiltva, de root-hozzáféréssel aktiválható.
- Folyamatosan javították a platform működését táblagépeken és hajlítható kijelzős eszközökön. Olyan könyvtárakat biztosítottak, amelyek előrejelzik az egérmozgással kapcsolatos eseményeket, és alacsony késleltetést biztosítanak stylus használata esetén. Nagy képernyőkre optimalizált felhasználói felület sablonok állnak rendelkezésre, figyelembe véve olyan alkalmazásokat, mint a közösségi média, kommunikáció, multimédiás tartalom, olvasás és vásárlás.
- Külön jogosultság hozzáadása az alkalmazások számára, hogy háttérben lévő alkalmazás esetén műveleteket indíthassanak. Háttérben való aktiválás korlátozott, hogy ne zavarja a felhasználót a jelenlegi alkalmazással végzett munka közben. Az aktív alkalmazások számára több lehetőség áll rendelkezésre a más alkalmazások által végzett műveletek aktiválása feletti ellenőrzésre, amelyekkel kölcsönhatásban állnak.
- A háttérműveletekhez szükséges erőforrások hatékonyabb hozzárendelésére optimalizálták a memória kezelési rendszert. Néhány másodperccel az alkalmazás cache-elt állapotba való helyezése után a háttérműveletek a cikluskezelő API-kra korlátozódnak, mint például a Foreground Services, JobScheduler és WorkManager API-ra.
- A FLAG_ONGOING_EVENT flag notification can now be dismissed when displayed on an unlocked device. If the device is in lock mode, such notifications will remain undismissed. Notifications that are critical for system operation will also remain undismissed.
- The PackageInstaller API has added new methods: requestUserPreapproval(), which allows the application directory to defer the download of APK packages until user installation confirmation is received; setRequestUpdateOwnership(), which allows the installer to secure future application update operations; setDontKillApp(), which enables additional app capabilities while working with the program. The InstallConstraints API provides installers with the ability to trigger application update installations at times when the application is not in use.
- Work continues on improving platform functionality on tablets and devices with foldable screens. Updated guidelines for app development for large-screen devices have been presented, along with standard interface templates for large screens, taking into account uses such as social media, communication, multimedia content, reading, and making purchases. A preview release of the Cross device SDK with tools for developing applications that function correctly on different types of devices (smartphones, tablets, smart TVs, etc.) and various form factors has been proposed.
- Optimizations have been implemented for coordinating resource-intensive background tasks, such as downloading large files when connected to Wi-Fi. Changes have been made to the API for foreground service execution priority and job scheduling, adding new functionality for user-initiated tasks related to data transfer. Requirements have been introduced for specifying the type of foreground services being initiated (camera work, data synchronization, multimedia playback, location tracking, microphone access, etc.). Conditions for activating data downloads have been simplified, for example, for downloading only via Wi-Fi access.
- A belső széles körű üzenetküldő rendszer (broadcast system) optimalizálva lett az energiafogyasztás csökkentésére és a válaszidő javítására. Fejlesztettük az alkalmazások által regisztrált üzenetsorok átvételét — az üzenetek sorba állíthatók, csoportosíthatók (például a BATTERY_CHANGED üzenetek sorozata egybe aggregálódik) és csak az alkalmazás gyorsítótárazott állapotából való kilépése után kézbesíthetők.
- Megnöveltük a maximálisan gyorsítótárazott alkalmazások számát, ami lehetővé tette a «hideg» üzemmódban (azaz a memóriában nem gyorsítótárazott és lassabban indított) futtatott alkalmazások számának csökkentését. 8 GB RAM-mal rendelkező eszközök esetében a korlátozások megváltoztatása után a «hideg» indítások száma 20%-kal csökkent, 12 GB RAM-mal pedig 30%-kal.
- Az alkalmazások pontos időpontban végrehajtott műveletek végrehajtásához (exact alarms) mostantól külön jogosultság, a SCHEDULE_EXACT_ALARM megadása szükséges, mivel ennek a funkcionalitásnak a használata negatívan befolyásolhatja az akkumulátor élettartamát és megnövelheti az erőforrások fogyasztását (a menetrend szerint végrehajtott feladatokhoz ajánlott a körülbelüli időpontban való aktiválást használni). Azoknak az alkalmazásoknak, amelyek pontos időpontban aktiválást használnak a naptár és az óra megvalósításához, telepítéskor meg kell adniuk a USE_EXACT_ALARM jogosultságot. A Google Play alkalmazásboltban a USE_EXACT_ALARM jogosultsággal rendelkező alkalmazások listázása csak az ébresztő, időzítő és naptár értesítésekkel rendelkező programokra engedélyezett.
- Lehetőség nyílik a nyelvi beállítások alkalmazásokhoz kapcsolására. Az alkalmazás fejlesztője mostantól módosíthatja a localeConfig paramétereket a LocaleManager.setOverrideLocaleConfig hívásán keresztül, hogy meghatározza a nyelvek listáját, amelyeket az Android beállítási felületén az alkalmazás számára megjelenítenek.
- Hozzáadtuk a Grammatical Inflection API-t, amely megkönnyíti a nyelvi rendszereket figyelembe vevő felhasználói felületek elemeinek fordítását.
- A rosszindulatú alkalmazások által az intent-kérések lehallgatásának megakadályozására az új verzióban tilos az intent-ek küldése, ha a csomag vagy belső komponens explicit megadása nélkül történik.
- A dinamikus kódbetöltés (DCL, Dynamic Code Loading) biztonsága növelve lett, hogy elkerüljük a kártékony kód beszúrását a dinamikusan betöltött végrehajtható fájlokba. Ezeknek a fájloknak mostantól csak olvasási jogokkal kell rendelkezniük.
- Tilos az SDK 23 alatti verzióval rendelkező alkalmazások telepítése, ami lehetővé teszi a jogosultságok megkerülésének megakadályozását a régi API-khoz való kötődéssel (az API 22 verzió tilalma miatt, mivel a 23-as verzióban (Android 6.0) új hozzáféréskezelési modell jelent meg, amely lehetővé teszi a rendszer-erőforrásokhoz való hozzáférés kérését). A régebbi API-kat használó alkalmazások az Android frissítése után továbbra is működni fognak.
- Javasolták az API Credential Manager-t, amely lehetővé teszi, hogy az alkalmazásokba külső hitelesítő szolgáltatók adatai segítségével lépjenek be a felhasználók. Támogatást kaptak a Passkey technológiához, amely lehetővé teszi a felhasználók azonosítását jelszó nélkül biometrikus azonosítók, például ujjlenyomat vagy arcfelismerés használatával. Fejlesztették a fiók kiválasztásának felületét.
- Az Android Runtime (ART) támogatja az OpenJDK 17-et. A platform alap Java könyvtárai és az alkalmazásfejlesztő eszközök az OpenJDK 17-re lettek frissítve. Támogatás került az OpenJDK 17 általi nyelvi funkciók és Java osztályok, például record típusú osztályok, többsoros karakterláncok és a 'instanceof' operátor mintázatillesztése iránt.
- Az Android Runtime-ban fejlettebb tömörítési módszerek léptek életbe, amelyek lehetővé tették a fájlok átlagos méretének 9,3%-os csökkentését a teljesítmény rovására nélkül.
- Megváltozott a hitelesítési központok (CA) tanúsítványainak frissítési módja. A rendszer tanúsítványai már nem fognak a firmware-hez kötődni, hanem külön csomagban kerülnek terjesztésre, amely a Google Play-en keresztül frissíthető. Ez a megközelítés egyszerűbbé teszi a tanúsítványok aktualizálását és a kompromittált hitelesítési központok tanúsítványainak eltávolítását, valamint megakadályozza, hogy az eszközgyártók manipulálják a gyökértanúsítványok listáját, és függetlenné teszi a frissítésüket a firmware frissítéseitől. Másrészről, az új terjesztési mód nem teszi lehetővé, hogy a felhasználók módosításaikat a rendszer tanúsítványaiban végrehajtsák, még akkor sem, ha root hozzáféréssel rendelkeznek a rendszerhez és teljes mértékben ellenőrzik a firmware-t.
Forrás: opennet.ru









