Να γιατί το Nova Launcher λειτουργεί καλύτερα σε τηλέφωνα Google Pixel

Η Google πρόσθεσε ένα API που επιτρέπει σε εκκινητές τρίτων όπως το Nova Launcher να εμφανίζουν πιο ρευστές κινούμενες εικόνες μετάβασης. Μόνο τα τηλέφωνα Pixel το έχουν τώρα.

Στο παρελθόν, οι εφαρμογές εκκίνησης τρίτων παρείχαν συχνά μια ανώτερη εμπειρία στην εφαρμογή εκκίνησης αποθεμάτων που υπήρχε στα περισσότερα τηλέφωνα Android. Ωστόσο, με την ανανέωση της πρόσφατης οθόνης εφαρμογών και την εισαγωγή των χειρονομιών στο Android 9 Pie, Οι εκτοξευτές τρίτων τέθηκαν σε μειονεκτική θέση καθώς αυτές οι νέες εμπειρίες ενσωματώθηκαν στο απόθεμα εφαρμογή εκκίνησης. Με την πάροδο του χρόνου, η Google προσπάθησε να κάνει την εμπειρία εκκίνησης τρίτου κατασκευαστή να μην είναι τόσο τρομερή όταν χρησιμοποιεί χειρονομίες, και στην πραγματικότητα άρχισαν να τα καταφέρνουν πρόσφατα.

Εάν έχετε χρησιμοποιήσει μια πρόσφατη έκδοση beta του Nova Launcher σε ένα τηλέφωνο Google Pixel τους τελευταίους μήνες, μπορεί να έχετε παρατηρήσει τις ρευστές κινούμενες εικόνες κατά τη χρήση της πλοήγησης με χειρονομίες. Δυστυχώς, δεν θα βλέπετε αυτά τα ίδια κινούμενα σχέδια όταν χρησιμοποιείτε το Nova Launcher σε οποιαδήποτε άλλη συσκευή, τουλάχιστον προς το παρόν. Για να καταλάβουμε γιατί πρέπει πρώτα να εξηγήσουμε εν συντομία τι διαχωρίζει τα προγράμματα εκκίνησης τρίτων, όπως το Nova Launcher, από τα προγράμματα εκκίνησης στοκ, όπως το Pixel Launcher της Google.

Η Google εισήγαγε για πρώτη φορά την πλοήγηση με χειρονομίες στο Android 9 Pie. Προκειμένου οι χειρονομίες να αισθάνονται όσο πιο ρευστές γίνεται, η Google έπρεπε να κάνει τις μεταβάσεις εφαρμογών να φαίνονται απρόσκοπτες. Ήθελαν επίσης να επιτρέψουν στους χρήστες να έχουν πρόσβαση σε ολόκληρη τη λίστα εφαρμογών τους από την οθόνη πρόσφατων εφαρμογών. Για να κάνει και τα δύο, η Google αποφάσισε να μετακινήσει τον κώδικα που χειρίζεται την οθόνη πρόσφατων εφαρμογών από την οθόνη του Android SystemUI στο Launcher3, την εφαρμογή εκκίνησης ανοιχτού κώδικα του Android από την οποία προέρχονται οι περισσότεροι εκτοξευτές OEM. Έτσι, το Γρήγορο βήμα Το στοιχείο δημιουργήθηκε και λόγω της προνομιακής του φύσης, το Android επιτρέπει μόνο την προεγκατεστημένη εφαρμογή εκκίνησης να οριστεί ως ο πρόσφατος πάροχος εφαρμογών. Αυτό μπορεί να είναι παρακάμπτεται με πρόσβαση root αν το υποστηρίζει η εφαρμογή εκκίνησης τρίτου κατασκευαστή, αλλά για τους περισσότερους χρήστες, αυτό σημαίνει ότι μια εφαρμογή εκκίνησης τρίτου κατασκευαστή θα βασίζεται πάντα στη λειτουργία εκκίνησης μετοχών για να χειρίζεται τις χειρονομίες και την οθόνη πρόσφατων εφαρμογών. Το αποτέλεσμα, όπως πιθανότατα έχετε βιώσει οι περισσότεροι από εσάς, μπορεί να είναι κάπως φανταχτερό, με μεταβάσεις που δεν φαίνονται ρευστές και απρόσκοπτες. Εκτός κι αν χρησιμοποιείτε τηλέφωνο Google Pixel, δηλαδή.

