Android 12 gjør det lettere for utviklere å vite hvor kraftig en enhet er

Android 12 gjør det enklere for utviklere å vite hvilke enheter som er kraftigere enn andre med noe som kalles "ytelsesklasse".

Android-enheter kommer i alle fasonger. Vi har billigere smarttelefoner med svakere spesifikasjoner og dyrere med bedre innvendig. Du, som bruker, kan åpenbart se om smarttelefonen din kan betraktes som "kraftig" eller ikke ved å lete opp disse spesifikasjonene på nettet. Men hvordan vet en app som kjører på enheten din det? Den kan teoretisk sett gjøre ting som å matche enhetsnavnet ditt mot en database og deretter trekke spesifikasjoner fra det, sjekke systemegenskaper for SoC-delenummeret/RAM kapasitet/etc, eller kalle Android APIer som viser informasjon som oppløsning osv., men det er ingen enkel, enhetlig måte å fortelle hva slags ytelse en Android-enhet kan levere. Det ville vært nyttig hvis det var en rask måte å gruppere enheter i kategorier, slik at en app kan tilby forskjellige opplevelser som er optimalisert for hver enhetsklasse. For det formål har Google introdusert kl I/O 2021 det de kaller "prestasjonsklasse", og begynner med Android 12.

Ifølge Google, denne standarden "definerer et sett med funksjoner som går utover Androids grunnlinjekrav. Enheter som oppfyller kravene til ytelsesklasse kan støtte mer krevende bruksområder og levere innhold av høyere kvalitet." Apputviklere kan sjekke hvilken ytelsesklasse en enhet er en del av under kjøring, og skreddersy deretter appen for å levere en opplevelse som drar full nytte av enhetens opptreden. Til å begynne med sier Google at de "fokuserer ytelsesklassefunksjoner på mediebrukssaker, med krav inkludert kamera oppstartsforsinkelse, kodektilgjengelighet og kodingskvalitet, samt minimum minnestørrelse, skjermoppløsning og lese/skrive opptreden."

På Android-utviklersiden, sier Google at hver versjon av Android har sin egen tilsvarende ytelsesklasse, noe som betyr at det er en ytelsesklasse for Android 12 og det vil være en for Android 13, 14 og så videre. Ytelsesklassen vil bli definert i Compatibility Definition Document (CDD) for den aktuelle Android OS-versjonen (merk: Android 12s CDD er ikke offentlig ennå) og om eller ikke en enhet faktisk oppfyller den ytelsesklassen håndheves av Compatibility Test Suite (CTS), et automatisert sett med tester som bekrefter kompatibilitet med et Android OS versjon.

Ytelsesklasser er fremoverkompatible, noe som betyr at en enhet kan oppgradere til en ny Android-versjon uten å endre seg ytelsesklassen, men det betyr også at enheter kan endre klasse hvis de oppfyller kravene til det nye operativsystemet versjon. Mens konseptet med en ytelsesklasse introduseres med Android 12, sier Google at det også vil definere en ytelsesklasse for Android 11. Dette betyr at svært dyktige enheter som oppgraderer fra Android 11 til Android 12 som oppfyller ytelsen klassekrav for Android 11, men ikke for Android 12, kan fortsatt informere apper om at de gir høy ytelse enheter.

Selv om Google ikke har delt eksakte detaljer om hvilke krav som innebærer ytelsesklassen for Android 12, gravde vi litt og fant noen av kravene. De inkluderer:

  • Minst 6 GB RAM
  • Minst 400 dpi og 1080p oppløsning
  • Minst 150MB/s sekvensiell skriving, 250MB/s sekvensiell lesehastighet, 10MB/s tilfeldig skrivehastighet og 40MB/s tilfeldig lesehastighet

I tillegg til andre krav for et maksimalt antall samtidige videodekoder- og koderøkter, lav kodekinitialiseringsforsinkelse, lav mengde avspillingsrammefall og mer.

Denne funksjonen kan være nyttig for apputviklere for å forbedre den generelle opplevelsen på ikke bare enheter som oppfyller "ytelsesklasse"-spesifikasjonene, men også for lavere-end telefoner. Hvis en app oppdager at en telefon ikke oppfyller kravene til en "ytelsesklasse"-enhet, kan de slå av visse, mer krevende funksjoner eller visuelle effekter for å forbedre måten appen fungerer på i lavere ende telefoner. På samme måte kan de legge til funksjoner på enheter i ytelsesklasse som lavere-end telefoner normalt ikke ville støttet uten å kompromittere opplevelsen til disse brukerne.