Το σύστημα θεμάτων Material You του Android 12 αναδημιουργήθηκε από έναν προγραμματιστή

Ο kdrag0n, ο προγραμματιστής της ProtonAOSP ROM, κυκλοφόρησε τη δική του έκδοση του "monet", του νέου συστήματος θεμάτων που βασίζεται σε ταπετσαρία του Android 12.

Το σύστημα θεμάτων του Material You, που βασίζεται σε ταπετσαρία, με την κωδική ονομασία "monet", κυκλοφόρησε τελικά Android 12 Beta 2. Το σύστημα θεματοποίησης δημιουργεί χρωματικές παλέτες με βάση τον κυρίαρχο συνδυασμό χρωμάτων της ταπετσαρίας σας και τις εφαρμόζει σε πλακίδια Γρήγορες ρυθμίσεις, οθόνη κλειδώματος, Ρυθμίσεις, αναδυόμενα παράθυρα και εφαρμογές. Ωστόσο, στην τρέχουσα εφαρμογή του, μόνο θέματα που αποτελούν μέρος της διεπαφής χρήστη του συστήματος και επιλέξτε εφαρμογές συστήματος. Οι περισσότερες εφαρμογές τρίτων δεν υποστηρίζουν αυτό το δυναμικό θέμα, καθώς η Google δεν έχει δημοσιεύσει ακόμα την τεκμηρίωση στο Material You. Αν και δεν γνωρίζουμε πότε η Google θα δημοσιεύσει πόρους και βιβλιοθήκες στο Material You, ο Danny Lin (kdrag0n), ο προγραμματιστής της ProtonAOSP ROM, έχει παρουσιάσει τη δική του μηχανή θεμάτων που βασίζεται στο "monet".

μηχανή θεμάτων του kdrag0n λειτουργεί ακριβώς όπως το "monet" και ανοίγει το δυναμικό θέμα αποκλειστικά για Pixel σε όλες τις συσκευές με Android 12 και ορισμένες παλαιότερες εκδόσεις Android. Ο kdrag0n ήταν ο προγραμματιστής που πήρε για πρώτη φορά το "monet" να δουλεύει στις πρώτες εκδόσεις προεπισκόπησης προγραμματιστών Android 12. Έκτοτε, έχει αναστρέψει την εφαρμογή της Google και δίνει σχόλια στα μέλη της ομάδας SystemUI της Google, ιδίως Τζέιμς Ο' Λίρι (ο οποίος φαίνεται να ανήκει στην ομάδα που ανέπτυξε το "monet" στην Google).

Σύμφωνα με τον kdrag0n, η εφαρμογή του δεν χρησιμοποιεί κώδικα ή API από την Google ή το Android 12, επομένως δεν υπάρχει εξάρτηση από συσκευές που εκτελούν Android 12 για να χρησιμοποιηθεί το μοντέλο του. Η μηχανή θεμάτων του kdrag0n ακολουθεί τους χρωματικούς στόχους Material You. Αυτοί οι στόχοι είναι τότε "Επαναχρωματίστηκε με προσαρμογή της χρωματικότητας και της απόχρωσης στον αντιληπτικό χρωματικό χώρο του Oklab του @bjornornorn. Τα χρώματα που προκύπτουν αντιστοιχίζονται σε sRGB με τη χρήση τομής γκάμας στο χώρο Oklab. Οι χρήστες μπορούν επίσης να αλλάξουν τη χρωματικότητα και να δώσουν προτεραιότητα στη χρωματικότητα έναντι των ακριβών αποχρώσεων.

Η μηχανή θεμάτων του kdrag0n είναι ανοιχτού κώδικα βάσει της άδειας MIT, επιτρέποντας στους προγραμματιστές προσαρμοσμένων ROM (ακόμη και σε OEM) να την εφαρμόσουν εάν το επιθυμούν. Στην πραγματικότητα, το δικό του προγραμματιστή ProtonAOSP Η ROM θα είναι από τις πρώτες που θα την εφαρμόσει όταν δημοσιευτεί ο πηγαίος κώδικας Android 12. Εάν είστε προγραμματιστής προσαρμοσμένης ROM, μπορείτε να επιλέξετε cherry-pick αυτές τις δεσμεύει και συγχωνεύστε τα στην κατασκευή σας.

Ο προγραμματιστής εργάζεται επίσης στις βιβλιοθήκες Jetpack Compose και Flutter, οι οποίες θα επιτρέπουν ακόμη και σε εφαρμογές που έχουν δημιουργηθεί για Android 11 να υποστηρίζουν δυναμικά χρώματα. Οι εφαρμογές που στοχεύουν παλαιότερες εκδόσεις Android μπορούν καταχωρήστε έναν ακροατή για να λαμβάνετε ειδοποίηση όταν αλλάζουν τα χρώματα της ταπετσαρίας — ο κώδικας του kdrag0n προορίζεται περισσότερο για τη δημιουργία θεμάτων με βάση το νέο χρώμα ταπετσαρίας.

Ως παράδειγμα του μοντέλου του που εργάζεται για εφαρμογές που στοχεύουν το Android 11, ο προγραμματιστής μοιράστηκε μαζί μας ένα βίντεο που δείχνει μια εφαρμογή που αλλάζει το θέμα της κάθε καρέ στα 90 fps. Λάβετε υπόψη ότι αυτή η επίδειξη είναι απλώς ένα παράδειγμα του τι μπορεί να γίνει και δεν συνιστάται να αναδημιουργηθεί ακριβώς όπως φαίνεται.

Αυτό μπορεί να έχει μεγάλη επιτυχία στην απόδοση και την μπαταρία, αν και το Pixel 4 του προγραμματιστή μπορεί να αποδώσει αλλαγές θέματος στα 90 fps για απλούστερες προβολές. Σύμφωνα με τον προγραμματιστή, το Jetpack Compose δεν έχει βελτιστοποιηθεί τόσο πολύ για απόδοση και η βιβλιοθήκη Flutter μπορεί να είναι καλύτερη. Σε κάθε περίπτωση, χρειάζεται μόνο 0,05 ms για να δημιουργήσει ένα θέμα ο κινητήρας του, αλλά η αλλαγή του θέματος της διεπαφής χρήστη κάθε καρέ επιβαρύνει την απόδοση.


Ο Mishaal Rahman συνέβαλε σε αυτό το άρθρο.