Google har lanceret en åben mobilplatform. Android Kildekoden til den nye udgivelse er blevet placeret i projektets Git-repository (branch android-12.0.0_r1). Firmwareopdateringer er tilgængelige til Pixel-enheder samt smartphones fra Samsung Galaxy, OnePlus, Oppo, Realme, Tecno, Vivo og Xiaomi. Derudover er der blevet oprettet universelle GSI (Generic System Images) builds, der er egnede til forskellige enheder baseret på ARM64- og x86_64-arkitekturerne.
Vigtigste innovationer:
- En af de mest betydningsfulde opdateringer af interfacedesignet i projektets historie er blevet foreslået. Det nye design implementerer "Material You"-konceptet, der præsenteres som en næste generations version af Material Design. Det nye koncept vil automatisk blive anvendt på alle platforme og interfaceelementer og vil ikke kræve nogen ændringer fra applikationsudviklere. I juli forventes applikationsudviklere at modtage den første stabile udgivelse af det nye værktøjssæt til udvikling af grafiske grænseflader, Jetpack Compose.

Selve platformen har et nyt widgetdesign. Widgets er nu mere synlige, hjørnerne er afrundede, og dynamiske farver kan bruges til at matche systemtemaet. Interaktive kontroller såsom afkrydsningsfelter og knapper (CheckBox, Switch og RadioButton) er blevet tilføjet, hvilket for eksempel giver dig mulighed for at redigere opgavelister i TODO-widgetten uden at åbne appen.

En mere jævn visuel overgang til applikationer, der startes fra widgets, er blevet implementeret. Widget-personalisering er blevet forenklet - en knap (en cirkel med en blyant) er blevet tilføjet til hurtigt at omkonfigurere widgetens placering på skærmen, som vises, når du trykker længe på widgetten.


Der tilbydes yderligere størrelsesbegrænsningstilstande for widgets og muligheden for at bruge responsivt layout af widget-elementer til at oprette standardlayouts, der ændrer sig afhængigt af størrelsen på det synlige område (for eksempel kan du oprette separate layouts til tablets og smartphones). Widget-vælgergrænsefladen implementerer en dynamisk forhåndsvisning og muligheden for at vise en widgetbeskrivelse.

- Tilføjet muligheden for automatisk at tilpasse systempaletten til farven på det valgte baggrundsbillede - systemet registrerer automatisk de dominerende farver, justerer den aktuelle palet og anvender ændringer på alle grænsefladeelementer, herunder meddelelsesområdet, låseskærmen, widgets og lydstyrkekontrol.
- Nye animerede effekter er blevet implementeret, såsom gradvis zoom og jævn forskydning af områder, når man ruller, viser og flytter elementer på skærmen. Når du f.eks. lukker en notifikation på låseskærmen, øges tidsindikatoren automatisk og optager den plads, der tidligere blev optaget af notifikationen.
- Designet af rullemenuen med notifikationer og hurtigindstillinger er blevet redesignet. Der er tilføjet muligheder for Google Pay og smart home-styring til hurtigindstillingerne. Ved at holde tænd/sluk-knappen nede, sendes et opkald til Google Assistant, som kan få en kommando om at foretage et opkald, ringe til en applikation eller læse en artikel højt. Notifikationer med indhold angivet af applikationen er blevet tilføjet til den generelle visning.

- Tilføjet effekten af at strække rullekanterne (Stretch overscroll), hvilket gør det tydeligt, at brugeren er gået ud over rulleområdet og har nået slutningen af indholdet. Billedet af indholdet med den nye effekt ser ud til at strække sig og springe tilbage. Den nye tilstand til at angive slutningen af rulningen er aktiveret som standard, men der er en mulighed i indstillingerne for at vende tilbage til den gamle funktionsmåde.
- Optimeret brugerflade til enheder med foldbare skærme.

