Google har offentliggjort udgivelsen af den åbne mobilplatform Android 14. Kildekoden relateret til den nye version er tilgængelig i projektets Git-arkiv (gren android-14.0.0_r1). Firmware-opdateringer er blevet forberedt til Pixel-enhederne. Senere planlægges firmware-opdateringer til smartphones fra producenterne Samsung Galaxy, iQOO, Nothing, OnePlus, Oppo, Realme, Sharp, Sony, Tecno, vivo og Xiaomi. Derudover er der blevet udarbejdet universelle GSI (Generic System Images)-builds, der er kompatible med forskellige enheder baseret på ARM64- og x86_64-arkitekturer.
Hovednyhederne:
- Hovedkomponenten i platformen inkluderer Health Connect-lageret, som tidligere blev leveret som en separat pakke gennem Google Play. Health Connect muliggør centraliseret lagring af data fra fitnessarmbånd og andre enheder, der vedrører brugerens sundhed, og organiserer deling af sundhedsdata mellem forskellige apps. Adgang til indstillingerne for Health Connect vil nu blive givet via den indbyggede platformkonfigurator, hvor man for eksempel i privatlivsindstillingerne kan styre, hvilke specifikke sundhedsdata bestemte apps kan få adgang til. Derudover er der tilføjet støtte til at gemme oplysninger om ruten under træning (brugeren angiver tidsrammen for, hvornår listen over waypoints skal gemmes). Ruten kan visualiseres på et kort og, hvis ønskes, overføres til behandling af andre apps efter brugeren har bekræftet handlingen.

- Midlertidige forbindelsesmetoder til bekræftelse af adgang til lokationsoplysninger er blevet udvidet. Dialogen, der beder om bekræftelse af adgang til lokationen, har fået et nyt afsnit med oplysninger om, hvornår appen overfører lokationsdata (adgang nægtet, tillad kun én gang, og tillad ved hver app-aktivering) samt detaljer om, hvor man kan finde yderligere information om adgangen til de overførte data.

- Der er implementeret periodisk (en gang om måneden) udsendelse af meddelelser, der advarer om ændringer i apps, der har fået adgang til lokationen, og metoder til overførsel af data til tredjepart (f.eks. vises det, når appen begynder at bruge lokationsdata til at vise reklamer).

- Når du arbejder med applikationer, er der implementeret en mere iøjnefaldende tilbagevendende pil, som vises for at lette forståelsen af, hvordan skærj gestus aktivt kan anvendes til at gå tilbage.

- I Sharesheet-mekanismen, der bruges til at sende data (f.eks. billeder eller links) uden for applikationen eller til en anden bruger, er det nu muligt at tilføje egne handlinger. For eksempel kan du definere din egen liste over ChooserAction-håndterere, der viser applikationer og brugere, som du kan sende til. Derudover er det muligt at variere signalerne, der anvendes til at rangere målene for direkte sendelse af data.

- Der er givet mulighed for delvis delegation af beføjelser til kun at få adgang til de billeder og videoer, som brugeren vælger (READ_MEDIA_VISUAL_USER_SELECTED, de filer, der gives adgang til, vælges af brugeren gennem Photo picker-grænsefladen, når dialogen om beføjelser vises). Efter at applikationen er blevet sendt til baggrunden eller lukket, bliver de beføjelser, der er givet af brugeren, automatisk tilbagekaldt. I bekræftelsesdialogen for applikationers adgang til multimediefiler er der blevet tilføjet mulighed for kun at give adgang til de udvalgte billeder eller videoer.

- Konfiguratoren har fået en sektion til overstyring af indstillinger for regionale præferencer, såsom måleenheder for temperatur, første dag i ugen og talsystem. For eksempel kan en europæer, der bor i USA, indstille til at bruge Celsius til temperaturvisning i stedet for Fahrenheit og betragte mandag som ugen begyndelse i stedet for søndag.

- Mulighederne for skalerings af skrifttyper er blevet udvidet, det maksimale niveau for skriftstørrelsesskala er øget fra 130% til 200%, og for at teksten ved stor forstørrelse ikke ser for stor ud, anvendes der nu automatisk en ikke-lineær forandring af skaleringsniveauet (allerede store tekster forstørres ikke lige så meget som små), hvilket vil sikre optimal læsbarhed for personer med nedsat syn uden risiko for forvrængning af interface-layoutet.

