Το Sungstratum από την ομάδα [projekt.] φέρνει όλα τα θεματικά καλούδια του RRO-OMS σε συσκευές Samsung Nougat μέσω του Substratum! Διαβάστε παρακάτω για να μάθετε περισσότερα!
Η θεματολογία Android έχει διανύσει πολύ δρόμο, από τις χάκι επεξεργασίες στο Substratum και τώρα, Sungstratum. Πριν από χρόνια, η λέξη "θέμα" στις συζητήσεις Android αντικαταστάθηκε συχνά από τη λέξη "επιλογέας", ένα νεύμα στο το T-Mobile Theme Chooser που βρέθηκε στο CyanogenMod που έθεσε τα θεμέλια που έκαναν το Android θέμα παράδεισος. Η δυνατότητα τροποποίησης της εμφάνισης του λειτουργικού συστήματος έδωσε στους χρήστες μια άλλη διάσταση προσαρμογής, επιτρέποντάς τους να κάνουν αλλαγές που κάνουν τις συσκευές τους πολύ πιο εξατομικευμένες.
Η καλή δουλειά συνεχίστηκε προς δύο διαφορετικές κατευθύνσεις. Το Theme Chooser εξελίχθηκε στο CyanogenMod Theme Engine, αλλά παρά τα χρόνια προσπαθειών που καταβλήθηκαν για τους πόρους θεμάτων, το CMTE έγινε ξεπερασμένο όταν εμφανίστηκαν άλλες εναλλακτικές λύσεις.
RRO & Layers
Τα θεμέλια μιας από τις εναλλακτικές λύσεις τέθηκαν όταν καλέστηκε η συνεισφορά κώδικα της Sony με τη μορφή του νέου πλαισίου Επικάλυψη πόρων χρόνου εκτέλεσης (RRO) έγινε δεκτός στο AOSP. Αυτό το πλαίσιο παρέχει τη δυνατότητα αντικατάστασης πόρων εφαρμογής κατά τη διάρκεια του χρόνου εκτέλεσης (εξ ου και το όνομα). Οι "επικαλύψεις" από μόνες τους υπήρχαν και υποστηρίζονταν στο Android ήδη από το Gingerbread (και ίσως και νωρίτερα), χρησιμοποιείται κυρίως για την ανταλλαγή πόρων ώστε οι εφαρμογές να λειτουργούν σε αυτό το συγκεκριμένο συσκευή. Η προσέγγιση της Sony στο RRO περιελάμβανε την τροποποίηση του διαχειριστή περιουσιακών στοιχείων ώστε να δέχεται apk που χρησιμοποιούσαν πόρους αντιστοιχισμένους σε άλλους αντίστοιχους πόρους που υπήρχαν στη συσκευή. Αυτοί οι νέοι πόροι από το apk επικαλύφθηκαν στη συνέχεια πάνω από τους βασικούς πόρους μόνο κατά το χρόνο εκτέλεσης, επιτρέποντας στο σύστημα να λειτουργεί σαν να ήταν πάντα μέρος αυτού του νέου πόρου.
Το πλαίσιο RRO συγχωνεύτηκε στο AOSP πριν δημοσιοποιηθεί το Lollipop 5.0, αλλά στις αρχικές λίγες εκδόσεις του 5.0 είχαν σπάσει τμήματα του πλαισίου λόγω άλλων αλλαγών. Οι προεπισκοπήσεις προγραμματιστών του Android 6.0 Marshmallow ήταν οι πρώτες που προστέθηκαν σε ένα λειτουργικό, αν και περιορισμένο πλαίσιο RRO, ανοίγοντας τις πόρτες της δυνατότητας προσαρμογής σε επίπεδο stock Android. Έτσι, εκτός κι αν ένας OEM επιχείρησε σκόπιμα να αποκλίνει από τις στοκ επιλογές θεμάτων Android, σίγουρα Το επίπεδο συνοχής θα μπορούσε να διατηρηθεί στην προσέγγιση του τρόπου με τον οποίο θα εφαρμοστούν τα «θέματα». Android.
Ενώ το AOSP έπαιζε με το RRO και έψαχνε τον καλύτερο τρόπο για να τα ενσωματώσει όλα, μια ομάδα προγραμματιστών κάλεσε BitSyko συνεργάστηκαν σε μια συλλογική προσπάθεια που ονομάζεται "Επίπεδα". Τα επίπεδα επεκτάθηκαν στη λειτουργικότητα stock RRO στο Android 5.1 Lollipop για να επιτρέψουν πιο σύνθετη εναλλαγή πόρων και να επιτρέψουν περισσότερο έλεγχο στοιχείων για θέματα από ό, τι είναι δυνατό με το stock RRO. Επειδή τα Layers δημιουργήθηκαν προς τα πάνω σε RRO, οι κατασκευαστές ROM έπρεπε να προσθέσουν επιπλέον κώδικα για να ενεργοποιήσουν τη λειτουργικότητα των επιπέδων στις ROM τους, καθώς δεν θα λειτουργούσαν όλα τα θέματα των επιπέδων σε stock RRO στο Marshmallow.
Εν τω μεταξύ, η Sony προχώρησε με τις δικές της προσπάθειες προς το θέμα του Android. Άρχισε να δουλεύει OMS (Υπηρεσία διαχείρισης επικαλύψεων), ένα πρόγραμμα-πελάτη για τη διαχείριση επικαλύψεων που θα επέτρεπε στους παρόχους να ελέγχουν δυναμικά τις προτεραιότητες και να ενεργοποιούν και να απενεργοποιούν τις επικαλύψεις. Το OMS συγχωνεύεται στο AOSP και θα φτάσει στο Android O. Αναγνωρισμένος προγραμματιστής XDA nicolaschum ήταν σε θέση να επιβεβαιώσει μέσω των πηγών του ότι το Android O θα έχει «δυναμικές επικαλύψεις», κάτι που πιστεύεται ότι είναι αναφορά στο OMS.
Το OMS προκάλεσε συγκρούσεις με τα επίπεδα, καθώς παραδοσιακά, τέτοιες λειτουργίες ήταν υπό τον έλεγχο του θέματος. Προκειμένου να αντιμετωπίσει τα ζητήματα που έφερε το OMS καθώς και για να επεκταθεί στη λειτουργικότητα των Layers, η BitSyko συνεργάστηκε ξανά (και μετονομάστηκε σε [έργο.]) για να δημιουργήσω Υπόστρωμα. Το Substratum είναι ένας πελάτης με λειτουργικότητα OMS που προσπαθεί να συμβιβάσει τη λειτουργικότητα των επιπέδων με το OMS και επίσης δανείζεται άλλα στοιχεία από άλλες προηγούμενες λύσεις θεματολογίας. Οι επικαλύψεις δεν αλληλεπικαλύπτονταν πλέον μεταξύ τους για να θέσουν μεμονωμένα στοιχεία, καθώς τώρα, όλα τα απαραίτητα στοιχεία εγχύθηκαν σε μια ενιαία επικάλυψη. Λειτουργίες όπως η μεταγλώττιση σε συσκευή επέτρεψαν την εφαρμογή θεμάτων χωρίς να απαιτείται επανεκκίνηση μεταξύ των αλλαγών, γεγονός που το καθιστά σημαντικά ευκολότερο για τους τελικούς χρήστες να δοκιμάσουν θέματα και να πειραματιστούν. Το Substratum βρίσκεται υπό ενεργό ανάπτυξη από την έναρξή του και απαριθμεί όλα τα χαρακτηριστικά του και Η πρόσθετη λειτουργικότητα θα ήταν εκτός του πεδίου εφαρμογής αυτού του άρθρου, επομένως θα προχωρήσουμε στο πραγματικό θέμα αυτού κομμάτι.
Υπόστρωμα σε Sungstratum
Όπως εξηγήθηκε στην προηγούμενη ενότητα, το Substratum ξεκίνησε ως ένας τρόπος επέκτασης της λειτουργικότητας του stock OMS καθώς και της λειτουργίας stock RRO (μέσω των Layers). Το υπόστρωμα προοριζόταν να χρησιμοποιηθεί μαζί με ROM που βασίζονται σε AOSP, καθώς οι περισσότεροι άλλοι OEM θα είχαν κάνει αντικρουόμενες αλλαγές που δεν θα επέτρεπε στο Substratum να συνυπάρχει με τις τροποποιήσεις του σε ένα επεξεργασμένο δέρμα UX, όπως αυτό της Samsung για παράδειγμα.
Η Samsung, από μόνη της, εργαζόταν επίσης σε μια λύση θεμάτων για χρήση σε όλες τις δικές της συσκευές στο Nougat. Σε αντίθεση με τη Sony, η Samsung δεν έδειξε ενδιαφέρον να συνεισφέρει πίσω τον κώδικα θεμάτων στο AOSP. Αλλά επειδή η λύση της Samsung ήταν αρκετά βασική, η AOSP δεν έχανε πραγματικά πολλά. Η λύση θεμάτων της Samsung που ψήνεται στο Touchwiz έκανε την πραγματική της εμφάνιση στο Samsung Galaxy S6, αλλά όπως αναφέρθηκε, ήταν αρκετά περιορισμένη σε ό, τι μπορούσε να προσπαθήσει να επιτύχει. Πριν από αυτό, υπήρχαν περιορισμένοι πειραματισμοί που ξεκίνησαν με το Galaxy Alpha, αν και τα περισσότερα στοιχεία διεπαφής χρήστη του συστήματος ήταν εκτός του πεδίου εφαρμογής του. Τα θέματα θα μπορούσαν να αλλάξουν τις ταπετσαρίες και τα εικονίδια, καθώς και μερικές εφαρμογές στοκ της Samsung, όπως το dialer, τις επαφές, τα μηνύματα και την περιοχή ειδοποιήσεων, για παράδειγμα.
Όπως αποδεικνύεται, η μηχανή θεμάτων της Samsung εκτείνεται RRO όπως βρέθηκε στο AOSP. Η Samsung αναδημιούργησε επίσης τη δική της εσωτερική έκδοση του OMS μετά την επέκταση του RRO, επομένως οι υλοποιήσεις τόσο του RRO όσο και του OMS διαφέρουν από το AOSP. Αλλά παραδόξως, σε όχι πολύ μεγάλο ποσό -- μια ανώμαλη συμπεριφορά όταν κάποιος αναλογιστεί τη ιδιαιτερότητα και την πολυπλοκότητα του Touchwiz. Οι θεματολόγοι που χρησιμοποιούν νεότερες ναυαρχίδες της Samsung ανέφεραν ότι μπορούσαν να εγκαταστήσουν επικαλύψεις RRO και να τους έχουν θεματικές εφαρμογές τρίτων.
Αυτό ήταν το σύνθημα που χρειαζόταν η ομάδα [projekt.] για να εξετάσει την επίσημη υποστήριξη συσκευών Samsung στο Substratum. Η ομάδα μετέτρεψε μια μικρή ποσότητα κώδικα από την ενότητα RRO/Legacy της εφαρμογής της, αλλά αντί για ζητώντας root και ζητώντας επανεκκίνηση, πυροβόλησαν συγκεκριμένες προθέσεις έτσι ώστε να εγκατασταθούν οι επικαλύψεις. Στη συνέχεια, η ομάδα εργάστηκε για να διασφαλίσει ότι οι εφαρμογές που επηρεάζονταν μέσω των θεμάτων έκλεισαν αναγκαστικά στο παρασκήνιο, ώστε να διασφαλιστεί η πλήρης ανανέωση των στοιχείων στην επόμενη κυκλοφορία.
Ρωτήσαμε τον XDA Recognized Developer nicolaschum για να μας παράσχετε κάποιες πληροφορίες σχετικά με τις προκλήσεις που αντιμετώπισε η ομάδα κατά την καταπολέμηση της εφαρμογής RRO-OMS κλειστού κώδικα από τη Samsung:
Οι προκλήσεις που αντιμετωπίσαμε ήταν μάλλον σκοτεινές και άγνωστες από πολλούς που δεν έχουν πολλές γνώσεις κατανόηση των συστημάτων θεματολογίας, είτε ανοιχτού είτε κλειστού κώδικα - όλα έχουν τη δική τους δοκιμή και φάση σφάλματος. Σε αυτήν την περίπτωση, δουλεύοντας με τη Samsung, έπεσα πάνω σε πολλά ζητήματα, αλλά το κυριότερο ήταν οι προθέσεις συστήματος που δεν υπάρχουν ενεργοποιείται για επικαλύψεις μετά την ολοκλήρωση της εγκατάστασης - όπως η χρήση δεκτών εκπομπής με "android.intent.action. PACKAGE_ADDED" - η Υπηρεσία θεμάτων αρνείται οτιδήποτε δεν αποτελεί μέρος της υπογραφής συστήματος με μια συγκεκριμένη Samsung άδεια υπηρεσίας θέματος από τη λήψη αυτής, επομένως το πιο δύσκολο μέρος είναι οι λύσεις που έπρεπε να βρούμε έναν τρόπο περίπου.
Ο τρόπος με τον οποίο χρησιμοποιούμε το Substratum παράλληλα με το Theme Engine της Samsung είναι χρησιμοποιώντας το ίδιο σύστημα με αυτό. Χρησιμοποιούν μια άκρως τροποποιημένη έκδοση του συστήματος επικάλυψης χρόνου εκτέλεσης πόρων της Sony, που συντομεύεται ως RRO ή γνωστό ως legacy μεταξύ των χρηστών του Substratum. Ωστόσο, αυτό που διαφέρει είναι ότι τα θέματα της Samsung έχουν μια επιπλέον άδεια που αποκρύπτει αυτές τις επικαλύψεις από τις Ρυθμίσεις, επομένως δεν μπορείτε να τις απεγκαταστήσετε μία προς μία με μη αυτόματο τρόπο. Χρησιμοποιούμε το ίδιο σύστημα, ωστόσο χρησιμοποιούμε την υλοποίηση της AOSP/Sony, γι' αυτό και τα Samsung Themes μπορούν να θεματοποιήσουν πλήρως, ενώ Οι επικαλύψεις υποστρώματος δεν μπορούν να αγγίξουν έναν στόχο διαμεσολαβητή που δεν υπάρχει "fwk" - όπως όλοι γνωρίζουμε το πλαίσιο είναι απλώς πακέτο "android" όνομα.
Φαινόταν περίεργο ότι το [projekt.] ήταν σε θέση να λειτουργήσει παράλληλα με την υλοποίηση RRO της Samsung με σχετική ευκολία. Οποιοσδήποτε έχει εργαστεί ποτέ σε συσκευές Samsung μπορεί να επιβεβαιώσει πόσο δύσκολα κάνει η Samsung συχνά τα πράγματα. Ρωτήσαμε για οποιοδήποτε συγκεκριμένο μπλοκ που αντιμετώπισε η ομάδα κατά τη διάρκεια του λιμανιού της:
Υπάρχει πράγματι κάποιο είδος μηχανισμού ασφαλείας που επηρέασε μερικούς χρήστες - όπου οι επικαλύψεις επανέρχονται κατά την εκκίνηση. Αυτό οφείλεται στον τρόπο με τον οποίο η Samsung εκκινεί τη συσκευή της. Καθώς είμαστε ως επί το πλείστον όλοι στην έκδοση 7.0 στο TouchWiz/Samsung Experience, χρησιμοποιούμε μια νέα μέθοδο "Βελτιστοποίηση εφαρμογών" (αυτό μπορείτε να το δείτε όταν ενημερώνετε το τηλέφωνό σας, θα εμφανίσει μια ειδοποίηση με το εικονίδιο Android Nougat, λέγοντας ότι γίνεται αναβάθμιση στο παρασκήνιο), οπότε αυτός ο τρόπος βελτιστοποίησης των εφαρμογών ξεφορτώνει επίσης τον στόχο πακέτα, διακόπτοντας τελικά τη διαδικασία idmapping κατά την εκκίνηση (λόγω του μη υπάρχοντος πακέτου στόχου) και έτσι, μερικά άτομα αντιμετωπίζουν ξεφόρτωση επικάλυψης μετά από επανεκκίνηση.
Μπορείτε επίσης να δείτε αυτό να συμβαίνει και με μερικά θέματα Samsung, ιδιαίτερα το θέμα Dark/Black του @envy~ - αυτός κάνει το προεπιλεγμένο χρώμα της γραμμής πλοήγησης στην Οθόνη -> Γραμμή πλοήγησης σε μαύρο, όπου είναι το πραγματικό προεπιλεγμένο χρώμα άσπρο. Αφού το ρυθμίσετε σε μαύρο, μπορείτε να ανοίξετε το πληκτρολόγιο και η γραμμή πλοήγησης παραμένει μαύρη. Αυτό θα επανέλθει τυχαία κατά την επανεκκίνηση επίσης σε πολλές συσκευές.
Με το θέμα να κερδίζει ξανά την εξέχουσα θέση του, ποια είναι τα σχέδια της Substratum μπροστά σε πλευρικούς κλάδους όπως το Sungstratum;
Μπροστά, θα συγχωνεύσουμε μια μικρή μικρή εφαρμογή στο πρόσθετό μας για τους τρέχοντες χρήστες μας έτσι ώστε να το κάνουν να είναι σε θέση να διακόψει την Υπηρεσία Θεμάτων της Samsung εάν έχουν εγκατασταθεί όλα τα θέματα που είναι εγκατεστημένα στις συσκευές τους XDA. Έτσι, τα άτομα που θα χρησιμοποιούν θέματα με μορφοποίηση θέματος Samsung από το XDA, θα μπορείτε να χρησιμοποιήσετε το πρόσθετο για να αποτρέψετε Η υπηρεσία της Samsung από το να το επαναφέρει στο stock θέμα μετά από κάθε επανεκκίνηση (επειδή δεν είχε εγκατασταθεί από το κατάστημα της Samsung επίσημα). Θα απαιτήσει ένα δωρεάν κλειδί προγραμματιστή Samsung που είναι διαθέσιμο για να το αποκτήσετε από τον ιστότοπό τους, αλλά θα είναι προ-ομαδοποιημένο με λήψη πρόσθετου Sungstratum.
Με τις πρόσφατες και επερχόμενες αλλαγές στο AOSP και το Android O, φαίνεται ότι το παλαιότερο λειτουργικό σύστημα της Google θα έχει ακόμη περισσότερη εξατομίκευση που θα μεταβιβαστεί στον χρήστη. Ορισμένοι OEM σχεδιάζουν ακόμη και να απαλλαγούν από τις προσαρμοσμένες διεπαφές χρήστη και τα πρόσθετα UX τους υπέρ του AOSP και άλλοι όπως η Samsung αιωρούνται αρκετά κοντά με τις δικές τους λύσεις θεματοποίησης. Οραματιζόμαστε ένα μέλλον όπου τα θέματα θα διαδραματίζουν σημαντικό ρόλο στην εμπειρία χρήστη ακόμα περισσότερων ανθρώπων -- ένα λειτουργικό σύστημα όπου ελέγχετε πραγματικά την εμφάνιση της συσκευής σας, όπου η αισθητική της διεπαφής χρήστη είναι προσαρμοσμένη από εσάς εσείς. Και δεν θα μπορούσαμε να φτάσουμε σε ένα τέτοιο μέλλον χωρίς τη συλλογική δύναμη αυτής της φοβερής κοινότητας και έργων όπως το Substratum.
Ρίξτε μια ματιά στο Substratum Integration για το Samsung Nougat στα φόρουμ μας για το Substratum!Υπόστρωμα στο GitHub