- Der er implementeret mere jævne lydovergange - når man skifter fra én applikation, der udsender lyd, til en anden, forsvinder lyden fra den første nu jævnt, og lyden fra den anden øges jævnt, uden at den ene lyd overlapper den anden.
- Grænsefladen til administration af netværksforbindelser i hurtigindstillingsblokken, panelet og systemkonfiguratoren er blevet moderniseret. Et nyt internetpanel er blevet tilføjet, så du hurtigt kan skifte mellem forskellige udbydere og diagnosticere problemer.

- Tilføjet muligheden for at lave skærmbilleder, der ikke kun dækker det synlige område, men også indholdet i rulleområdet. Muligheden for at holde indhold uden for det synlige område fungerer for alle applikationer, der bruger View-klassen til output. For at implementere understøttelse af rulning af skærmbilleder i programmer, der bruger specifikke grænseflader, er ScrollCapture API blevet foreslået.

- Funktionen til automatisk rotation af skærmindhold er blevet forbedret, som nu kan bruge ansigtsgenkendelse fra frontkameraet til at bestemme, om skærmen skal drejes, for eksempel når en person bruger telefonen, mens han ligger ned. For at sikre fortrolighed behandles oplysninger i farten uden mellemlagring af billeder. Funktionen er i øjeblikket kun tilgængelig på Pixel 4 og nyere smartphones.
- Forbedret billed-i-billede-tilstand (PIP, Picture in Picture) og øget glathed af overgangseffekter. Hvis du aktiverer automatisk overgang til PIP med en up-to-home gestus (skifter bunden af skærmen op), skiftes applikationen nu straks til PIP-tilstand uden at vente på, at animationen er fuldført. Forbedret størrelsesændring af PIP-vinduer med ikke-videoindhold. Tilføjet muligheden for at skjule PIP-vinduet ved at trække det til venstre eller højre kant af skærmen. Funktionen ved berøring af et PIP-vindue er blevet ændret - et tryk viser nu kontrolknapperne, og et dobbelttryk ændrer vinduets størrelse.
- Der blev udført en betydelig optimering af systemets ydeevne - belastningen på CPU'en for de primære systemtjenester faldt med 22 %, hvilket igen førte til en stigning i batterilevetiden på 15 %. På grund af reduktionen af låsekonflikter, reduktion af forsinkelser og optimering af input/output blev ydeevnen ved skift fra én applikation til en anden øget, og tiden for applikationsopstart blev reduceret.
I PackageManager er låsekonflikter reduceret med 92 %, når der arbejdes med snapshots i skrivebeskyttet tilstand. Binders kommunikationsmekanisme mellem processer bruger letvægts caching, hvilket har reduceret latenstiden med 47 gange for visse typer kald. Ydeevnen af dex-, odex- og vdex-filbehandling er blevet forbedret, hvilket har ført til en reduktion i app-indlæsningstiden, især på enheder med lav hukommelse. Start af apps fra notifikationer er blevet accelereret, for eksempel er det nu 34 % hurtigere at starte Google Fotos fra en notifikation.
Forbedret ydeevne af databaseforespørgsler ved hjælp af inline-optimeringer i CursorWindow-operationen. For små datamængder er CursorWindow blevet 36 % hurtigere, og for sæt, der indeholder mere end 1000 rækker, kan accelerationen nå op på 49 gange.
Der foreslås kriterier for klassificering af enheder efter ydeevne. Afhængigt af enhedens egenskaber tildeles den en ydeevneklasse, som derefter kan bruges i applikationer til at begrænse funktionaliteten af codecs på enheder med lavt strømforbrug eller til at arbejde med multimedieindhold af højere kvalitet på kraftfuldt udstyr.
- Implementeret programdvaletilstand, som tillader automatisk at nulstille de tidligere tildelte programtilladelser, stoppe udførelsen, returnere de ressourcer, der er brugt af programmet, såsom hukommelse, og blokere start af baggrundsarbejde og afsendelse af push-notifikationer, hvis brugeren ikke har interageret med programmet i lang tid. Tilstanden kan bruges til de fleste applikationer og giver dig mulighed for at beskytte brugerdata, som længe glemte programmer fortsat har adgang til. Hvis det ønskes, kan dvaletilstanden selektivt deaktiveres i indstillingerne.
- Animationen ved drejning af skærmen er blevet optimeret, hvilket reducerer forsinkelsen før rotation med ca. 25 %.
- Den nye højtydende søgemaskine AppSearch er inkluderet, hvilket giver dig mulighed for at indeksere oplysninger på enheden og udføre fuldtekstsøgning med rangering af resultater. AppSearch tilbyder to typer indekser - til at organisere søgninger i individuelle applikationer og til at søge i hele systemet.
- Tilføjet Game Mode API og tilsvarende indstillinger, der giver dig mulighed for at administrere spillets præstationsprofil – for eksempel kan du ofre ydeevne for at forlænge batterilevetiden eller bruge alle tilgængelige ressourcer til at opnå maksimal FPS.
- Tilføjet funktionen "spil-som-du-downloader" for at downloade spilressourcer i baggrunden under installationen, så du kan begynde at spille, selv før appen er færdig med at downloade.
- Øget reaktionsevne og reaktionshastighed, når du arbejder med notifikationer. For eksempel, når en bruger trykker på en notifikation, fører den nu straks til den tilknyttede app. Ansøgninger begrænser brugen af anmeldelsestrampoliner.
- Optimerede IPC-opkald i Binder. Ved at bruge en ny caching-strategi og eliminere låsekonflikt blev forsinkelsen betydeligt reduceret. Samlet set er Binder-opkaldsydelsen nogenlunde fordoblet, men der er nogle områder, hvor der er opnået endnu større hastigheder. For eksempel blev det at kalde refContentProvider() 47 gange hurtigere, releaseWakeLock() 15 gange hurtigere og JobScheduler.schedule() 7.9 gange hurtigere.
- For at forhindre potentielle ydeevneproblemer er det forbudt for programmer at køre forgrundstjenester, mens de kører i baggrunden, undtagen i nogle få specielle tilfælde. For at starte arbejdet i baggrunden anbefales det at bruge WorkManager. For at forenkle overgangen er der foreslået en ny type arbejde i JobScheduler, som starter med det samme, har øget prioritet og netværksadgang.
- Grænsefladen til Privacy Dashboard er implementeret med en generel oversigt over alle tilladelsesindstillinger, så du kan forstå, hvilke brugerdata applikationer har adgang til. Grænsefladen indeholder også en tidslinje, der visualiserer historikken for applikationens adgang til mikrofon-, kamera- og placeringsdata. For hver applikation kan du se detaljerne og årsagerne til adgang til fortrolige data.