Στα περισσότερα τηλέφωνα Google Pixel, υπάρχει ένα API που μπορούν να χρησιμοποιήσουν τα προγράμματα εκκίνησης τρίτων για να κάνουν τη μετάβαση από μια εφαρμογή πίσω στην αρχική οθόνη να φαίνεται πολύ πιο εγγενής. Ορισμένες εφαρμογές εκκίνησης τρίτων όπως Niagara Launcher και το προαναφερθέν Nova Launcher εκμεταλλεύονται αυτό το API, αν και το τελευταίο το περιλαμβάνει μόνο στο υπό ανάπτυξη εκδόσεις v7. Όταν χρησιμοποιείται αυτό το API, η εφαρμογή εκκίνησης τρίτου μέρους λαμβάνει μια πρόθεση και μια επανάκληση από το QuickStep κάθε φορά που ο χρήστης εκτελεί μια κίνηση ολίσθησης για να πάει στο σπίτι. Η εφαρμογή εκκίνησης τρίτου μέρους μπορεί στη συνέχεια να υποδείξει στο σύστημα χειρονομιών πώς να κινείται το παράθυρο καθώς ελαχιστοποιείται σε ένα εικονίδιο εφαρμογής.

Ακολουθεί ένα παράδειγμα για το πώς φαίνεται στο Niagara Launcher, ευγενική προσφορά του προγραμματιστή του εκτοξευτή 8 bitpit:

Και εδώ είναι μια σύγκριση που δείχνει πώς φαίνεται το κινούμενο σχέδιο σε ένα Τηλέφωνο ASUS ROG 5 και Google Pixel 4, και οι δύο εκτελούν Nova Launcher v7.0.25 (η πιο πρόσφατη έκδοση beta τη στιγμή της δημοσίευσης) και Android 11:

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

Τώρα ίσως αναρωτιέστε: Είναι αυτό το API αποκλειστικά για τηλέφωνα Google Pixel; Η απάντηση είναι όχι, δεν είναι. Το API είναι μέρος του Launcher3/QuickStep και μπορεί να βρεθεί στο AOSP, που σημαίνει ότι είναι ανοιχτό σε οποιαδήποτε εφαρμογή εκκίνησης OEM. Ενώ το API δεσμεύτηκε στο Launcher3 εσωτερικά στις 21 Ιουλίου 2020, φαίνεται ότι ήταν συγχωνεύθηκε στον κύριο κλάδο AOSP με την κυκλοφορία του Android R QPR1 τον Δεκέμβριο.

Το API που κάνει τα Nova Launcher και Niagara Launcher να αισθάνονται πιο εγγενή στα τηλέφωνα Google Pixel.

Ο Kevin Barry, ο προγραμματιστής του Nova Launcher και ένας από τους πρώτους που εντόπισαν αυτό το API, μας είπε ότι υποπτεύεται μέρος του Ο λόγος για τον οποίο οι OEM δεν χρησιμοποιούν αυτό το API στα πιρούνια του Launcher3 είναι ότι ήρθε λίγο αργά στην κυκλοφορία του Android 11 κύκλος. Χρειάζεται αρκετή προσπάθεια για τη συγχώνευση μεγάλων αλλαγών AOSP και η ενημέρωση Android R QPR1 περιείχε σίγουρα πολλά από αυτά. Τα προηγούμενα χρόνια, θα λέγαμε αυτές τις πτώσεις κώδικα "απελευθέρωση συντήρησης", αλλά η Google δεν το κάνει πια μετά από ώθηση από OEM (ή τουλάχιστον έτσι έχω ακούσει). Αυτός είναι ο λόγος για τον οποίο το LineageOS, η δημοφιλής προσαρμοσμένη ROM Android, αποκαλεί την τελευταία του έκδοση "LineageOS 18.1" αντί "LineageOS 18" για να σημαίνει ότι η ROM βασίζεται στην πιο πρόσφατη βάση κωδικών Android 11 και όχι στην αρχική έκδοση Android 11.

