Cómo Android Go puede ayudar a los teléfonos Android más antiguos a ejecutar Android 8.1 Oreo

click fraud protection

Android Go es la versión simplificada de Android Oreo 8.1 de Google para dispositivos nuevos con poca RAM. Resulta que también puede ayudar al desarrollo de ROM personalizadas en dispositivos más antiguos.

Android Go es la versión simplificada de Android de Google basada en Android 8.1 Oreo, y pretende ser una versión optimizada de Android para dispositivos de gama baja con 1 GB de RAM o menos. Se anunció el pasado mes de mayo en la conferencia de desarrolladores Google I/O, y Finalmente, se revelaron más detalles en diciembre de ese mismo año.. Se decía que estaba hecho para la próxima generación de dispositivos de nivel básico, para garantizar que aquellos en Los países en desarrollo todavía pueden hacer uso de teléfonos inteligentes que funcionen para acceder a Internet y utilizar aplicaciones.

Go tiene una amplia variedad de optimizaciones y mejoras de rendimiento, incluida la ocupación de un 50 por ciento menos de espacio de almacenamiento que una instalación promedio de Android Oreo. Gracias a Android Runtime (ART) y también a las optimizaciones del kernel, un dispositivo que ejecuta Android Go se ejecutará, en promedio, un 15 por ciento más rápido que una instalación normal de Android Oreo en el mismo dispositivo. Estas optimizaciones se realizan a través de una serie de configuraciones de compilación especializadas realizadas por Google, que explicaremos más adelante.

Android Go también se beneficia de aplicaciones especiales "Go", como Los archivos van, YouTube Ir y Google Maps Ir. Se trata de versiones ligeras de aplicaciones creadas por Google, que tienen requisitos reducidos para ejecutarse de manera más eficiente. Esto significa que aquellos con dispositivos Android Go pueden disfrutar de la mayoría de los mismos beneficios que los usuarios habituales de Android Oreo, lo que hace que uso del conjunto de aplicaciones de Google sin tener que gastar mucho dinero en un producto estrella o incluso en un presupuesto ligeramente más caro dispositivo.

Se trata de que Google expanda su mercado. Sin embargo, surge la pregunta de que si Android Go consiste principalmente en una configuración de compilación y un conjunto de aplicaciones optimizadas de Google, ¿pueden los desarrolladores crear sus propias compilaciones de Android Go? En breve, si podemos.

Algunos desarrolladores de LineageOS ya están creando ROM personalizadas optimizadas para Android Go

Ya estamos viendo una cierta aceptación de Android Go por parte de algunos desarrolladores de ROM personalizados, como XDA Recognized Developer. AdrianDC, con su trabajo en LineageOS 15.1 con configuraciones de compilación de Android Go para varios teléfonos Sony antiguos. Los dispositivos en cuestión son el Sony Xperia SP, el Sony Xperia T, el Sony Xperia V y el Sony Xperia TX. Todos estos dispositivos datan de los años 2012 y 2013, pero recibirán LineageOS 15.1 basado en Android 8.1 Oreo usando un sistema Android. Configuración de Go Build, que puede permitir que los dispositivos ejecuten aplicaciones Google 'Go' con fluidez, en caso de que eventualmente se instale un conjunto de Gapps de Android Go. liberado.

Cualquier mantenedor de LOS individual debería poder introducir una compilación configurada de Android Go, siendo un conjunto de configuraciones de compilación y otras optimizaciones. Lo que esto significa es que aquellos que hayan comprado el Sony Xperia T, por ejemplo, un dispositivo con Android 4.0.4 Ice Cream Sandwich en el lanzamiento, podrán utilizar un versión mejor optimizada de Android 8.1 Oreo en el dispositivo, haciendo uso de aplicaciones como YouTube Go y Google Maps Go. No funcionará a niveles emblemáticos de rendimiento, pero debería ser usable—especialmente para un dispositivo que data de 2012.


Cómo Android Go puede ayudar a los teléfonos Android más antiguos a ejecutar Android Oreo

Las configuraciones de compilación en Android son un conjunto de parámetros que pertenecen a varios aspectos del sistema Android que se aplican al compilar la imagen del sistema para actualizarla en un dispositivo. Normalmente, estos cambios cambian el comportamiento del sistema y las principales optimizaciones de Android Go provienen de estas configuraciones de compilación.

Las configuraciones de compilación utilizadas para compilar Android Go.

Hablé con el desarrollador reconocido de XDA josué, quien me ayudó enormemente a comprender los cambios que se estaban produciendo: lo que realmente hace que Android Go funcione. Algunas de estas configuraciones de compilación no se pueden cambiar sin volver a compilarlas y son parte del modelo de la ROM misma. Estas son las banderas completamente en mayúsculas.

Sin embargo, todas estas banderas pertenecen a muchos aspectos diferentes de Android relacionados con el almacenamiento y el uso de la memoria. Éstas incluyen gestión automática del almacenamiento, el asesino de la poca memoria de Android, el dex (dalvik exarchivos ejecutables) optimizador y límites de RAM para ejecutar aplicaciones. Los archivos APK constan de estos archivos DEX, por lo que, en cierto modo, es posible pensar en un archivo APK como simplemente un Archivo ZIP que contiene muchos archivos .dex, que en realidad es lo que ejecuta Android cuando ejecuta un solicitud. En cambio, la gestión automática del almacenamiento estará controlada por la aplicación Files Go, no por el sistema Android.

