Android Go est la version allégée d'Android Oreo 8.1 de Google pour les nouveaux appareils à faible RAM. Il s’avère que cela peut également aider au développement de ROM personnalisées sur des appareils plus anciens.
Android Go est la version allégée d'Android de Google basée sur Android 8.1 Oreo, et vise à être une version optimisée d'Android pour les appareils bas de gamme avec 1 Go de RAM ou moins. Cela a été annoncé en mai dernier lors de la conférence des développeurs Google I/O, et finalement, plus de détails ont été révélés en décembre plus tard cette année-là. Il a été dit qu'il était conçu pour la prochaine génération d'appareils d'entrée de gamme, afin de garantir que ceux en les pays en développement peuvent encore utiliser des smartphones fonctionnels pour accéder à Internet et utiliser des applications.
Go propose une grande variété d'optimisations et d'améliorations des performances, notamment en occupant 50 % d'espace de stockage en moins qu'une installation Android Oreo moyenne. Grâce à Android Runtime (ART) et aux optimisations du noyau, un appareil exécutant Android Go fonctionnera en moyenne 15 % plus rapidement que sur une installation Android Oreo classique sur le même appareil. Ces optimisations sont réalisées grâce à un certain nombre de configurations de build spécialisées réalisées par Google, que nous expliquerons plus tard.
Android Go bénéficie également d'applications spéciales "Go", comme Les fichiers vont, YouTube Aller et Google Maps Aller. Il s'agit de versions allégées d'applications créées par Google, dont les exigences sont réduites pour fonctionner plus efficacement. Cela signifie que ceux qui possèdent des appareils Android Go peuvent bénéficier de la plupart des mêmes avantages que les utilisateurs réguliers d'Android Oreo, ce qui rend utilisation de la suite d'applications de Google sans avoir à dépenser beaucoup d'argent sur un produit phare ou même un budget légèrement plus élevé appareil.
Il s'agit pour Google d'élargir son marché. Pourtant, cela soulève la question suivante: si Android Go consiste principalement en une configuration de build et une suite d'applications Google optimisées, les développeurs peuvent-ils créer leurs propres versions d'Android Go? En bref, Oui nous pouvons.
Quelques développeurs LineageOS créent déjà des ROM personnalisées optimisées pour Android Go
Nous constatons déjà une certaine adoption d'Android Go de la part de certains développeurs de ROM personnalisés, tels que XDA Recognized Developer. AdrianDC, avec son travail sur LineageOS 15.1 avec des configurations de build Android Go pour plusieurs vieux téléphones Sony. Les appareils en question sont le Sony Xperia SP, le Sony Xperia T, le Sony Xperia V et le Sony Xperia TX. Ces appareils datent tous des années 2012 et 2013, mais ils recevront LineageOS 15.1 basé sur Android 8.1 Oreo utilisant un système Android. Configuration Go build, qui peut permettre aux appareils d'exécuter les applications Google « Go » de manière fluide, si un ensemble Android Go de Gapps devait éventuellement être libéré.
Tout responsable de LOS individuel devrait être en mesure d'introduire une version configurée pour Android Go, il s'agit d'un ensemble de configurations de construction et d'autres optimisations. Cela signifie que ceux qui ont acheté le Sony Xperia T par exemple, un appareil fonctionnant sous Android 4.0.4 Ice Cream Sandwich au lancement, pourront utiliser un version mieux optimisée d'Android 8.1 Oreo sur l'appareil, utilisant des applications telles que YouTube Go et Google Maps Go. Il ne fonctionnera pas à des niveaux de performances phares, mais ça devrait être utilisable—surtout pour un appareil qui date de 2012.
Comment Android Go peut aider les anciens téléphones Android à exécuter Android Oreo
Les configurations de construction sur Android sont un ensemble de paramètres relatifs à divers aspects du système Android qui sont appliqués lors de la compilation de l'image système à flasher sur un appareil. Généralement, ceux-ci modifient le comportement du système et les principales optimisations d'Android Go proviennent de ces configurations de construction.
J'ai parlé avec un développeur reconnu par XDA joshuous, qui m'a beaucoup aidé à comprendre les changements en cours et ce qui fait réellement fonctionner Android Go. Certaines de ces configurations de build ne peuvent pas être modifiées sans recompilation et font partie du plan de la ROM elle-même. Ce sont les drapeaux entièrement majuscules.
Cependant, tous ces indicateurs concernent de nombreux aspects différents d'Android liés au stockage et à l'utilisation de la mémoire. Ceux-ci inclus gestion automatique du stockage, le tueur de faible mémoire d'Android, le dex (dalvik exfichiers exécutables) optimiseur et limites de RAM pour l'exécution des applications. Les fichiers APK sont constitués de ces fichiers DEX, donc d'une certaine manière, il est possible de considérer un fichier APK comme simplement un Fichier ZIP contenant de nombreux fichiers .dex, qui sont en fait ce qu'Android exécute lorsqu'il exécute un application. La gestion automatique du stockage sera plutôt contrôlée par l'application Files Go, et non par le système Android.
Android Go Utilitaires Mode RAM faible d'Android
Dans Android 4.4 KitKat, Google a introduit un nouveau drapeau appelé "faible RAM", qui visait à prendre en charge les appareils dotés de 512 Mo de RAM. Il apporte un certain nombre d’optimisations au système. Ces changements sont extrêmement bénéfiques pour les appareils à faible RAM.
Gestion de la mémoire améliorée
- Configurations de noyau validées permettant d'économiser de la mémoire: passez à ZRAM.
- Tuez les processus mis en cache s'ils sont sur le point de ne pas être mis en cache et s'ils sont trop volumineux.
- Ne permettez pas aux grands services de se remettre dans les services A (ils ne peuvent donc pas provoquer la mort du lanceur).
- Tuez les processus (même ceux qui sont habituellement impossibles à tuer, comme l'IME actuel) qui deviennent trop volumineux lors d'une maintenance inactive.
- Sérialisez le lancement des services d’arrière-plan.
- Utilisation optimisée de la mémoire des appareils à faible RAM: niveaux d'ajustement de manque de mémoire (MOO) plus stricts, caches graphiques plus petits, etc.
Ces modifications ci-dessus garantissent essentiellement que le système s'assure d'utiliser de la RAM compressée lorsque cela est possible, grâce à l'utilisation de ZRAM. ZRAM est essentiellement un disque RAM (un support de stockage qui utilise la RAM, beaucoup plus rapidement que l'utilisation d'un stockage standard sur l'appareil) en tant que fichier d'échange. Un fichier d'échange est utilisé lorsque l'utilisation de la RAM est élevée et que les applications nécessitent encore de la mémoire. C'est beaucoup, beaucoup plus lent que la RAM et doit être évité autant que possible. Essentiellement, il compresse simplement le contenu de la mémoire.
Mémoire système réduite
- Processus system_server et SystemUI réduits (économisé plusieurs Mo).
- Précharger les caches dex dans Dalvik (économisé plusieurs Mo).
- Option JIT-off validée (économise jusqu'à 1,5 Mo par processus).
- Réduction de la surcharge du cache de polices par processus.
- Introduction d'ArrayMap/ArraySet et largement utilisé dans le framework comme remplacement plus léger de HashMap/HashSet.
Ce qui se passe principalement ici, c'est simplement une réduction de la consommation de mémoire provenant des divers processus exécutés sur l'appareil, pour être aussi conservateur que possible. Les services système essentiels ont été supprimés pour utiliser le moins de mémoire possible en arrière-plan, car chaque mégaoctet de RAM est important.
Android Go utilise un tueur de mémoire faible modifié et des optimisations dex
Étant donné qu'Android Go est principalement destiné aux appareils dotés de 1 Go de RAM ou moins, une gestion de la mémoire plus agressive sera nécessaire. Android Go modifie le Low Memory Killer (LMK) de différentes manières. Premièrement, lorsqu'une grande quantité de RAM est utilisée, le tueur de mémoire faible passe à un "pression critique" État. En effet, lorsque l'utilisation de la mémoire est élevée, le système devient lent en raison des tentatives constantes d'accès à un fichier d'échange sur le stockage de l'appareil. Garder la RAM claire empêchera le système d'avoir besoin d'utiliser ce fichier d'échange et empêchera l'épuisement de la mémoire. L'écrasement de la mémoire se produit lorsque la mémoire de l'appareil est pleine et doit constamment paginer le fichier d'échange sur le stockage de l'appareil, ce qui dégrade considérablement les performances.
Les services et les services WiFi sont réglés sur "profil de vitesse", ce qui signifie que certaines méthodes de ces services sont compilées à l'avance (AOT). (Une méthode fait référence à un ensemble de codes qui peuvent être appelés à tout moment par leur nom.) Cela réduit l'utilisation de la RAM et stockage, car le système Android n'aura pas besoin de recompiler en permanence les services essentiels qui s'exécutent sur le appareil. Pendant ce temps, les APK partagés sont configurés pour « accélérer », ce qui est conçu pour offrir une durée de vie supplémentaire de la batterie et des cycles de processeur supplémentaires en optimisant les instructions dex pour obtenir de meilleures performances.
En termes d'optimisations dex, Android Go fait beaucoup. Pour commencer, après 10 jours, ce sera rétrograder une application s'il n'est pas utilisé pour économiser de l'espace. Ici, la rétrogradation ne fait pas référence à la diminution du numéro de version réel de l'application, mais signifie plutôt que le dalvik_cache de l'application sera effacé. Le cache Dalvik est utilisé pour que l'appareil n'ait pas besoin de recompiler les applications. Au lieu de cela, il en compile uniquement les parties les plus nécessaires et les met en cache. Le reste est compilé à l’aide du compilateur Just in Time (JIT) lors de l’exécution de l’application. Toutefois, si l'application n'est pas utilisée pendant 10 jours, les parties essentielles de l'application précompilées sont également supprimées. Ceci est fait pour libérer autant d'espace que possible. Un autre changement simple consiste à ne pas autoriser l'utilisation de la RAM d'une application à dépasser 256 Mo, de sorte qu'une application ne puisse pas utiliser toute la RAM de l'appareil.
Android Go est-il l'avenir du développement de ROM personnalisées sur les appareils bas de gamme?
Actuellement, nous ne connaissons pas la réponse à cette question, mais l’avenir s’annonce prometteur pour le développement de ROM personnalisées sur des appareils plus anciens. Il peut y avoir d'autres problèmes pour faire fonctionner une version plus récente d'Android sur un appareil, mais en théorie, une mise à niveau vers un Android Go plus optimisé basé sur Android Oreo devrait améliorer le fonctionnement d'un appareil plus ancien et bas de gamme.