Her er grunden til, at Nova Launcher fungerer bedre på Google Pixel-telefoner

Google tilføjede en API, der lader tredjeparts launchers som Nova Launcher vise mere flydende overgangsanimationer. Kun Pixel-telefoner har det nu.

Tidligere gav tredjeparts launcher-apps ofte en overlegen oplevelse i forhold til aktiestarteren, der findes på de fleste Android-telefoner. Med fornyelsen af ​​den seneste apps-skærm og introduktionen af ​​bevægelser i Android 9 Pie, tredjeparts launchers blev stillet ringere, da disse nye erfaringer blev integreret i bestanden launcher app. Over tid har Google forsøgt at gøre tredjeparts launcher-oplevelsen ikke så forfærdelig ved brug af bevægelser, og de er faktisk begyndt at lykkes med dette for nylig.

Hvis du har brugt en nylig Nova Launcher beta-udgivelse på en Google Pixel-telefon i de sidste par måneder, har du måske bemærket de flydende animationer, når du bruger bevægelsesnavigation. Desværre vil du ikke se de samme animationer, når du bruger Nova Launcher på nogen anden enhed, i det mindste lige nu. For at forstå hvorfor vi først kort skal forklare, hvad der adskiller tredjeparts launchers som Nova Launcher fra lager launchers som Googles Pixel Launcher.

Google introducerede først gestus navigation i Android 9 Pie. For at få bevægelser til at føles så flydende som muligt, var Google nødt til at få appovergange til at se problemfrie ud. De ønskede også at give brugere adgang til hele deres appliste fra den seneste apps-skærm. For at gøre begge dele besluttede Google at flytte koden, der håndterer den seneste apps-skærm, fra Androids SystemUI til Launcher3, Androids open source launcher-app, som de fleste OEM-aktiestartere er forgrenet fra. Således QuickStep komponent blev født, og på grund af sin privilegerede natur tillader Android kun, at den forudinstallerede launcher-app indstilles som den seneste apps-udbyder. Dette kan være tilsidesat med root-adgang hvis tredjeparts launcher understøtter det, men for de fleste brugere betyder det, at en tredjeparts launcher app altid vil stole på aktiestarteren til at håndtere bevægelser og den seneste apps skærm. Resultatet, som de fleste af jer sikkert har oplevet, kan være en anelse skævt, med overgange, der ikke ser flydende og sømløse ud. Medmindre du bruger en Google Pixel-telefon, altså.

På de fleste Google Pixel-telefoner findes der en API, som tredjeparts launchers kan bruge til at få overgangen fra en app tilbage til startskærmen til at se meget mere naturlig ud. Nogle tredjeparts launcher-apps som Niagara Launcher og den førnævnte Nova Launcher drager fordel af denne API, selvom sidstnævnte kun inkluderer den i sin under udvikling v7 builds. Når denne API bruges, modtager tredjeparts launcher-appen en hensigt og et tilbagekald fra QuickStep, hver gang brugeren udfører et swipe for at gå hjem. Tredjeparts launcher kan derefter give gestussystemet et hint om, hvordan man animerer vinduet, når det minimerer på et appikon.

Her er et eksempel på, hvordan det ser ud i Niagara Launcher, med tilladelse fra launcherens udvikler 8 bitpit:

Og her er en sammenligning, der viser, hvordan animationen ser ud på en ASUS ROG Phone 5 og Google Pixel 4, begge kører Nova Launcher v7.0.25 (den seneste betaudgivelse på udgivelsestidspunktet) og Android 11:

\r\n https://www.youtube.com/watch? v=equ-8yDw_Do\r\n

Nu undrer du dig måske: Er denne API eksklusiv for Google Pixel-telefoner? Svaret er nej, det er det ikke. API'et er en del af Launcher3/QuickStep og kan findes i AOSP, hvilket betyder, at den er åben for enhver OEM launcher-app. Mens API var forpligtet til Launcher3 internt den 21. juli 2020, ser det ud til, at det var fusioneret til AOSP-mastergrenen med Android R QPR1-udgivelsen i december.