Αξίζει επίσης να σημειωθεί ότι αυτό το API είναι προσβάσιμο μόνο σε τηλέφωνα Google Pixel μετά την Πτώση δυνατοτήτων Pixel Δεκεμβρίου, το οποίο συμπίπτει με τη δημόσια έκδοση Android R QPR1. Και παρά το γεγονός ότι το Pixel 2 το πήρε τελική ενημέρωση τον Δεκέμβριο, αυτή η ενημέρωση δεν περιελάμβανε τη βάση κώδικα Android R QPR1, γι' αυτό οι κάτοχοι Pixel 2 που εκτελούν το Nova Launcher v7 δεν έχουν την ίδια εμπειρία με άλλα Pixel. (Οι κάτοχοι Pixel 2 μπορούν να φορτώσουν μια νεότερη έκδοση του Pixel Launcher που έχει το API από μια πιο πρόσφατη συσκευή Pixel, αλλά αναφέρουν οι αναφορές χρηστών το κινούμενο σχέδιο εξακολουθεί να είναι buggy ακόμα κι αν λειτουργεί κάθε τόσο. Ως υπενθύμιση, το Pixel Launcher είναι χτισμένο πάνω από το Launcher3 όπως ακριβώς είναι τα περισσότερα stock launchers, αλλά περιλαμβάνει επίσης ορισμένες αποκλειστικές λειτουργίες Pixel.)

Τι θα χρειαστεί λοιπόν για να προστεθεί αυτό το API σε άλλες συσκευές Android; Δυστυχώς, δεν υπάρχει εύκολη απάντηση σε αυτό, επειδή δεν γνωρίζουμε ακριβώς πώς αναπτύσσει κάθε OEM την εφαρμογή εκκίνησης. Δεδομένου πώς Η Google ελέγχει αυστηρά την πλοήγηση με χειρονομίες σε πλήρη οθόνη, υποπτευόμαστε ότι οι περισσότεροι OEM δεν τροποποιούν σε μεγάλο βαθμό τον κώδικα που σχετίζεται με χειρονομίες ή/και QuickStep. Εκτός εάν ένας OEM κάνει τα πάντα για να επαναφέρει τη δέσμευση, να σπάσει τον κώδικα ή να αρνηθεί την ενημέρωση Launcher3, τότε θα πρέπει να δούμε αυτό το API να προστίθεται στους εκτοξευτές OEM κάθε φορά που επανατοποθετούνται πάνω από το ανερχόμενος Android 12 ελευθέρωση. Στην πραγματικότητα, ένας OEM με τον οποίο μιλήσαμε, η ASUS, μας είπε ότι σκοπεύουν να φέρουν αυτό το API στην ενημερωμένη έκδοση Android 12. Δεν γνωρίζουμε εάν η Google έχει κοινοποιήσει αυτήν την αλλαγή στους OEM, αλλά ελπίζουμε ότι περισσότεροι OEM θα λάβουν υπόψη αυτήν την αλλαγή και αποφασίσουν να ενσωματώσουν το API στα πιρούνια του Launcher3 για να βελτιώσουν την εμπειρία χρήσης τρίτων εκτοξευτές.

Η δουλειά όμως δεν θα τελειώσει εκεί. Ακόμη και μετά τη συμπερίληψη αυτού του API, πρέπει να γίνει ακόμη περισσότερη δουλειά για να επιτευχθεί ισοτιμία μεταξύ των εκτοξευτών τρίτων και των εκτοξευτών OEM. Για παράδειγμα, ορισμένες συσκευές OEM τρεμοπαίζουν όταν ο χρήστης αγγίξει την οθόνη πριν εμφανιστεί μια κινούμενη εικόνα στην αρχική οθόνη. Μερικές φορές, εμφανίζεται η εφαρμογή εκκίνησης συστήματος αντί για την επιλεγμένη εφαρμογή εκκίνησης τρίτου κατασκευαστή (μου έχει συμβεί αυτό μερικές φορές). Μια βελτιωμένη κίνηση μετάβασης είναι ωραία, αλλά κανείς δεν θέλει να αντιμετωπίσει σφάλματα είτε στην εφαρμογή εκκίνησης είτε στην οθόνη πρόσφατων εφαρμογών, επομένως τα στιγμιότυπα κώδικα χειρονομίας χρειάζονται καθαρισμό ή/και τυποποίηση.

Ευχαριστούμε τον Kevin Barry και τον Peter Huber για τη βοήθειά τους σε αυτό το άρθρο!