Comment Android Go peut aider les téléphones Android plus anciens exécuter Android 8.1 Oreo

Android Go est la version allégée d'Android basée sur Android 8.1 Oreo, et vise à être une version optimisée d'Android pour les appareils bas de gamme dotés de 1 Go de RAM ou moins. Cette annonce avait été annoncée en mai dernier lors de la conférence des développeurs I / O de Google. Des détails supplémentaires ont finalement été révélés en décembre, plus tard dans l'année. Cela aurait été fait pour la prochaine génération d'appareils d'entrée de gamme, afin de garantir que ceux des pays en développement puissent toujours utiliser des smartphones fonctionnels afin d'accéder à Internet et d'utiliser des applications.

Go propose une grande variété d’optimisations et d’améliorations des performances, notamment une réduction de 50% de l’espace de stockage par rapport à une installation Android Oreo moyenne. Grâce également à Android Runtime (ART) et aux optimisations du noyau, un appareil équipé d'Android Go s'exécutera en moyenne 15% plus vite que sur une installation Android Android Oreo normale sur le même appareil. Ces optimisations sont effectuées via un certain nombre de configurations de construction spécialisées de Google, que nous expliquerons plus tard.

Android Go bénéficie également d'applications spéciales «Go», telles que Files Go, YouTube Go et Google Maps Go. Il s’agit de versions allégées d’applications conçues par Google, qui exigent moins d’exécution efficace. Cela signifie que ceux qui possèdent un appareil Android Go peuvent profiter de la plupart des avantages que les utilisateurs habituels d'Android Oreo peuvent également utiliser, en utilisant la suite d'applications de Google, sans avoir à dépenser beaucoup d'argent pour un appareil phare, voire légèrement plus cher.

Il s’agit avant tout de développer le marché de Google. Cependant, on peut se poser la question suivante: si Android Go consiste principalement en une configuration de construction 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 construisent déjà des ROM personnalisées optimisées pour Android Go

Nous voyons déjà une certaine adhésion à Android Go de la part de certains développeurs de ROM personnalisés, tels que le développeur reconnu AdrianDC, avec son travail sur LineageOS 15.1 avec les configurations de construction d'Android Go pour plusieurs anciens 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 remontent tous aux années 2012 et 2013, mais ils recevront LineageOS 15.1 basé sur Android 8.1 Oreo sous une configuration de construction Android Go, qui pourrait permettre aux appareils d'exécuter les applications Google «Go» de manière fluide, si un ensemble Android Go de Gapps finalement être libéré.

Tout responsable individuel de LOS devrait pouvoir introduire une version configurée sous Android Go, un ensemble de configurations de construction et d’autres optimisations. Cela signifie que ceux qui ont peut-être acheté le Sony Xperia T, par exemple, un appareil fonctionnant sous Android 4.0.4 Ice Cream Sandwich lors du lancement, seront en mesure d'utiliser une version mieux optimisée d'Android 8.1 Oreo sur l'appareil, ce qui rendra l'utilisation plus efficace. d'applications telles que YouTube Go et Google Maps Go. Il ne fonctionnera pas aux niveaux de performance phares, mais il devrait être utilisable, en particulier pour un appareil datant de 2012.


Comment Android Go peut-il aider les téléphones Android plus anciens à exécuter Android Oreo

Les configurations de construction sur Android constituent 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 pour flasher sur un périphérique. Celles-ci modifient généralement le comportement du système, et les principales optimisations d'Android Go proviennent de ces configurations de construction.

Les configurations de construction utilisées pour compiler Android Go.

J'ai parlé à joshuous, développeur reconnu, qui m'a beaucoup aidé à comprendre les changements en cours - ce qui fait vraiment fonctionner Android Go. Certaines de ces configurations ne peuvent pas être modifiées sans recompilation et font partie du modèle de la ROM elle-même. Ce sont les drapeaux entièrement capitalisés.

Tous ces indicateurs concernent toutefois de nombreux aspects d’Android relatifs au stockage et à l’utilisation de la mémoire. Il s’agit notamment de la gestion automatique du stockage, du système de suppression de mémoire peu performant d’ Android, de l’optimiseur dex (fichiers échangeables) et des limites de mémoire vive pour l’exécution des applications. Les fichiers APK sont composés de ces fichiers DEX. Il est donc possible de penser qu'un fichier APK est simplement un fichier ZIP contenant de nombreux fichiers .dex, qui est en fait ce qu'Android exécute lorsqu'il exécute une application. La gestion automatique du stockage sera à la place contrôlée par l'application Files Go, et non par le système Android.

Android Go Utilities Mode faible RAM d'Android