- Indikatorer for mikrofon- og kameraaktivitet er blevet tilføjet til panelet, og de vises, når en applikation tilgår kameraet eller mikrofonen. Ved at klikke på indikatorerne åbnes en indstillingsdialogboks, der giver dig mulighed for at bestemme, hvilken applikation der fungerer med kameraet eller mikrofonen, og om nødvendigt tilbagekalde tilladelser.
- Der er blevet tilføjet knapper til pop op-vinduet for hurtige indstillinger, som du kan bruge til at tvangsslukke mikrofonen og kameraet med. Efter slukning vil forsøg på at få adgang til kameraet og mikrofonen resultere i, at der vises en meddelelse, og at tomme data overføres til applikationen.

- Tilføjet en ny notifikation, der vises nederst på skærmen, når et program forsøger at læse indholdet af udklipsholderen ved at kalde funktionen getPrimaryClip(). Hvis indholdet af udklipsholderen kopieres i det samme program, som det blev tilføjet i, vises notifikationen ikke.
- Tilføjet en separat BLUETOOTH_SCAN-tilladelse til at scanne enheder i nærheden via Bluetooth. Tidligere blev denne funktion givet med adgang til enhedens placeringsoplysninger, hvilket krævede yderligere tilladelser for applikationer, der krævede parring med en anden enhed via Bluetooth.
- Dialogboksen til at give adgang til oplysninger om enhedens placering er blevet moderniseret. Brugeren har nu mulighed for at overføre nøjagtige placeringsoplysninger til applikationen eller kun angive omtrentlige data, samt begrænse gyldigheden af tilladelser til den aktive session, hvor programmet arbejdes (nægter adgang i baggrunden). Nøjagtighedsniveauet af de data, der angives, når en omtrentlig placering vælges, kan ændres i indstillingerne, herunder i forhold til individuelle applikationer.

