Πώς το Android Go μπορεί να βοηθήσει παλαιότερα τηλέφωνα Android να εκτελούν το Android 8.1 Oreo

click fraud protection

Το Android Go είναι η απογυμνωμένη έκδοση του Android Oreo 8.1 της Google για νέες συσκευές με χαμηλή μνήμη RAM. Όπως αποδεικνύεται, μπορεί να βοηθήσει στην ανάπτυξη προσαρμοσμένης ROM και σε παλαιότερες συσκευές.

Το Android Go είναι η απογυμνωμένη έκδοση του Android της Google που βασίζεται στο Android 8.1 Oreo και στοχεύει να είναι μια βελτιστοποιημένη έκδοση του Android για συσκευές χαμηλού επιπέδου με μνήμη RAM 1 GB ή χαμηλότερη. Ανακοινώθηκε τον περασμένο Μάιο στο συνέδριο προγραμματιστών Google I/O και τελικά περισσότερες λεπτομέρειες αποκαλύφθηκαν τον Δεκέμβριο αργότερα εκείνου του έτους. Λέγεται ότι κατασκευάστηκε για την επόμενη γενιά συσκευών εισαγωγικού επιπέδου, για να διασφαλιστεί ότι αυτές που βρίσκονται σε Οι αναπτυσσόμενες χώρες μπορούν ακόμα να χρησιμοποιούν λειτουργικά smartphone για να έχουν πρόσβαση στο διαδίκτυο και χρησιμοποιήστε εφαρμογές.

Το Go διαθέτει μεγάλη ποικιλία βελτιστοποιήσεων και βελτιώσεων απόδοσης, συμπεριλαμβανομένης της κατάληψης 50 τοις εκατό λιγότερου χώρου αποθήκευσης από μια μέση εγκατάσταση Android Oreo. Χάρη στο Android Runtime (ART) και τις βελτιστοποιήσεις πυρήνα επίσης, μια συσκευή με Android Go θα λειτουργεί, κατά μέσο όρο, 15 τοις εκατό πιο γρήγορα από ό, τι σε μια κανονική εγκατάσταση Android Oreo στην ίδια συσκευή. Αυτές οι βελτιστοποιήσεις γίνονται μέσω μιας σειράς εξειδικευμένων διαμορφώσεων κατασκευής που έγιναν από την Google, τις οποίες θα εξηγήσουμε αργότερα.

Το Android Go επωφελείται επίσης από ειδικές εφαρμογές "Go", όπως π.χ Files Go, YouTube Go και Google Maps Go. Αυτές είναι ελαφριές εκδόσεις εφαρμογών που κατασκευάζονται από την Google, οι οποίες έχουν μειωμένες απαιτήσεις για να λειτουργούν πιο αποτελεσματικά. Αυτό σημαίνει ότι όσοι διαθέτουν συσκευές Android Go μπορούν να απολαμβάνουν τα περισσότερα από τα ίδια πλεονεκτήματα που έχουν και οι τακτικοί χρήστες Android Oreo χρήση της σουίτας εφαρμογών της Google χωρίς να χρειάζεται να ξοδέψετε πολλά χρήματα σε έναν κορυφαίο ή ακόμα και ελαφρώς πιο ακριβό προϋπολογισμό συσκευή.

Το μόνο που έχει να κάνει είναι η Google να επεκτείνει την αγορά της. Ωστόσο, τίθεται το ερώτημα ότι εάν το Android Go αποτελείται κυρίως από μια διαμόρφωση build και μια σουίτα βελτιστοποιημένων εφαρμογών Google, μπορούν οι προγραμματιστές να φτιάξουν τις δικές τους εκδόσεις του Android Go; Εν συντομία, ναι μπορούμε.

Μερικοί προγραμματιστές LineageOS κατασκευάζουν ήδη προσαρμοσμένες ROM βελτιστοποιημένες για το Android Go

Βλέπουμε ήδη κάπως μια απορρόφηση στο Android Go από ορισμένους προγραμματιστές προσαρμοσμένης ROM, όπως από τον αναγνωρισμένο προγραμματιστή XDA AdrianDC, με τη δουλειά του στο LineageOS 15.1 με διαμορφώσεις κατασκευής Android Go για πολλά παλιά τηλέφωνα Sony. Οι εν λόγω συσκευές είναι οι Sony Xperia SP, Sony Xperia T, Sony Xperia V και Sony Xperia TX. Όλες αυτές οι συσκευές χρονολογούνται από το 2012 και το 2013, ωστόσο θα λαμβάνουν LineageOS 15.1 βασισμένο στο Android 8.1 Oreo χρησιμοποιώντας ένα Android Διαμόρφωση Go build, η οποία μπορεί να επιτρέψει στις συσκευές να εκτελούν τις εφαρμογές Google «Go» ομαλά, εάν τελικά γίνει ένα σύνολο Android Go Gapps απελευθερώθηκε.

