Google la til et API som lar tredjeparts lanseringer som Nova Launcher vise mer flytende overgangsanimasjoner. Bare Pixel-telefoner har det nå.
Tidligere ga tredjeparts lanseringsapper ofte en overlegen opplevelse enn aksjestarteren som finnes på de fleste Android-telefoner. Med fornyelsen av den nylige appskjermen og introduksjonen av bevegelser i Android 9 Pie, Tredjeparts launchere ble satt på en ulempe da disse nye erfaringene ble integrert i aksjen lanseringsapp. Over tid har Google forsøkt å gjøre tredjeparts launcher-opplevelsen ikke så forferdelig ved bruk av bevegelser, og de har faktisk begynt å lykkes med dette nylig.
Hvis du har brukt en nylig betaversjon av Nova Launcher på en Google Pixel-telefon de siste månedene, har du kanskje lagt merke til de flytende animasjonene når du bruker bevegelsesnavigasjon. Dessverre vil du ikke se de samme animasjonene når du bruker Nova Launcher på noen annen enhet, i hvert fall foreløpig. For å forstå hvorfor vi først må forklare kort hva som skiller tredjeparts launcher som Nova Launcher fra lager launcher som Googles Pixel Launcher.
Google introduserte først gestnavigering i Android 9 Pie. For å få bevegelser til å føles så flytende som mulig, trengte Google å få appoverganger til å se sømløse ut. De ønsket også å la brukere få tilgang til hele applisten fra den nylige appskjermen. For å gjøre begge disse, bestemte Google seg for å flytte koden som håndterer den nylige appskjermen fra Androids SystemUI til Launcher3, Androids åpen kildekode-lanseringsapp som de fleste OEM-aksjestartere er trukket fra. Dermed Raskt skritt komponenten ble født, og på grunn av sin privilegerte natur, lar Android bare den forhåndsinstallerte oppstartsappen settes som den nylige appleverandøren. Dette kan være overstyrt med root-tilgang hvis tredjeparts launcher støtter det, men for de fleste brukere, betyr dette at en tredjeparts launcher app alltid vil stole på aksjestarteren for å håndtere bevegelser og den nylige appskjermen. Resultatet, som de fleste av dere sikkert har erfart, kan være litt kjipt, med overganger som ikke ser flytende og sømløse ut. Med mindre du bruker en Google Pixel-telefon, altså.
På de fleste Google Pixel-telefoner finnes det et API som tredjeparts lanseringer kan bruke for å få overgangen fra en app tilbake til startskjermen til å se mye mer naturlig ut. Noen tredjeparts lanseringsapper som Niagara Launcher og den nevnte Nova Launcher drar nytte av denne API-en, selv om sistnevnte bare inkluderer den i sin under utvikling v7 bygger. Når denne API-en brukes, mottar tredjeparts launcher-appen en hensikt og en tilbakeringing fra QuickStep hver gang brukeren utfører en sveipebevegelse for å gå hjem. Tredjepartsstarteren kan deretter gi et hint til bevegelsessystemet hvordan du animerer vinduet når det minimeres til et appikon.
Her er et eksempel på hvordan dette ser ut i Niagara Launcher, med tillatelse fra launcherens utvikler 8 bitpits:
Og her er en sammenligning som viser hvordan animasjonen ser ut på en ASUS ROG Phone 5 og Google Pixel 4, begge kjører Nova Launcher v7.0.25 (den siste betaversjonen på publiseringstidspunktet) og Android 11:
\r\n https://www.youtube.com/watch? v=equ-8yDw_Do\r\n
Nå lurer du kanskje på: Er denne API-en eksklusiv for Google Pixel-telefoner? Svaret er nei, det er det ikke. API-en er en del av Launcher3/QuickStep og finnes i AOSP, noe som betyr at den er åpen for alle OEM-startapper. Mens API var forpliktet til Launcher3 internt 21. juli 2020, ser det ut til at det var det fusjonert inn i AOSP-hovedgrenen med Android R QPR1-utgivelsen i desember.
Kevin Barry, utvikleren av Nova Launcher og en av de første som oppdaget denne API-en, fortalte oss at han mistenker en del av Grunnen til at OEM-er ikke bruker denne API-en i gaflene til Launcher3 er at den kom litt sent i Android 11s utgivelse syklus. Det krever ganske mye innsats å slå sammen store AOSP-endringer, og Android R QPR1-oppdateringen inneholdt definitivt mange av disse. Tidligere ville vi kalle disse kodeutgivelsene for en "vedlikeholdsutgivelse", men Google gjør egentlig ikke det lenger etter pushback fra OEM-er (eller det har jeg hørt). Dette er grunnen til at LineageOS, den populære tilpassede Android-ROMen, kaller sin siste utgivelse "LineageOS 18.1" i stedet for "LineageOS 18" for å indikere at ROM-en er basert på toppen av den nyeste Android 11-kodebasen i stedet for den første Android 11-utgivelsen.
Det er også verdt å merke seg at denne API-en bare er tilgjengelig på Google Pixel-telefoner etter Desember Pixel Feature Drop, som sammenfaller med den offentlige Android R QPR1-utgivelsen. Og til tross for at Pixel 2 får sin siste oppdatering i desember, den oppdateringen inkluderte ikke Android R QPR1-kodebasen, og det er grunnen til at Pixel 2-eiere som kjører Nova Launcher v7 ikke har den samme opplevelsen som andre piksler. (Pixel 2-eiere kan sidelaste en nyere versjon av Pixel Launcher som har API fra en nyere Pixel-enhet, men brukerrapporter indikerer animasjonen er fortsatt buggy selv om den fungerer en gang i blant. Som en påminnelse er Pixel Launcher bygget på toppen av Launcher3 akkurat som de fleste aksjestartere er, men den inkluderer også noen Pixel-eksklusive funksjoner.)
Så hva skal til for at denne API-en kan legges til andre Android-enheter? Dessverre er det ikke noe enkelt svar på det, fordi vi ikke vet nøyaktig hvordan hver OEM utvikler sin lanseringsapp. Gitt hvordan Google kontrollerer bevegelsesnavigering på fullskjerm, mistenker vi at de fleste OEM-er ikke i stor grad endrer kode relatert til bevegelser og/eller QuickStep. Med mindre en OEM går ut av sin vei for å tilbakestille forpliktelsen, bryte koden eller nekte å oppdatere Launcher3, så bør vi se at denne API-en blir lagt til OEM-startere når de rebaserer på toppen av kommende Android 12 utgivelse. Faktisk fortalte en OEM vi snakket med, ASUS, at de planlegger å ta med denne API-en i Android 12-oppdateringen. Vi vet ikke om Google har kommunisert denne endringen til OEM-er, men vi håper at flere OEM-er legger merke til denne endringen og bestemmer seg for å inkorporere API-en i deres gafler av Launcher3 for å forbedre opplevelsen av å bruke tredjeparter bæreraketter.
Arbeidet vil imidlertid ikke ende der. Selv etter å ha inkludert denne API-en, er det fortsatt mer arbeid som må gjøres for å oppnå paritet mellom tredjeparts launchere og OEM launchers. Noen OEM-enheter flimrer for eksempel når brukeren trykker på skjermen før en animasjon til startskjermen kommer opp. Noen ganger vises systemstarterappen i stedet for den valgte tredjepartsoppstartsappen (jeg har opplevd dette noen ganger). En forbedret overgangsanimasjon er fint, men ingen ønsker å håndtere feil i verken oppstartsappen eller appskjermen, så gestkodestillbilder trenger litt opprydding og/eller standardisering.
Takk til Kevin Barry og Peter Huber for deres hjelp i denne artikkelen!