Android Go Utilities Modo de RAM baja de Android

En Android 4.4 KitKat, Google introdujo una nueva bandera llamada "baja ram", que estaba destinado a admitir dispositivos con 512 MB de RAM. Realiza una serie de optimizaciones en el sistema. Estos cambios son enormemente beneficiosos para los dispositivos con menor RAM.

Gestión de memoria mejorada

  • Configuraciones de kernel validadas para ahorrar memoria: cambiar a ZRAM.
  • Elimine los procesos almacenados en caché si están a punto de no almacenarse en caché y son demasiado grandes.
  • No permita que los servicios grandes vuelvan a colocarse en los Servicios A (para que no puedan provocar la muerte del iniciador).
  • Elimine los procesos (incluso los que normalmente no se pueden eliminar, como el IME actual) que crecen demasiado durante el mantenimiento inactivo.
  • Serializar el lanzamiento de servicios en segundo plano.
  • Uso optimizado de la memoria de dispositivos con poca RAM: niveles de ajuste de memoria insuficiente (OOM) más estrictos, cachés de gráficos más pequeños, etc.

Estos cambios anteriores básicamente garantizan que el sistema se asegure de utilizar RAM comprimida siempre que sea posible, mediante el uso de ZRAM. ZRAM es básicamente un disco RAM (un medio de almacenamiento que usa RAM, mucho más rápido que usar el almacenamiento normal en el dispositivo) como un archivo de intercambio. Se utiliza un archivo de intercambio cuando el uso de RAM es elevado y las aplicaciones aún requieren memoria. Esto es mucho, mucho más lento que la RAM y debe evitarse siempre que sea posible. En esencia, simplemente comprime el contenido de la memoria.

Memoria del sistema reducida

  • Se recortaron los procesos system_server y SystemUI (ahorró varios MB).
  • Precargue cachés dex en Dalvik (ahorró varios MB).
  • Opción JIT-off validada (ahorra hasta 1,5 MB por proceso).
  • Reducción de la sobrecarga de caché de fuentes por proceso.
  • Se introdujo ArrayMap/ArraySet y se usó ampliamente en el marco como un reemplazo más liviano para HashMap/HashSet.

Lo que está sucediendo principalmente aquí es simplemente una reducción del consumo de memoria de varios procesos que se ejecutan en el dispositivo, para ser lo más conservadores posible. Los servicios esenciales del sistema se han eliminado para utilizar la menor cantidad de memoria posible en segundo plano, ya que cada megabyte de RAM es importante.

Android Go utiliza un Killer de baja memoria modificado y optimizaciones dex

Dado que Android Go es principalmente para dispositivos con 1 GB de RAM o menos, será necesario una gestión de memoria más agresiva. Android Go modifica Low Memory Killer (LMK) de diferentes maneras. Primero, cuando se utiliza una gran cantidad de RAM, el asesino de poca memoria pasa a un "presión crítica" estado. Esto se debe a que cuando el uso de la memoria es alto, el sistema se vuelve lento debido a que intenta constantemente acceder a un archivo de intercambio en el almacenamiento del dispositivo. Mantener la RAM libre evitará que el sistema necesite usar este archivo de intercambio y evitará que la memoria se rompa. La destrucción de la memoria ocurre cuando la memoria del dispositivo está llena y constantemente tiene que paginar el archivo de intercambio en el almacenamiento del dispositivo, lo que degrada enormemente el rendimiento.

Los servicios y servicios WiFi están configurados en "perfil de velocidad", lo que significa que los métodos seleccionados en estos servicios se compilan con anticipación (AOT). (Un método se refiere a un conjunto de códigos al que se puede llamar en cualquier momento por su nombre). Esto reduce el uso de RAM y almacenamiento, ya que el sistema Android no necesitará recompilar continuamente los servicios esenciales que se ejecutan en el dispositivo. Mientras tanto, los APK compartidos están configurados para "acelerar", lo que está diseñado para brindar mayor duración de la batería y ciclos de CPU adicionales al optimizar las instrucciones dex para obtener un mejor rendimiento.

En términos de optimizaciones dex, Android Go hace bastante. Para empezar, después de 10 días será degradar una aplicación si no se utiliza para ahorrar espacio. La degradación aquí no se refiere a la disminución del número de versión real de la aplicación, sino que significa que se borrará el dalvik_cache de la aplicación. El caché Dalvik se utiliza para que el dispositivo no necesite volver a compilar aplicaciones; en cambio, compila solo las partes más necesarias y las almacena en caché. El resto se compila utilizando el compilador Just in Time (JIT) cuando se ejecuta la aplicación. Sin embargo, si la aplicación no se utiliza durante 10 días, las partes esenciales de la aplicación que estén precompiladas también se eliminarán. Esto se hace para liberar la mayor cantidad de espacio posible. Otro cambio simple es no permitir que el uso de RAM de una aplicación exceda los 256 MB para que una aplicación no pueda usar toda la RAM del dispositivo.


¿Es Android Go el futuro del desarrollo de ROM personalizadas en dispositivos de gama baja?

Actualmente, no sabemos la respuesta a esto, pero el futuro parece prometedor para el desarrollo de ROM personalizadas en dispositivos más antiguos. Puede haber otros problemas para ejecutar una versión más nueva de Android en un dispositivo, pero en teoría, una actualización a un Android Go más optimizado basado en Android Oreo. debería hacer que un dispositivo antiguo y de gama baja funcione mejor.