Dans Android 4.4 KitKat, Google a introduit un nouveau drapeau appelé «low-ram», qui visait à prendre en charge les appareils dotés de 512 Mo de RAM. Cela fait un certain nombre d’optimisations au système. Ces modifications sont extrêmement bénéfiques pour les périphériques à faible RAM.

Amélioration de la gestion de la mémoire

  • Configurations du noyau d'économie de mémoire validées: Basculement en ZRAM.
  • Éliminez les processus en cache si vous êtes sur le point de le perdre et qu'il est trop volumineux.
  • Ne laissez pas les gros services se remettre dans les services A (ils ne peuvent donc pas tuer le lanceur).
  • Éliminez les processus (même ceux qui ne peuvent normalement pas être tués, comme l’IME actuel) qui deviennent trop volumineux en mode de maintenance inactif.
  • Sérialiser le lancement des services d'arrière-plan.
  • Utilisation en mémoire optimisée des périphériques à faible mémoire vive: niveaux de réglage plus étroits en mémoire insuffisante (MOO), caches graphiques plus petits, etc.

Ces modifications ci-dessus garantissent essentiellement que le système s'assure d'utiliser la RAM compressée dans la mesure du possible, via l'utilisation de ZRAM. La ZRAM est essentiellement un disque RAM (un support de stockage qui utilise la RAM, beaucoup plus rapidement que le stockage normal sur le périphérique) 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 toujours de la mémoire. C'est beaucoup, beaucoup plus lent que la RAM et devrait être évité autant que possible. Essentiellement, il compresse simplement le contenu de la mémoire.

Mémoire système réduite

  • Processus Trimmed system_server et SystemUI (plusieurs Mo enregistrés).
  • Précharger les caches dex dans Dalvik (plusieurs Mo sauvegardés).
  • Option JIT-off validée (enregistre jusqu'à 1, 5 Mo par processus).
  • Réduction de la surcharge du cache de polices par processus.
  • Introduction de ArrayMap / ArraySet et utilisation intensive dans la structure pour remplacer l'empreinte plus légère de HashMap / HashSet.

Ce qui se passe principalement ici, c’est simplement de réduire la consommation de mémoire générée par divers processus exécutés sur le périphérique, afin d’ê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 optimiseur de mémoire faible optimisé et dex

Étant donné qu'Android Go concerne principalement les 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 KML (Low Memory Killer) de différentes manières. Premièrement, lorsqu'une grande quantité de RAM est utilisée, le destructeur de mémoire faible passe à un état de «pression critique». En effet, lorsque l'utilisation de la mémoire est importante, le système ralentit en raison de la tentative constante d'accès à un fichier d'échange stocké sur le périphérique. Garder la mémoire vive libre évitera au système d’avoir besoin d’utiliser ce fichier d’échange et empêchera la mémoire vive. Les conflits de mémoire se produisent lorsque la mémoire du périphérique est saturée et doit constamment rechercher le fichier d'échange dans la mémoire de stockage du périphérique, ce qui dégrade considérablement les performances.

Les services et les services WiFi sont configurés sur «profil rapide», ce qui signifie que les méthodes sélectionnées dans ces services sont compilées en mode Ahead (Ahead). (Une méthode fait référence à un ensemble de code qui peut être appelé à tout moment par son nom.) Cela réduit l'utilisation de la RAM et le stockage, car le système Android n'aura pas besoin de recompiler en permanence les services essentiels exécutés sur le périphérique. Pendant ce temps, les fichiers APK partagés sont configurés pour «accélérer», ce qui est conçu pour prolonger la durée de la batterie et augmenter le nombre de cycles du processeur en optimisant les instructions dex pour obtenir de meilleures performances.

En termes d'optimisation dex, Android Go fait pas mal de choses. Pour commencer, après 10 jours, il rétrogradera une application si elle n'est pas utilisée pour économiser de l'espace. Rétrograder ici ne fait pas référence au nombre réel de versions de l’application, mais signifie plutôt que le dalvik_cache de l’application sera effacé. Le cache Dalvik est utilisé pour que le périphérique n'ait pas besoin de recompiler les applications. Il en compile uniquement les parties les plus nécessaires et le met en cache. Le reste est compilé à l'aide du compilateur Just in Time (JIT) lors de l'exécution de l'application. 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 permettre à l'utilisation de la RAM d'une application de dépasser 256 Mo, de sorte qu'une application ne puisse pas utiliser toute la RAM du périphérique.


Est-ce qu'Android Go est l'avenir du développement ROM personnalisé sur des appareils bas de gamme?

À l'heure actuelle, nous ne connaissons pas la réponse à cette question, mais l'avenir semble prometteur pour le développement de ROM personnalisé sur des appareils plus anciens. Obtenir une version plus récente d'Android sur un appareil peut poser d'autres problèmes, 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.