Iată de ce Nova Launcher funcționează mai bine pe telefoanele Google Pixel

Google a adăugat un API care permite lansatoarelor terțe precum Nova Launcher să afișeze animații de tranziție mai fluide. Doar telefoanele Pixel o au acum.

În trecut, aplicațiile de lansare de la terțe părți au oferit adesea o experiență superioară lansatorului stoc găsit pe majoritatea telefoanelor Android. Cu toate acestea, odată cu modernizarea ecranului de aplicații recente și introducerea gesturilor în Android 9 Pie, Lansatoarele terțe au fost puse într-un dezavantaj, deoarece aceste noi experiențe au fost integrate în stoc aplicația de lansare. De-a lungul timpului, Google a încercat să facă experiența de lansare terță parte să nu fie atât de groaznică atunci când folosește gesturi și, de fapt, au început să reușească acest lucru recent.

Dacă ați folosit o versiune beta recentă a Nova Launcher pe un telefon Google Pixel în ultimele luni, este posibil să fi observat animațiile fluide când utilizați navigarea prin gesturi. Din păcate, nu veți vedea aceleași animații când utilizați Nova Launcher pe niciun alt dispozitiv, cel puțin pentru moment. Pentru a înțelege de ce trebuie mai întâi să explicăm pe scurt ce separă lansatoarele terță parte, cum ar fi Nova Launcher, de lansatoarele de stoc precum Pixel Launcher de la Google.

Google a introdus prima dată navigarea prin gesturi în Android 9 Pie. Pentru a face ca gesturile să pară cât mai fluide posibil, Google trebuia să facă tranzițiile aplicațiilor să pară perfecte. De asemenea, au vrut să permită utilizatorilor să-și acceseze întreaga listă de aplicații din ecranul de aplicații recente. Pentru a face ambele acestea, Google a decis să mute codul care se ocupă de ecranul aplicațiilor recente de pe Android SystemUI la Launcher3, aplicația de lansare cu sursă deschisă pentru Android de la care sunt obținute majoritatea lansatoarelor OEM. Astfel, cel Pas rapid componenta sa născut și, datorită naturii sale privilegiate, Android permite doar setarea aplicației de lansare preinstalată ca furnizor de aplicații recent. Acesta poate fi suprascris cu acces root dacă lansatorul terță parte îl acceptă, dar pentru majoritatea utilizatorilor, aceasta înseamnă că o aplicație de lansare terță parte se va baza întotdeauna pe lansatorul de stoc pentru a gestiona gesturile și ecranul aplicațiilor recente. Rezultatul, așa cum probabil ați experimentat cei mai mulți dintre voi, poate fi puțin neplăcut, cu tranziții care nu arată fluide și fără întreruperi. Cu excepția cazului în care utilizați un telefon Google Pixel, adică.

Pe majoritatea telefoanelor Google Pixel, există un API pe care lansatorii terți îl pot folosi pentru a face tranziția de la o aplicație înapoi la ecranul de pornire să pară mult mai nativă. Unele aplicații de lansare terță parte, cum ar fi Lansatorul Niagara și Nova Launcher-ul menționat mai sus profită de acest API, deși acesta din urmă îl include doar în versiuni v7 în curs de dezvoltare. Când se utilizează acest API, aplicația de lansare terță parte primește o intenție și un apel invers de la QuickStep ori de câte ori utilizatorul efectuează un gest de glisare pentru a merge acasă. Lansatorul terță parte poate apoi să sugereze sistemului de gesturi cum să anime fereastra, deoarece se reduce la minimum pe pictograma unei aplicații.

Iată un exemplu despre cum arată în Niagara Launcher, prin amabilitatea dezvoltatorului lansatorului 8bitpit:

Și iată o comparație care arată cum arată animația pe un ASUS ROG Phone 5 și Google Pixel 4, ambele rulând Nova Launcher v7.0.25 (cea mai recentă versiune beta la momentul publicării) și Android 11:

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

Acum s-ar putea să vă întrebați: acest API este exclusiv pentru telefoanele Google Pixel? Răspunsul este nu, nu este. API-ul face parte din Launcher3/QuickStep și poate fi găsit în AOSP, ceea ce înseamnă că este deschis pentru orice aplicație de lansare OEM. În timp ce API-ul a fost angajat pentru Launcher3 intern pe 21 iulie 2020, se pare că a fost a fuzionat în ramura master AOSP cu lansarea Android R QPR1 în decembrie.