- Den tidligere nævnte understøttelse af optagelse af video med høj dynamisk lysstyrke (HDR) er blevet udvidet med funktioner til at indhente yderligere oplysninger fra kameraet, der muliggør gemning af billeder i "Ultra HDR"-format, hvor 10 bit pr. kanal bruges til farvekodning. Ultra HDR-formatet er helt kompatibelt med JPEG, hvilket gør det muligt for applikationer at arbejde med HDR-billeder uden ændringer og, hvis nødvendigt, vise dem med et almindeligt lysstyrkeområde. HDR-udgangen leveres automatisk af platformen, hvis HDR-understøttelse aktiveres i applikationens manifest eller ved at kalde Window.setColorMode. Til separat rendering af Ultra HDR ved hjælp af OpenGL eller Vulkan kan klassen Gainmap benyttes.

- Typer af applikationer, der har tilladelse til at vise fuldskærmsmeddelelser ved låsning af skærmen, er begrænsede. Sådanne meddelelser er beregnet til at tiltrække opmærksomhed til information, der kræver øjeblikkelig reaktion, såsom indgående opkald eller alarm, så beføjelserne til at vise sådanne meddelelser vil nu være begrænset til opkalds- og alarmsignalapplikationer.
- Forbedret animationstyring, der signalerer overgangen mellem forskellige skærme (faner) i applikationen ved at bruge glidebevægelser, der flytter indhold. Nye komponenter til animation af skift mellem nederste og side-skærme samt opkald af søgning er blevet tilføjet. API til oprettelse af brugerdefinerede overgangseffekter i applikationen er blevet tilføjet.
- Sættet af kamerafunktioner (Camera Extensions) er blevet opdateret, hvilket giver mulighed for brug af længerevarende algoritmer, der kræver intens behandling for billedbehandling, som f.eks. til forbedring af billedkvaliteten ved svagt lys. Funktioner til at forudsige forsinkelser i billedbehandlingen, få information om behandlingsfremskridt og hurtig adgang til et råbillede før den endelige billedbehandling er gennemført er blevet tilføjet. En mere optimeret og energieffektiv forhåndsvisningstilstand for SurfaceView er blevet implementeret. Under brug af udvidelserne er der sikret støtte til berøringsfokus og zoom.
- Funktionen til skalering og beskæring af overførte RAW-billeder, som er indbygget i kameraet, er blevet understøttet.
- For kablede hovedtelefoner, der tilsluttes via USB, er der tilføjet mulighed for at anvende tabsfrie lydformater. Klassen AudioMixerAttributes er blevet tilføjet i API'et, hvilket muliggør direkte afsendelse af lyd til enheden uden blanding, volumenjustering og effekthåndtering.
- Den grafiske API har implementeret klassen Mesh, som gør det muligt at skabe egne varianter af polygonnet med vertex- og fragment-shadere skrevet i AGSL-sproget.
- Muligheden for hardwareacceleration af rendering til buffer er blevet tilføjet gennem klassen HardwareBufferRenderer.
- Klassen Path, der gør det muligt at skabe vektorgrafik baseret på sammensatte geometriske konturer, har fået tilføjet understøttelse af interpolation mellem konturer med lignende struktur for at skabe morfingseffekter samt brugen af iteratoren PathIterator til sekventiel iterering gennem alle segmenter af konturen.
- Mulighederne for at knytte specifikke sprogindstillinger til forskellige applikationer er blevet udvidet. Der er givet mulighed for at definere en liste over sprog, der vil blive vist i Android-konfiguratoren, når der vælges sprog for en bestemt applikation.
- Områderne, hvor systemet viser oplysninger relateret til fortrolighed, bestemt af udvikleren i Play Console Form, er blevet udvidet, såsom politikken for deling af data med tredjeparter. For eksempel vises sådanne oplysninger nu i dialogen for anmodning om tilladelser.
- I applikationer, der bruger baggrundsbehandlere, er det nu obligatorisk at angive typen af baggrundstjeneste. Under drift kontrollerer systemet overensstemmelsen mellem den angivne tjenestetype, de anmodede tilladelser og den anvendte API. For eksempel, hvis en applikation angiver typen baggrundstjeneste FOREGROUND_SERVICE_TYPE_LOCATION, forstås det, at der kan anmodes om tilladelserne ACCESS_COARSE_LOCATION eller ACCESS_FINE_LOCATION.
- Ændringer er foretaget for at forbedre sikkerheden: Afsendelse af intent-anmodninger fra applikationer til visse interne platformskomponenter er forbudt. Dynamisk indlæst kode skal nu mærkes med en attribut for adgang i skrivebeskyttet tilstand. Behandling af zip-arkiver i funktionerne ZipFile(String) og ZipInputStream.getNextEntry() er forbudt, hvis stierne starter med symbolet "\/" eller indeholder sekvensen "..". Kørsel af opgaver fra baggrundsbehandlere er begrænset, og begrænsningerne for opkald af API'er, der ikke tilbydes i SDK'en, er blevet opdateret.
- Når en enhed tilsluttes via USB til en stationær computer, er der nu mulighed for at bruge smartphones som webkamera (UVC-tilstand, USB Video Class) ud over de tidligere tilgængelige interaktionsmetoder såsom filoverførsel, opladning og deling af internet mv. Denne funktion er som standard deaktiveret, men kan aktiveres ved at have root-adgang.
- Forbedringer af platformens funktionalitet på tabletter og foldbare enheder er fortsat. Biblioteker, der muliggør forudsigelse af hændelser relateret til musebevægelse, er blevet leveret, og der er sikret lav latens ved brug af stylus. Der tilbydes grænseflade-skabeloner til store skærme, der tager hensyn til anvendelser som sociale medier, kommunikation, multimedieindhold, læsning og online shopping.
- Der er tilføjet en separat tilladelse til at give apps mulighed for at udføre handlinger, når appen kører i baggrunden. Aktiv er begrænset under baggrundsdrift for ikke at forstyrre brugeren, mens de arbejder med den aktuelle app. Aktive apps har fået flere muligheder for at kontrollere aktivering af handlinger fra andre apps, som de interagerer med.
- System management memory has been optimized for more efficient resource allocation to applications running in the background. A few seconds after the application is switched to cached state, background work is limited to interacting with APIs that manage the application's lifecycle, such as Foreground Services API, JobScheduler, and WorkManager.
- Notifications marked with the FLAG_ONGOING_EVENT flag can now be dismissed when displayed on an unlocked device. If the device is in lock screen mode, such notifications will remain undismissable. Notifications that are critical for system operation will also remain undismissable.
- The PackageInstaller API has new methods: requestUserPreapproval(), allowing the application manager to delay downloading APK packages until receiving user installation confirmation; setRequestUpdateOwnership(), which allows the installer to secure ownership of future application update operations; setDontKillApp(), which allows for additional application capabilities while interacting with the software. In the InstallConstraints API, installers are provided the ability to activate application update installations at times when the application is not in use.
- Arbejdet med at forbedre platformens funktionalitet på tabletter og foldbare enheder er blevet fortsat. Anbefalingerne til udvikling af applikationer til enheder med store skærme er blevet opdateret, og der er tilføjet standardiserede grænseflade-skabeloner til store skærme, der tager hensyn til anvendelser som sociale medier, kommunikation, multimedieindhold, læsning og online shopping. En forhåndsudgave af Cross device SDK er blevet foreslået med værktøjer til udvikling af applikationer, der fungerer korrekt på forskellige enhedstyper (smartphones, tabletter, smart-tv osv.) og forskellige formfaktorer.
- Optimering af koordineringen af udførelsen af ressourcekrævende baggrundsarbejde, som f.eks. upload af store filer ved Wi-Fi-forbindelse, er gennemført. Der er foretaget ændringer i API'en til lancering af prioriterede tjenester (Foreground Service) og planlægning af opgaver (JobScheduler), hvori der er tilføjet ny funktionalitet til brugerinitierede opgaver relateret til dataoverførsel. Der er indført krav om angivelse af typen af lancerede prioriterede tjenester (arbejde med kamera, datasyngning, afspilning af multimediedata, lokationssporing, adgang til mikrofon osv.). Det er blevet enklere at definere betingelserne for aktivering af dataopload, f.eks. kun at uploade når der er adgang til Wi-Fi.
- Det interne system til levering af broadcast-beskeder til applikationer er optimeret for at reducere energiforbruget og øge responsiviteten. Modtagelsen af registrerede beskedstreams er forbedret — beskeder kan stilles i kø, aggregeres (f.eks. vil en serie af BATTERY_CHANGED beskeder blive samlet til én) og leveres først efter, at applikationen er ude af cache-tilstand.
- Grænsen for det maksimale antal cachede applikationer er blevet hævet, hvilket har reduceret antallet af applikationer, der startes i 'kold' tilstand (d.i. ikke cachede i hukommelsen og derfor langsommere at starte). For enheder med 8 GB RAM er antallet af 'kolde' applikation starter faldet med 20%, mens det for 12 GB har været 30%.
- Brugen af funktionen til præcise tidsoperationer i applikationer kræver nu et særskilt tilladelse SCHEDULE_EXACT_ALARM, da brugen af denne funktionalitet kan have en negativ indvirkning på batterilevetiden og føre til øget ressourceforbrug (for opgaver der udføres efter en tidsplan anbefales det at bruge aktivering i cirka tid). Applikationer med implementering af kalender og ure, der bruger aktivering i præcise tider, skal have tilladelsen USE_EXACT_ALARM ved installation. Offentliggørelser i Google Play-kataloget af applikationer med tilladelsen USE_EXACT_ALARM er kun tilladt for programmer med implementering af alarm, timer og kalender med begivenhedsnotifikationer.
- Muligheden for at angive sprognavigation, der er knyttet til individuelle applikationer, er blevet tilføjet. App-udvikleren kan nu ændre localeConfig-indstillingerne gennem et kald til LocaleManager.setOverrideLocaleConfig for at definere listen over sprog, der vises i indstillingsgrænsefladen for Android.
- API'et til Grammatikalsk Bøjning er blevet tilføjet for at forenkle tilføjelsen af oversættelser af brugerfladeelementer, der tager højde for sprog med kønssystemer.
- For at forhindre, at ondsindede applikationer opsnapper intent-anmodninger, er det i den nye version forbudt at sende intents uden tydelig angivelse af pakken eller den interne komponent.
- Sikkerheden ved dynamisk kodelæsning (DCL, Dynamic Code Loading) er blevet forbedret — for at undgå indsættelse af ondsindet kode i dynamisk indlæste udførlige filer, skal disse filer nu have adgangsrettigheder, der kun tillader læsning.
- Installationen af applikationer, der er erklæret med en SDK-version under 23, er blevet forbudt. Dette vil blokere for omgåelse af rettighedsbegrænsninger gennem binding til gamle API'er (API-version 22 er forbudt, da en ny adgangsstyringsmodel blev introduceret i version 23 (Android 6.0), som tillader at anmode om adgang til systemressourcer i realtid). Tidligere installerede applikationer, der bruger gamle API'er, vil fortsætte med at fungere efter opdatering af Android.
- API'et Credential Manager er blevet foreslået, hvilket muliggør login i applikationer ved hjælp af legitimationsoplysninger fra eksterne autentificeringsudbydere. Understøttelse af teknologien Passkeys er implementeret, hvilket tillader brugeren at blive autentificeret uden adgangskoder ved hjælp af biometriske identificeringer som fingeraftryk eller ansigtsgenkendelse. Brugerfladen til valg af konto er blevet forbedret.
- Android Runtime (ART) understøtter nu OpenJDK 17. Grundlæggende Java-biblioteker i platformen og udviklingsværktøjer er blevet opdateret til OpenJDK 17. Understøttelse af de sproglige funktioner og Java-klasser, der er tilgængelige i OpenJDK 17, er blevet tilføjet, f.eks. record-klasser, flerdimensionelle strenge og mønstermatching i 'instanceof'-operatoren.
- Android Runtime har anvendt mere avancerede komprimeringsmetoder, som har reduceret filstørrelsen med gennemsnitligt 9,3 % uden at gå på kompromis med ydeevnen.
- Metoden til opdatering af certifikater fra certifikationsmyndigheder (CA) er ændret. Systemcertifikater vil ikke længere være bundet til firmware, men leveres i en separat pakke, der opdateres via Google Play. Denne tilgang vil gøre det lettere at vedligeholde opdaterede certifikater og fjerne certifikater fra kompromitterede certifikationsmyndigheder, samt forhindre enhedsproducenter i at manipulere listen over rodcertifikater og gøre opdateringsprocessen uafhængig af firmwareopdateringer. På den anden side vil den nye leveringsmetode ikke tillade brugeren at ændre systemcertifikater, selvom de har root-adgang til systemet og fuld kontrol over firmwaren.
Kilde: opennet.ru









