In che modo Android Go può aiutare i telefoni Android più vecchi a eseguire Android 8.1 Oreo

Android Go è la versione ridotta di Android Oreo 8.1 di Google per i nuovi dispositivi con poca RAM. A quanto pare, potrebbe aiutare lo sviluppo di ROM personalizzate anche su dispositivi più vecchi.

Android Go è la versione ridotta di Android di Google basata su Android 8.1 Oreo e mira ad essere una versione ottimizzata di Android per dispositivi di fascia bassa con 1 GB di RAM o inferiore. È stato annunciato lo scorso maggio alla conferenza Google I/O Developer e alla fine ulteriori dettagli furono rivelati nel dicembre dello stesso anno. Si diceva che fosse realizzato per la prossima generazione di dispositivi entry-level, per garantire che quelli in i paesi in via di sviluppo possono ancora utilizzare smartphone funzionanti per accedere a Internet e utilizzare le app.

Go offre un'ampia varietà di ottimizzazioni e miglioramenti delle prestazioni, incluso l'occupazione del 50% in meno di spazio di archiviazione rispetto a un'installazione media di Android Oreo. Grazie ad Android Runtime (ART) e alle ottimizzazioni del kernel, un dispositivo con Android Go funzionerà, in media, il 15% più velocemente rispetto a una normale installazione di Android Oreo sullo stesso dispositivo. Queste ottimizzazioni vengono effettuate attraverso una serie di configurazioni di build specializzate realizzate da Google, che spiegheremo più avanti.

Android Go beneficia anche di speciali applicazioni "Go", come I file vanno, YouTube Vai E Google Maps Vai. Si tratta di versioni leggere delle applicazioni realizzate da Google, che hanno requisiti ridotti per funzionare in modo più efficiente. Ciò significa che quelli con dispositivi Android Go possono godere della maggior parte degli stessi vantaggi che possono ottenere anche gli utenti normali di Android Oreo utilizzo della suite di applicazioni di Google senza dover spendere molti soldi per un flagship o anche un budget leggermente più costoso dispositivo.

L'obiettivo è che Google espanda il proprio mercato. Tuttavia si pone la domanda: se Android Go consiste principalmente in una configurazione di build e una suite di app Google ottimizzate, gli sviluppatori possono creare le proprie build di Android Go? In breve, sì possiamo.

Alcuni sviluppatori LineageOS stanno già creando ROM personalizzate ottimizzate per Android Go

Stiamo già assistendo a una certa adozione di Android Go da parte di alcuni sviluppatori di ROM personalizzate, come XDA Recognized Developer Adrian DC, con il suo lavoro su LineageOS 15.1 con Android Go per creare configurazioni diversi vecchi telefoni Sony. I dispositivi in ​​questione sono Sony Xperia SP, Sony Xperia T, Sony Xperia V e Sony Xperia TX. Questi dispositivi risalgono tutti agli anni 2012 e 2013, ma riceveranno LineageOS 15.1 basato su Android 8.1 Oreo utilizzando un Android Go build configurazione, che potrebbe consentire ai dispositivi di eseguire le app Google "Go" in modo fluido, nel caso in cui un set di Gapp Android Go fosse eventualmente disponibile rilasciato.

Qualsiasi singolo manutentore della LOS dovrebbe essere in grado di introdurre una build configurata per Android Go, ovvero un insieme di configurazioni di build e altre ottimizzazioni. Ciò significa che coloro che hanno acquistato, ad esempio, il Sony Xperia T, un dispositivo con Android 4.0.4 Ice Cream Sandwich al momento del lancio, potranno utilizzare un build meglio ottimizzata di Android 8.1 Oreo sul dispositivo, facendo uso di applicazioni come YouTube Go e Google Maps Go. Non funzionerà ai livelli di punta delle prestazioni, ma dovrebbe essere utilizzabile- soprattutto per un dispositivo che risale al 2012.


In che modo Android Go può aiutare i telefoni Android più vecchi a eseguire Android Oreo

Le configurazioni di creazione su Android sono un insieme di parametri che riguardano vari aspetti del sistema Android che vengono applicati durante la compilazione dell'immagine di sistema per il flashing su un dispositivo. In genere questi modificano il comportamento del sistema e da qui derivano le principali ottimizzazioni di Android Go queste configurazioni di build.

Le configurazioni di build utilizzate per compilare Android Go.

Ho parlato con lo sviluppatore riconosciuto XDA gioioso, che mi ha aiutato moltissimo a comprendere i cambiamenti in atto e ciò che fa davvero funzionare Android Go. Alcune di queste configurazioni di build non possono essere modificate senza ricompilare e fanno parte del progetto della ROM stessa. Queste sono le bandiere interamente in maiuscolo.

Tutti questi flag, tuttavia, riguardano molti aspetti diversi di Android relativi all'archiviazione e all'utilizzo della memoria. Questi includono gestione automatica dello stoccaggio, il killer della memoria insufficiente di Android, il dex (Dalvik exfile eseguibili) ottimizzatore e limiti di RAM per l'esecuzione delle app. I file APK sono costituiti da questi file DEX, quindi in un certo senso è possibile pensare a un file APK semplicemente come a File ZIP contenente molti file .dex, che in realtà è ciò che Android esegue quando esegue un file applicazione. La gestione automatica dello spazio di archiviazione sarà invece controllata dall'applicazione Files Go e non dal sistema Android.

Utilità Android Go Modalità RAM ridotta di Android