API-ul care face ca Nova Launcher și Niagara Launcher să se simtă mai native pe telefoanele Google Pixel.

Kevin Barry, dezvoltatorul Nova Launcher și unul dintre primii care au descoperit acest API, ne-a spus că suspectează o parte din motivul pentru care OEM-urile nu folosesc acest API în furcile lor de Launcher3 este că a venit puțin târziu în lansarea Android 11 ciclu. Este nevoie de destul de mult efort pentru a îmbina modificările mari AOSP, iar actualizarea Android R QPR1 a conținut cu siguranță multe dintre acestea. În anii trecuți, am numi aceste drop-uri de cod o „lansare de întreținere”, dar Google nu le mai face cu adevărat după respingerea de la OEM (sau așa am auzit). Acesta este motivul pentru care LineageOS, popularul ROM personalizat pentru Android, numește ultima sa lansare „LineageOS 18.1„, în loc de „LineageOS 18”, pentru a semnifica faptul că ROM-ul se bazează pe cea mai recentă bază de cod Android 11, mai degrabă decât pe versiunea inițială a Android 11.

De asemenea, merită remarcat faptul că acest API este accesibil numai pe telefoanele Google Pixel după Decembrie Pixel Feature Drop, care coincide cu lansarea publică Android R QPR1. Și în ciuda faptului că Pixel 2 îl primește actualizare finală în decembrie, acea actualizare nu a inclus baza de cod Android R QPR1, motiv pentru care proprietarii de Pixel 2 care rulează Nova Launcher v7 nu au aceeași experiență ca și alți Pixel. (Deținătorii de Pixel 2 pot descărca o versiune mai nouă a Pixel Launcher care are API-ul de pe un dispozitiv Pixel mai recent, dar rapoartele utilizatorilor indică animația este încă cu erori chiar dacă funcționează din când în când. Pentru a vă reaminti, Pixel Launcher este construit pe deasupra Launcher3, la fel ca majoritatea lansatoarelor de stoc, dar include și câteva funcții exclusive pentru Pixel.)

Deci, ce va fi nevoie pentru ca acest API să fie adăugat la alte dispozitive Android? Din păcate, nu există un răspuns ușor la asta, deoarece nu știm exact cum își dezvoltă fiecare OEM aplicația de lansare. Având în vedere cum Google controlează strâns navigarea prin gesturi pe ecran complet, bănuim că majoritatea OEM-urilor nu modifică puternic codul legat de gesturi și/sau QuickStep. Cu excepția cazului în care un OEM face tot posibilul să anuleze comiterea, să rupă codul sau să refuze actualizarea Launcher3, atunci ar trebui să vedem că acest API este adăugat la lansatoarele OEM ori de câte ori se rebazează deasupra viitoare Android 12 eliberare. De fapt, un OEM cu care am discutat, ASUS, ne-a spus că intenționează să aducă acest API în actualizarea Android 12. Nu știm dacă Google a comunicat această modificare producătorilor de echipamente originale, dar sperăm ca mai mulți producători de echipamente originale să ia act de această schimbare. și decid să încorporeze API-ul în furkurile Launcher3 pentru a îmbunătăți experiența de utilizare a terților lansatoare.

Lucrarea nu se va termina aici, însă. Chiar și după includerea acestui API, este încă mai multă muncă de făcut pentru a obține paritatea între lansatoarele terță parte și lansatoarele OEM. De exemplu, unele dispozitive OEM pâlpâie atunci când utilizatorul atinge ecranul înainte să apară o animație pe ecranul de pornire. Uneori, aplicația de lansare a sistemului apare în locul aplicației de lansare terță parte selectată (mi s-a întâmplat asta de câteva ori). O animație îmbunătățită de tranziție este plăcută, dar nimeni nu dorește să se ocupe de erori în aplicația de lansare sau în ecranul aplicațiilor recente, așa că codul de gesturi are nevoie de puțină curățare și/sau standardizare.

Mulțumim lui Kevin Barry și Peter Huber pentru ajutorul acordat în acest articol!