Štai kodėl „Nova Launcher“ geriau veikia „Google Pixel“ telefonuose

„Google“ pridėjo API, leidžiančią trečiųjų šalių paleidimo priemonėms, pvz., „Nova Launcher“, rodyti sklandesnę perėjimo animaciją. Dabar jį turi tik „Pixel“ telefonai.

Anksčiau trečiųjų šalių paleidimo programos dažnai teikdavo geresnę patirtį nei atsargų paleidimo priemonė, esanti daugumoje „Android“ telefonų. Tačiau atnaujinus naujausių programų ekraną ir įvedus gestus „Android 9 Pie“, Trečiųjų šalių paleidimo įrenginiai atsidūrė nepalankioje padėtyje, nes ši nauja patirtis buvo integruota į atsargas paleidimo programa. Laikui bėgant „Google“ bandė padaryti, kad trečiųjų šalių paleidimo priemonės nebūtų tokios baisios, kai naudoja gestus, ir pastaruoju metu jiems tai iš tikrųjų pradėjo sektis.

Jei per pastaruosius kelis mėnesius „Google Pixel“ telefone naudojote naujausią „Nova Launcher“ beta versiją, galbūt pastebėjote sklandžią animaciją, kai naudojate naršymą gestais. Deja, tų pačių animacijų nematysite naudodami Nova Launcher jokiame kitame įrenginyje, bent jau kol kas. Norėdami suprasti, kodėl pirmiausia turime trumpai paaiškinti, kuo trečiųjų šalių paleidimo priemonės, pvz., „Nova Launcher“, skiriasi nuo akcijų paleidimo priemonių, tokių kaip „Google“ pikselių paleidimo priemonė.

„Google“ pirmą kartą pristatė navigaciją gestais „Android 9 Pie“.. Kad gestai būtų kuo sklandesni, „Google“ turėjo užtikrinti, kad programų perėjimai atrodytų sklandžiai. Jie taip pat norėjo leisti vartotojams pasiekti visą savo programų sąrašą iš naujausių programų ekrano. Kad atliktų abu šiuos veiksmus, „Google“ nusprendė perkelti kodą, kuris tvarko naujausių programų ekraną iš „Android“. „SystemUI“ į Launcher3, „Android“ atvirojo kodo paleidimo programą, iš kurios dauguma OĮG atsargų paleidimo priemonių yra išjungtos. Taigi, QuickStep gimė komponentas, o dėl savo privilegijuoto pobūdžio „Android“ leidžia tik iš anksto įdiegtą paleidimo programą nustatyti kaip naujausių programų teikėją. Tai gali būti nepaisoma su root prieiga jei trečiosios šalies paleidimo priemonė ją palaiko, bet daugumai vartotojų tai reiškia, kad trečiosios šalies paleidimo programa visada pasikliaus atsargų paleidimo priemone, tvarkydama gestus ir naujausių programų ekraną. Rezultatas, kurį tikriausiai patyrė dauguma, gali būti šiek tiek bjaurus, su perėjimais, kurie neatrodo sklandūs ir vientisi. Nebent naudojate „Google Pixel“ telefoną, tai yra.

Daugumoje „Google Pixel“ telefonų yra API, kurią trečiųjų šalių paleidimo priemonės gali naudoti, kad perėjimas iš programos atgal į pagrindinį ekraną atrodytų kur kas originalesnis. Kai kurios trečiųjų šalių paleidimo programos, pvz Niagaros paleidimo priemonė ir anksčiau minėta Nova Launcher naudojasi šia API, nors pastaroji ją įtraukia tik į savo 7 versijos kūrimo metu. Kai naudojama ši API, trečiosios šalies paleidimo programa gauna ketinimą ir atgalinį skambutį iš „QuickStep“, kai vartotojas perbraukia, kad grįžtų namo. Tada trečiosios šalies paleidimo priemonė gali nurodyti gestų sistemai, kaip animuoti langą, kai jis sumažinamas iki programos piktogramos.

Štai pavyzdys, kaip tai atrodo Niagaros paleidimo priemonėje, paleidimo programos kūrėjo sutikimu 8 bitų:

Ir čia yra palyginimas, rodantis, kaip atrodo animacija ASUS ROG telefonas 5 ir Google Pixel 4, abiejose veikia „Nova Launcher v7.0.25“ (paskelbimo metu naujausia beta versija) ir „Android 11“:

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

Dabar jums gali kilti klausimas: ar ši API skirta tik „Google Pixel“ telefonams? Atsakymas yra ne, taip nėra. API yra Launcher3/QuickStep ir dalis galima rasti AOSP, tai reiškia, kad ją gali naudoti bet kuri OĮG paleidimo programa. Nors API buvo įsipareigojęs Launcher3 viduje 2020 m. liepos 21 d., atrodo, taip buvo susijungė į AOSP pagrindinį filialą gruodį su Android R QPR1 leidimu.