Οποιοσδήποτε μεμονωμένος συντηρητής LOS θα πρέπει να μπορεί να εισαγάγει μια διαμορφωμένη έκδοση Android Go, με αυτή να είναι ένα σύνολο διαμορφώσεων έκδοσης και άλλες βελτιστοποιήσεις. Αυτό σημαίνει ότι όσοι μπορεί να έχουν αγοράσει το Sony Xperia T για παράδειγμα, μια συσκευή με Android 4.0.4 Ice Cream Sandwich κατά την κυκλοφορία, θα μπορούν να χρησιμοποιούν καλύτερα βελτιστοποιημένη έκδοση του Android 8.1 Oreo στη συσκευή, χρησιμοποιώντας εφαρμογές όπως το YouTube Go και το Google Maps Go. Δεν πρόκειται να λειτουργήσει σε κορυφαία επίπεδα απόδοσης, αλλά θα έπρεπε να είναι χρησιμοποιήσιμος—ειδικά για μια συσκευή που χρονολογείται από το 2012.


Πώς το Android Go μπορεί να βοηθήσει παλαιότερα τηλέφωνα Android να εκτελούν Android Oreo

Οι διαμορφώσεις δόμησης στο Android είναι ένα σύνολο παραμέτρων που σχετίζονται με διάφορες πτυχές του συστήματος Android που εφαρμόζονται κατά τη μεταγλώττιση της εικόνας του συστήματος για να αναβοσβήνει σε μια συσκευή. Συνήθως αυτές αλλάζουν τον τρόπο συμπεριφοράς του συστήματος και προέρχονται οι κύριες βελτιστοποιήσεις του Android Go αυτές οι διαμορφώσεις κατασκευής.

Οι διαμορφώσεις κατασκευής που χρησιμοποιούνται για τη μεταγλώττιση του Android Go.

Μίλησα με τον XDA Recognized Developer joshuous, ο οποίος με βοήθησε πολύ να κατανοήσω τις αλλαγές που συνέβαιναν—τι πραγματικά κάνει το Android Go να λειτουργεί. Ορισμένες από αυτές τις διαμορφώσεις build δεν μπορούν να αλλάξουν χωρίς επαναμεταγλώττιση και αποτελούν μέρος του σχεδίου της ίδιας της ROM. Αυτές είναι οι σημαίες με κεφαλαία γράμματα.

Όλες αυτές οι σημαίες, ωστόσο, αφορούν πολλές διαφορετικές πτυχές του Android που σχετίζονται με την αποθήκευση και τη χρήση μνήμης. Αυτά περιλαμβάνουν αυτόματη διαχείριση αποθήκευσης, ο δολοφόνος χαμηλής μνήμης του Android, ο dex (ρεalvik πρώηνεκτελέσιμα αρχεία) βελτιστοποιητή και όρια RAM για την εκτέλεση εφαρμογών. Τα αρχεία APK αποτελούνται από αυτά τα αρχεία DEX, επομένως, κατά κάποιο τρόπο, είναι δυνατό να σκεφτούμε ένα αρχείο APK ως απλό Αρχείο ZIP που περιέχει πολλά αρχεία .dex, το οποίο στην πραγματικότητα εκτελεί το Android όταν εκτελεί ένα εφαρμογή. Αντίθετα, η αυτόματη διαχείριση αποθήκευσης θα ελέγχεται από την εφαρμογή Files Go και όχι από το σύστημα Android.

Android Go Utilities Λειτουργία χαμηλής μνήμης RAM του Android

Στο Android 4.4 KitKat, η Google παρουσίασε μια νέα σημαία που ονομάζεται "χαμηλού κριιού», η οποία είχε ως στόχο την υποστήριξη συσκευών με 512MB μνήμης RAM. Κάνει μια σειρά από βελτιστοποιήσεις στο σύστημα. Αυτές οι αλλαγές είναι εξαιρετικά ωφέλιμες για συσκευές χαμηλότερης μνήμης RAM.