- Programudviklere kan nu deaktivere pop op-advarselsvinduer, der overlapper indhold. Tidligere blev muligheden for at vise overlappende vinduer kontrolleret af en tilladelsesanmodning, der blev bekræftet under installationen af programmer, der viste overlappende vinduer. Der var ingen værktøjer til at kontrollere, om indhold overlappede af programmer, hvis vinduer overlappede. Når du bruger Window#setHideOverlay-kaldetWindows() Alle vinduer, der overlapper indhold, skjules nu automatisk. For eksempel kan skjulning aktiveres, når der vises særligt vigtige oplysninger, såsom en transaktionsbekræftelse.
- Apps får yderligere indstillinger for at begrænse meddelelseshandlinger, mens skærmen er låst. Tidligere havde du kun mulighed for at kontrollere synligheden af notifikationer, mens skærmen er låst, men nu kan du aktivere obligatorisk godkendelse for at udføre eventuelle handlinger med notifikationer, mens skærmen er låst. For eksempel kan en beskedapp kræve godkendelse før sletning eller markering af en besked som læst.
- Tilføjet PackageManager.requestChecksums() API for at anmode om og verificere kontrolsummen for en installeret applikation. Understøttede algoritmer inkluderer SHA256, SHA512 og Merkle Root.
- WebView-webmotoren implementerer muligheden for at bruge SameSite-attributten til at kontrollere cookie-behandling. Værdien "SameSite=Lax" begrænser den cookie, der sendes til underanmodninger på tværs af websteder, såsom anmodning om et billede eller indlæsning af indhold via en iframe fra et andet websted. I "SameSite=Strict"-tilstand sendes der ikke cookies til nogen form for anmodninger på tværs af websteder, inklusive alle indgående links fra eksterne websteder.
- Vi fortsætter med at arbejde på at randomisere MAC-adresser for at eliminere muligheden for enhedssporing, når den er tilsluttet et trådløst netværk. Uprivilegerede applikationer har begrænset adgang til enhedens MAC-adresse, og kaldet getHardwareAddress() returnerer nu en nulværdi.
- Tilføjet muligheden for at tilpasse grænsefladeelementer til enheder med afrundede skærme. Udviklere kan nu få information om skærmafrundinger og justere grænsefladeelementer, der falder på usynlige hjørneområder. Gennem den nye RoundedCorner API kan du finde ud af parametre såsom radius og centrum af afrundingen, og gennem Display.getRoundedCorner() og WindowInsets.getRoundedCorner() kan du bestemme koordinaterne for hvert afrundet hjørne af skærmen.

