Perché il mio telefono Android è così lento?

Non credo che si possano definire lenti i telefoni Android. Credo solo che si ottiene quello per cui si paga. Se si acquista un fiore all'occhiello, allora le probabilità sono molto basse che ci si ritrovi con un dispositivo lento e ingombrante. Detto questo, alcuni telefoni Android diventano lenti e piuttosto che concentrarsi solo su come stanno diventando lenti, cercherò di elencare tutti i fattori, diretti o indiretti.

Dati spazzatura

Quando un'applicazione viene disinstallata, i suoi file temporanei e altri dati correlati non vengono eliminati con loro. Questo porta ad un accumulo di dati inutili nel tempo che potrebbe rallentare il telefono. Le unità a stato solido rallentano man mano che si riempiono, diventando uno dei motivi principali del rallentamento.

VM

Le applicazioni Android sono scritte in Java, quindi devono essere eseguite su una macchina virtuale per funzionare sull'ecosistema Android (prima era Dalvik, ora si passa ad ART).

I produttori tendono a mettere le loro skin e a modificare alcune delle applicazioni originali che vengono fornite con l'ecosistema Android per, beh, vivacizzare le cose e rendere il loro prodotto diverso da tutti gli altri telefoni Android là fuori. Tendono a caricarlo con applicazioni spazzatura (bloatware) e non è possibile rimuoverle senza rooting del telefono. Queste applicazioni tendono anche ad essere meno ottimizzate delle loro controparti originali. La loro skin tende anche a consumare più RAM di quella che Android vanilla avrebbe consumato. Questo è (o era) particolarmente evidente nei dispositivi Nexus che erano considerevolmente più veloci dei telefoni di altri produttori come Samsung, LG e HTC.

Launcher

A differenza di iOS che non ha un 'launcher' di per sé e solo un app drawer, Android ha una configurazione home ampiamente modificata dove è possibile aggiungere widget, icone, cartelle e in alcuni casi, anche modificare il layout, le transizioni e l'allineamento delle icone nell'app drawer. Il lanciatore è definito come un'applicazione separata nell'ecosistema, questo è un carico costante sulla RAM e sull'elaborazione e ai lanciatori viene di solito data alta priorità in modo da non dover affrontare un ridisegno quando si torna alla homescreen

Servizi

L'ecosistema di applicazioni Android è costruito sul fatto che le applicazioni dovrebbero essere facilmente in grado di interagire con altre applicazioni. Si può fare molto di più premendo il pulsante Condividi su Android che su iOS. Un servizio deve essere avviato quando si fa un tale compito e, naturalmente, tutto ha un prezzo.

Widgets

Come ho detto prima, i launcher hanno un posto costante nella memoria. Con i launcher arrivano i widget che avete messo al loro interno. Per ogni widget che avete messo in memoria, c'è un servizio di accompagnamento che viene eseguito in background per mantenere il widget aggiornato e assicurarsi che i widget rimangano reattivi.

Processi in background

Le applicazioni possono essere eseguite in background indipendentemente dal fatto che le abbiate avviate o chiuse. Le applicazioni possono essere eseguite in background anche se non le avete usate per più di un mese.

Pensate allo scenario in cui avete installato Messenger sul vostro telefono, non siete molto attivi su Facebook e nessuno vi manda messaggi, ma improvvisamente, di punto in bianco, il vostro amico perduto da tempo vi manda un messaggio su Facebook e voi ricevete comunque una notifica sul vostro telefono. Come succede questo? È perché messenger è sempre in esecuzione sul vostro telefono e rimarrà così, a meno che non lo chiudiate forzatamente. Più processi in background ha il vostro telefono, più lento sarà. Puoi facilmente vedere la quantità di processi in background nel tuo telefono andando nella sezione 'In esecuzione' delle tue impostazioni delle applicazioni. Avrei potuto mettere Launchers e Widgets sotto questa sezione, ma ho sentito che hanno bisogno di una menzione speciale.

Priorità

Ci sono varie caratteristiche di un'applicazione a cui deve essere assegnata una priorità specifica, come la priorità dell'applicazione della RAM, delle notifiche e una pletora di altre cose. Tuttavia, a causa della codifica irresponsabile di alcuni sviluppatori, alcune applicazioni assumono una priorità più alta di quella che viene loro richiesta.

Sviluppando la base degli sviluppatori

Android Studio, l'IDE (Integrated Development Environment) con cui le applicazioni Android possono essere create è uno strumento gratuito insieme ad ogni altro strumento che viene fornito per lo sviluppo di un'applicazione Android di base. Si deve solo pagare una tassa una tantum di 25$ per pubblicare un'applicazione nel Play store, rispetto ai 99$ all'anno di Apple. Per molti sviluppatori di applicazioni emergenti (me compreso), sviluppare in Android è il modo per noi di spendere meno dollari pur essendo in grado di raggiungere una base di utenti più ampia. Questo, ovviamente (nella maggior parte dei casi), porta ad una codifica non standard industriale che porta le applicazioni ad usare più memoria del necessario, a non uccidersi correttamente, a creare memoria non necessaria, ecc. Diamine, anche le applicazioni che sono create da grandi aziende non stanno facendo alcuni di questi processi sopra menzionati correttamente.