In Android 4.4 KitKat, Google ha introdotto un nuovo flag chiamato "ariete bassa", che mirava a supportare dispositivi con 512 MB di RAM. Apporta una serie di ottimizzazioni al sistema. Questi cambiamenti sono estremamente vantaggiosi per i dispositivi con meno RAM.

Gestione della memoria migliorata

  • Configurazioni del kernel convalidate per il risparmio di memoria: passa a ZRAM.
  • Uccidi i processi memorizzati nella cache se stanno per essere rimossi dalla cache e sono troppo grandi.
  • Non consentire ai servizi di grandi dimensioni di reinserirsi nei servizi A (in modo che non possano causare l'interruzione del programma di avvio).
  • Elimina i processi (anche quelli normalmente non interrompibili come l'IME corrente) che diventano troppo grandi durante la manutenzione inattiva.
  • Serializzare il lancio dei servizi in background.
  • Utilizzo ottimizzato della memoria dei dispositivi con poca RAM: livelli di regolazione della memoria esaurita (OOM) più rigorosi, cache grafiche più piccole, ecc.

Queste modifiche di cui sopra assicurano sostanzialmente che il sistema utilizzi la RAM compressa ove possibile, attraverso l'uso di ZRAM. ZRAM è fondamentalmente un disco RAM (un supporto di memorizzazione che utilizza la RAM, molto più veloce rispetto all'utilizzo della normale memoria sul dispositivo) come file di scambio. Un file di scambio viene utilizzato quando l'utilizzo della RAM è elevato e le applicazioni richiedono ancora memoria. Questo è molto, molto più lento della RAM e dovrebbe essere evitato ove possibile. In sostanza, comprime semplicemente il contenuto della memoria.

Memoria di sistema ridotta

  • Processi system_server e SystemUI tagliati (salvati diversi MB).
  • Precarica le cache dex in Dalvik (salvati diversi MB).
  • Opzione JIT-off convalidata (risparmia fino a 1,5 MB per processo).
  • Ridotto il sovraccarico della cache dei caratteri per processo.
  • Introdotto ArrayMap/ArraySet e ampiamente utilizzato nel framework come sostituto più leggero per HashMap/HashSet.

Ciò che accade principalmente qui è semplicemente la riduzione del consumo di memoria da parte dei vari processi in esecuzione sul dispositivo, per essere il più conservativi possibile. I servizi di sistema essenziali sono stati eliminati per utilizzare la minor quantità di memoria possibile in background, poiché ogni megabyte di RAM è importante.

Android Go utilizza un killer di memoria ridotta modificato e ottimizzazioni dex

Dato che Android Go è principalmente per dispositivi con 1 GB di RAM o meno, sarà necessaria una gestione della memoria più aggressiva. Android Go modifica il Low Memory Killer (LMK) in diversi modi. Innanzitutto, quando viene esaurita una quantità elevata di RAM, il killer della memoria insufficiente passa a un "pressione critica" stato. Questo perché quando l'utilizzo della memoria è elevato, il sistema diventerà lento a causa dei tentativi costanti di accedere a un file di scambio nella memoria del dispositivo. Mantenere la RAM libera eviterà che il sistema debba utilizzare questo file di scambio e impedirà il sovraccarico della memoria. Il memory thrashing si verifica quando la memoria del dispositivo è piena e deve costantemente paginare il file di scambio sulla memoria del dispositivo, riducendo pesantemente le prestazioni.

I servizi e i servizi WiFi sono impostati su "profilo di velocità," il che significa che i metodi selezionati in questi servizi sono compilati Ahead-of-Time (AOT). (Un metodo si riferisce a un insieme di codice che può essere chiamato in qualsiasi momento per nome.) Ciò riduce l'utilizzo della RAM e storage, poiché il sistema Android non avrà bisogno di ricompilare continuamente i servizi essenziali eseguiti su dispositivo. Nel frattempo, gli APK condivisi sono impostati su "accelerato", progettato per garantire una maggiore durata della batteria e cicli aggiuntivi della CPU ottimizzando le istruzioni dex per ottenere prestazioni migliori.

In termini di ottimizzazioni dex, Android Go fa parecchio. Per cominciare, dopo 10 giorni lo farà eseguire il downgrade di un'applicazione se non viene utilizzato per risparmiare spazio. Il downgrade in questo caso non si riferisce alla diminuzione del numero di versione effettivo dell'applicazione, ma significa piuttosto che la dalvik_cache dell'app verrà cancellata. La cache Dalvik viene utilizzata in modo che il dispositivo non abbia bisogno di ricompilare le app, ma compila solo le parti più necessarie e le memorizza nella cache. Il resto viene compilato utilizzando il compilatore Just in Time (JIT) quando viene eseguita l'applicazione. Se però l'applicazione non viene utilizzata per 10 giorni, verranno rimosse anche le parti essenziali dell'applicazione precompilate. Questo viene fatto per liberare quanto più spazio possibile. Un'altra semplice modifica consiste nel non consentire all'utilizzo della RAM di un'app di superare i 256 MB in modo che un'app non possa utilizzare tutta la RAM del dispositivo.


Android Go è il futuro dello sviluppo di ROM personalizzate su dispositivi di fascia bassa?

Al momento non conosciamo la risposta, ma il futuro sembra luminoso per lo sviluppo di ROM personalizzate su dispositivi più vecchi. Potrebbero esserci altri problemi nel far funzionare una versione più recente di Android su un dispositivo, ma in teoria, un aggiornamento a un Android Go più ottimizzato basato su Android Oreo Dovrebbe far funzionare meglio un dispositivo più vecchio e di fascia bassa.