Βελτιωμένη διαχείριση μνήμης

  • Επικυρωμένες διαμορφώσεις πυρήνα εξοικονόμησης μνήμης: Εναλλαγή σε ZRAM.
  • Σκοτώστε τις αποθηκευμένες διεργασίες εάν πρόκειται να αποθηκευτούν στην κρυφή μνήμη και είναι πολύ μεγάλες.
  • Μην επιτρέπετε σε μεγάλες υπηρεσίες να επαναφέρουν τον εαυτό τους στις Υπηρεσίες A (ώστε να μην μπορούν να προκαλέσουν τον θάνατο του εκτοξευτή).
  • Σκοτώστε διεργασίες (ακόμη και αυτές που συνήθως δεν μπορούν να εξαλειφθούν, όπως το τρέχον IME) που γίνονται πολύ μεγάλες στη συντήρηση σε αδράνεια.
  • Σειρά την έναρξη των υπηρεσιών παρασκηνίου.
  • Συντονισμένη χρήση μνήμης συσκευών χαμηλής μνήμης RAM: πιο αυστηρά επίπεδα προσαρμογής εκτός μνήμης (OOM), μικρότερες κρυφές μνήμες γραφικών κ.λπ.

Αυτές οι παραπάνω αλλαγές διασφαλίζουν βασικά ότι το σύστημα φροντίζει να χρησιμοποιεί συμπιεσμένη RAM όπου είναι δυνατόν, μέσω της χρήσης ZRAM. Το ZRAM είναι βασικά ένας δίσκος RAM (ένα μέσο αποθήκευσης που χρησιμοποιεί μνήμη RAM, πολύ πιο γρήγορα από τη χρήση κανονικής αποθήκευσης στη συσκευή) ως αρχείο ανταλλαγής. Ένα αρχείο ανταλλαγής χρησιμοποιείται όταν η χρήση RAM είναι υψηλή και οι εφαρμογές εξακολουθούν να απαιτούν μνήμη. Αυτό είναι πολύ, πολύ πιο αργό από τη μνήμη RAM και θα πρέπει να αποφεύγεται όπου είναι δυνατόν. Στην ουσία, απλώς συμπιέζει τα περιεχόμενα της μνήμης.

Μειωμένη μνήμη συστήματος

  • Περικόπηκαν οι διαδικασίες system_server και SystemUI (αποθηκεύτηκαν αρκετά MB).
  • Προφόρτωση κρυφών μνήμης dex στο Dalvik (αποθηκεύτηκαν αρκετά MB).
  • Επικυρωμένη επιλογή JIT-off (εξοικονομεί έως και 1,5 MB ανά διαδικασία).
  • Μειωμένη επιβάρυνση της προσωρινής μνήμης γραμματοσειρών ανά διαδικασία.
  • Παρουσιάστηκε το ArrayMap/ArraySet και χρησιμοποιήθηκε εκτενώς στο πλαίσιο ως αντικατάσταση ελαφρύτερου αποτυπώματος για το HashMap/HashSet.

Αυτό που συμβαίνει κυρίως εδώ είναι απλώς μειωμένη κατανάλωση μνήμης από διάφορες διεργασίες που εκτελούνται στη συσκευή, για να είμαστε όσο το δυνατόν πιο συντηρητικοί. Οι βασικές υπηρεσίες συστήματος έχουν αφαιρεθεί για να χρησιμοποιούν όσο το δυνατόν λιγότερη μνήμη στο παρασκήνιο, καθώς κάθε megabyte μνήμης RAM είναι σημαντικό.

Το Android Go χρησιμοποιεί ένα τροποποιημένο πρόγραμμα προστασίας από χαμηλή μνήμη και βελτιστοποιήσεις dex