API, dėl kurios „Nova Launcher“ ir „Niagara Launcher“ „Google Pixel“ telefonuose jaučiasi labiau vietiniai.

Kevinas Barry, „Nova Launcher“ kūrėjas ir vienas iš pirmųjų, pastebėjusių šią API, mums pasakė, kad įtaria dalį Priežastis, kodėl originalios įrangos gamintojai nenaudoja šios API savo „Launcher3“ šakėse, yra ta, kad ji pasirodė šiek tiek vėlai „Android 11“ išleidimo metu ciklas. Norint sujungti didelius AOSP pakeitimus, reikia įdėti nemažai pastangų, o „Android R QPR1“ atnaujinime tikrai daug jų buvo. Ankstesniais metais šiuos kodo išmetimus vadindavome „priežiūros leidimu“, tačiau „Google“ daugiau to nedaro po OĮG atmetimo (arba taip girdėjau). Štai kodėl „LineageOS“, populiarioji „Android“ tinkinta ROM, vadina savo naujausią leidimą „LineageOS 18.1“, o ne „LineageOS 18“, o tai reiškia, kad ROM yra pagrįsta naujausia „Android 11“ kodų baze, o ne pradine „Android 11“ versija.

Taip pat verta paminėti, kad ši API pasiekiama tik „Google Pixel“ telefonuose po to Gruodžio mėnesio pikselių funkcijos sumažėjimas, kuris sutampa su viešu Android R QPR1 leidimu. Ir nepaisant to, kad „Pixel 2“ jį gavo galutinis atnaujinimas gruodžio mėn, į šį naujinimą nebuvo įtraukta „Android R QPR1“ kodų bazė, todėl „Pixel 2“ savininkai, kuriuose veikia „Nova Launcher v7“, neturi tokios pat patirties kaip kiti „Pixel“. („Pixel 2“ savininkai gali įkelti naujesnę „Pixel Launcher“ versiją, kuri turi API iš naujesnio „Pixel“ įrenginio, bet vartotojų ataskaitose nurodoma animacija vis dar yra klaidinga, net jei ji kartais veikia. Primename, kad „Pixel Launcher“ yra sukurta „Launcher3“ viršuje, kaip ir dauguma akcijų paleidimo priemonių, tačiau joje taip pat yra keletas išskirtinių „Pixel“ funkcijų.)

Taigi, ko prireiks, kad ši API būtų įtraukta į kitus „Android“ įrenginius? Deja, nėra paprasto atsakymo į tai, nes tiksliai nežinome, kaip kiekvienas OĮG kuria savo paleidimo programą. Atsižvelgiant į tai, kaip „Google“ griežtai kontroliuoja viso ekrano gestų naršymą, įtariame, kad dauguma originalios įrangos gamintojų labai nekeičia kodo, susijusio su gestais ir (arba) „QuickStep“. Nebent OĮG nesiryžtų atšaukti įsipareigojimo, sulaužyti kodą arba atsisakyti atnaujinti Launcher3, tada turėtume pamatyti, kad ši API bus pridėta prie OĮG paleidimo priemonių, kai tik jos bus perkeltos į būsimas Android 12 paleisti. Tiesą sakant, vienas OĮG, su kuriuo kalbėjomės, ASUS, mums pasakė, kad planuoja įtraukti šią API į savo Android 12 naujinį. Nežinome, ar „Google“ pranešė apie šį pakeitimą OĮG, bet tikimės, kad daugiau OĮG pastebės šį pakeitimą ir nuspręsti įtraukti API į savo „Launcher3“ šakes, kad pagerintų trečiųjų šalių naudojimo patirtį paleidimo įrenginiai.

Tačiau darbas tuo nesibaigs. Net ir įtraukus šią API, dar reikia nuveikti daugiau, kad būtų pasiektas trečiųjų šalių paleidimo priemonių ir OĮG paleidimo priemonių lygumas. Pavyzdžiui, kai kurie OĮG įrenginiai mirksi, kai vartotojas paliečia ekraną prieš pasirodant pagrindinio ekrano animacijai. Kartais vietoj pasirinktos trečiosios šalies paleidimo programos pasirodo sistemos paleidimo programa (man taip nutiko keletą kartų). Patobulinta perėjimo animacija yra gera, tačiau niekas nenori spręsti klaidų nei paleidimo priemonės programoje, nei naujausių programų ekrane, todėl gestų kodo nuotraukas reikia šiek tiek išvalyti ir (arba) standartizuoti.

Dėkojame Kevinui Barry ir Peteriui Huberiui už pagalbą šiame straipsnyje!