API'en, der får Nova Launcher og Niagara Launcher til at føles mere indbygget på Google Pixel-telefoner.

Kevin Barry, udvikleren af ​​Nova Launcher og en af ​​de første til at opdage denne API, fortalte os, at han har mistanke om en del af grunden til, at OEM'er ikke bruger denne API i deres gafler af Launcher3, er, at den kom lidt sent i Android 11's udgivelse cyklus. Det kræver en del kræfter at slå store AOSP-ændringer sammen, og Android R QPR1-opdateringen indeholdt helt sikkert mange af dem. I de forløbne år ville vi kalde disse kodeudgivelser for en "vedligeholdelsesudgivelse", men Google gør det ikke rigtig længere efter pushback fra OEM'er (eller det har jeg hørt). Det er derfor, LineageOS, den populære Android brugerdefinerede ROM, kalder sin seneste udgivelse "LineageOS 18.1" i stedet for "LineageOS 18" for at angive, at ROM'en er baseret på toppen af ​​den seneste Android 11-kodebase i stedet for den oprindelige Android 11-udgivelse.

Det er også værd at bemærke, at denne API kun er tilgængelig på Google Pixel-telefoner efter December Pixel Feature Drop, som falder sammen med den offentlige Android R QPR1-udgivelse. Og på trods af at Pixel 2 får sin sidste opdatering i december, den opdatering inkluderede ikke Android R QPR1-kodebasen, hvilket er grunden til, at Pixel 2-ejere, der kører Nova Launcher v7, ikke har den samme oplevelse som andre Pixels. (Pixel 2-ejere kan sideloade en nyere version af Pixel Launcher, som har API'et fra en nyere Pixel-enhed, men brugerrapporter angiver animationen er stadig buggy, selvom den virker en gang imellem. Som en påmindelse er Pixel Launcher bygget oven på Launcher3 ligesom de fleste aktiestartere er, men den indeholder også nogle Pixel-eksklusive funktioner.)

Så hvad skal der til for at denne API føjes til andre Android-enheder? Desværre er der ikke noget let svar på det, for vi ved ikke præcis, hvordan hver OEM udvikler sin launcher-app. Givet hvordan Google styrer stramt bevægelsesnavigation på fuld skærm, formoder vi, at de fleste OEM'er ikke i høj grad ændrer kode relateret til bevægelser og/eller QuickStep. Medmindre en OEM går ud af sin måde at fortryde commit, bryde koden eller nægte at opdatere Launcher3, så skulle vi se denne API blive tilføjet til OEM-startere, når de rebaserer oven på kommende Android 12 frigøre. Faktisk fortalte en OEM, vi talte med, ASUS, os, at de planlægger at bringe denne API i deres Android 12-opdatering. Vi ved ikke, om Google har kommunikeret denne ændring til OEM'er, men vi håber, at flere OEM'er lægger mærke til denne ændring og beslutter at inkorporere API'en i deres gafler af Launcher3 for at forbedre oplevelsen af ​​at bruge tredjepart løfteraketter.

Arbejdet slutter dog ikke der. Selv efter at have inkluderet denne API, er der stadig mere arbejde, der skal gøres for at opnå paritet mellem tredjeparts launchers og OEM launchers. For eksempel flimrer nogle OEM-enheder, når brugeren trykker på skærmen, før en animation til startskærmen kommer op. Nogle gange vises systemstarter-appen i stedet for den valgte tredjeparts launcher-app (det er sket for mig et par gange). En forbedret overgangsanimation er rart, men ingen ønsker at beskæftige sig med fejl i hverken launcher-appen eller den seneste apps-skærm, så gestus-kodestillbilleder har brug for en vis oprydning og/eller standardisering.

Tak til Kevin Barry og Peter Huber for deres hjælp i denne artikel!