- En ny CompanionDeviceService API er blevet tilføjet for at aktivere apps, der administrerer ledsagende enheder, såsom smartwatches og fitnesstrackere. API'en løser problemet med at starte og forbinde de nødvendige apps, når en ledsagende enhed vises i nærheden. Systemet aktiverer tjenesten, når enheden er i nærheden, og sender en besked, når enheden frakobles, eller når enheden kommer ind i eller forlader synlighedsområdet. Apps kan også bruge en ny ledsagende enhedsprofil for at forenkle indstillingen af tilladelser til at tilmelde sig en enhed.
- Forbedret kapacitetsforudsigelsessystem. Applikationer kan nu anmode om information om den forudsagte samlede gennemstrømning i forhold til operatøren, specifikt trådløst netværk (Wi-Fi SSID), netværkstype og signalstyrke.
- Anvendelsen af almindelige visuelle effekter, såsom sløring og farveforvrængning, er blevet forenklet og kan nu anvendes ved hjælp af RenderEffect API til ethvert RenderNode-objekt eller hele det synlige område, inklusive i en kæde med andre effekter. Denne funktion giver dig for eksempel mulighed for at sløre et billede, der vises gennem ImageView uden eksplicit at kopiere, behandle og erstatte bitmap'et, og flytte disse handlinger til platformssiden. Derudover foreslås Window.setBackgroundBlurRadius() API'et, hvormed du kan sløre baggrunden af et vindue med en matteret glaseffekt og fremhæve dybde ved at sløre rummet omkring vinduet.

- Integrerede værktøjer til omkodning af mediestrømme, der kan bruges i miljøer med en kameraapplikation, der gemmer video i HEVC-formatet, for at sikre kompatibilitet med applikationer, der ikke understøtter dette format. Til sådanne applikationer er der tilføjet en automatisk omkodningsfunktion til det mere almindelige AVC-format.
- Tilføjet understøttelse af billedformatet AVIF (AV1 Image Format), som bruger intra-frame-komprimeringsteknologier fra AV1-videokodningsformatet. Beholderen til distribution af komprimerede data i AVIF ligner fuldstændig HEIF. AVIF understøtter både billeder i HDR (High Dynamic Range) og Wide-gamut farverum samt i standard dynamic range (SDR).
- En samlet OnReceiveContentListener API foreslås til indsættelse og flytning af udvidede typer indhold (formateret tekst, billeder, videoer, lydfiler osv.) mellem applikationer, der bruger forskellige datakilder, herunder klippebordet, tastaturet og træk&slip-grænsefladen.
- En taktil feedback-effekt, implementeret ved hjælp af vibrationsmotoren indbygget i telefoner, er blevet tilføjet, hvor frekvensen og intensiteten af vibration afhænger af parametrene for den aktuelle udgangslyd. Den nye effekt giver dig mulighed for fysisk at mærke lyden og kan bruges til at tilføje ekstra realisme til spil og lydprogrammer.
- I Immersive-tilstand, hvor programmet vises i fuld skærm med skjulte servicepaneler, forenkles navigationen ved hjælp af kontrolbevægelser. For eksempel kan bøger, videoer og billeder nu navigeres med en enkelt strygebevægelse.
- Som en del af Mainline-projektet, der muliggør opdatering af individuelle systemkomponenter uden at opdatere hele platformen, er der udarbejdet nye opdaterbare systemmoduler ud over de 22 moduler, der er tilgængelige i Android 11. Opdateringerne påvirker komponenter, der ikke er knyttet til hardwaren, og som downloades via Google Play separat fra producentens OTA-firmwareopdateringer. Blandt de nye moduler, der kan opdateres via Google Play uden at opdatere firmwaren, er ART (Android Runtime) og et videotranskodningsmodul.
- En API er blevet tilføjet til WindowInsets-klassen for at bestemme visningspositionen af kamera- og mikrofonbrugsindikatorer (indikatorer kan overlappe kontroller i programmer, der er implementeret til fuld skærm, og via den specificerede API kan applikationen justere sin grænseflade).
- For centralt administrerede enheder er der tilføjet en mulighed for at forhindre brugen af kontakter til at slå mikrofonen og kameraet fra.
- For CDM (Companion Device Manager)-applikationer, der kører i baggrunden, og som styrer ledsagende enheder såsom smartwatches og fitness-trackere, er det muligt at starte forgrundstjenester.
- I stedet for en lederartikel om bærbare enheder Android Wear har sammen med Samsung besluttet at udvikle en ny samlet platform, der kombinerer funktionerne Android og Tizen.
- Udvidede redaktionelle muligheder Android til infotainmentsystemer og smart-tv'er i bilen.
Kilde: opennet.ru