Δεδομένου ότι το Android Go προορίζεται κυρίως για συσκευές με μνήμη RAM 1 GB ή λιγότερο, θα πρέπει να υπάρχει πιο επιθετική διαχείριση μνήμης. Το Android Go τροποποιεί το Low Memory Killer (LMK) με μερικούς διαφορετικούς τρόπους. Πρώτον, όταν εξαντληθεί μεγάλη ποσότητα μνήμης RAM, η χαμηλή μνήμη μεταβαίνει σε "κρίσιμη πίεση" κατάσταση. Αυτό οφείλεται στο γεγονός ότι όταν η χρήση της μνήμης είναι υψηλή, το σύστημα θα γίνει υποτονικό λόγω της συνεχούς προσπάθειας πρόσβασης σε ένα αρχείο ανταλλαγής στον αποθηκευτικό χώρο της συσκευής. Η διατήρηση της μνήμης RAM καθαρή θα αποτρέψει το σύστημα που χρειάζεται να χρησιμοποιήσει αυτό το αρχείο ανταλλαγής και θα αποτρέψει το thrashing της μνήμης. Το thrashing μνήμης συμβαίνει όταν η μνήμη της συσκευής είναι γεμάτη και πρέπει συνεχώς να σελιδοποιεί το αρχείο ανταλλαγής στον αποθηκευτικό χώρο της συσκευής, υποβαθμίζοντας σε μεγάλο βαθμό την απόδοση.

Οι υπηρεσίες και οι υπηρεσίες WiFi έχουν οριστεί σε "ταχύτητα-προφίλ," πράγμα που σημαίνει ότι οι επιλεγμένες μέθοδοι σε αυτές τις υπηρεσίες έχουν μεταγλωττιστεί εκ των προτέρων (ΑΟΤ). (Μια μέθοδος αναφέρεται σε ένα σύνολο κώδικα που μπορεί να κληθεί ανά πάσα στιγμή με όνομα.) Αυτό μειώνει τη χρήση της μνήμης RAM και αποθήκευσης, καθώς το σύστημα Android δεν θα χρειάζεται να ανασυντάσσει συνεχώς βασικές υπηρεσίες που εκτελούνται στο συσκευή. Εν τω μεταξύ, τα κοινόχρηστα APK έχουν ρυθμιστεί σε "γρήγορο", το οποίο έχει σχεδιαστεί για να προσφέρει επιπλέον διάρκεια ζωής της μπαταρίας και επιπλέον κύκλους CPU βελτιστοποιώντας τις οδηγίες dex για καλύτερη απόδοση.

Όσον αφορά τις βελτιστοποιήσεις dex, το Android Go κάνει αρκετά. Για αρχή, μετά από 10 ημέρες θα γίνει υποβάθμιση μιας εφαρμογής εάν δεν χρησιμοποιείται για εξοικονόμηση χώρου. Η υποβάθμιση εδώ δεν αναφέρεται στη μείωση του πραγματικού αριθμού έκδοσης της εφαρμογής, αλλά μάλλον σημαίνει ότι η dalvik_cache για την εφαρμογή θα διαγραφεί. Η κρυφή μνήμη Dalvik χρησιμοποιείται έτσι ώστε η συσκευή να μην χρειάζεται να μεταγλωττίζει εκ νέου εφαρμογές, αντίθετα, μεταγλωττίζει μόνο τα πιο απαραίτητα μέρη της και αποθηκεύει στην κρυφή μνήμη. Τα υπόλοιπα μεταγλωττίζονται χρησιμοποιώντας τον μεταγλωττιστή Just in Time (JIT) όταν εκτελείται η εφαρμογή. Εάν η εφαρμογή δεν χρησιμοποιηθεί για 10 ημέρες, ωστόσο, αφαιρούνται και τα βασικά μέρη της εφαρμογής που είναι προμεταγλωττισμένα. Αυτό γίνεται για να ελευθερωθεί όσο το δυνατόν περισσότερος χώρος. Μια άλλη απλή αλλαγή είναι να μην επιτρέπεται η χρήση RAM μιας εφαρμογής να υπερβαίνει τα 256 MB, έτσι ώστε μια εφαρμογή να μην μπορεί να χρησιμοποιήσει όλη τη μνήμη RAM της συσκευής.


Είναι το Android Go το μέλλον της ανάπτυξης προσαρμοσμένης ROM σε συσκευές χαμηλού επιπέδου;

Επί του παρόντος, δεν γνωρίζουμε την απάντηση σε αυτό, αλλά το μέλλον φαίνεται λαμπρό για την ανάπτυξη custom ROM σε παλαιότερες συσκευές. Μπορεί να υπάρχουν άλλα προβλήματα με την εκτέλεση μιας νεότερης έκδοσης Android σε μια συσκευή, αλλά θεωρητικά, μια αναβάθμιση σε ένα πιο βελτιστοποιημένο Android Go που βασίζεται στο Android Oreo πρέπει κάνουν μια παλαιότερη, low-end συσκευή να λειτουργεί καλύτερα.