9Sep
Windows consente alle app desktop di rimanere attive indipendentemente dal fatto che siano visibili o meno, mentre iOS di Apple consente alle app di eseguire solo alcune attività limitate in background. Android si trova da qualche parte nel mezzo: le app in primo piano hanno la priorità, ma le app hanno molta più libertà di essere eseguite in background rispetto a iOS.
Daremo un'occhiata esattamente a come Android gestisce le app e i processi in esecuzione sul tuo telefono o tablet, demistificando ciò che accade in background.
La gerarchia del ciclo di vita del processo
Un processo su Android può essere in uno dei cinque diversi stati in un dato momento, dal più importante al meno importante:
- 1. Processo in primo piano : l'app che si sta utilizzando è considerata il processo in primo piano. Altri processi possono anche essere considerati processi in primo piano, ad esempio se interagiscono con il processo attualmente in primo piano. Ci sono solo alcuni processi in primo piano in un dato momento.
- 2. Processo visibile : un processo visibile non è in primo piano, ma influenza ancora ciò che viene visualizzato sullo schermo. Ad esempio, il processo in primo piano potrebbe essere una finestra di dialogo che ti consente di vedere un'app dietro di essa: l'app visibile sullo sfondo sarebbe un processo visibile.
- 3. Processo di servizio : un processo di servizio non è legato a nessuna app visibile sullo schermo. Tuttavia, sta facendo qualcosa in background, come la riproduzione di musica o il download di dati in background. Ad esempio, se inizi a riprodurre musica e passi a un'altra app, la riproduzione musicale in background viene gestita da un processo di servizio.
- 4. Processo in background : i processi in background non sono attualmente visibili all'utente. Non hanno alcun impatto sull'esperienza di utilizzo del telefono. In qualsiasi momento, molti processi in background sono attualmente in esecuzione. Puoi pensare a questi processi in background come app "in pausa".Sono conservati in memoria in modo da poter riprendere rapidamente a utilizzarli quando si torna a loro, ma non utilizzano tempo prezioso della CPU o altre risorse non di memoria.
- 5. Processo vuoto : un processo vuoto non contiene più dati di app. Può essere tenuto in giro per scopi di memorizzazione nella cache per accelerare l'avvio delle app in seguito, oppure il sistema potrebbe ucciderlo se necessario.
Ad esempio, supponiamo di accendere il telefono e aprire un'app musicale. Mentre lo usi, l'app musicale sarà un processo in primo piano. Quando inizi a riprodurre musica e lasci l'app musicale, la musica continuerà a essere eseguita come processo di servizio.
Diamo un'occhiata ad Angry Birds come un altro esempio. Angry Birds sarebbe un processo in primo piano mentre lo suonavi. Quando lasci Angry Birds e accedi all'app Gmail per visualizzare la tua email, Angry Birds diventa un processo in background( perché non deve fare nulla in background), mentre Gmail diventa il processo in primo piano. Quando torni ad Angry Birds, questo diventerà il processo in primo piano e il gioco riprenderà rapidamente. Angry Birds non stava usando le risorse in background, a parte qualche RAM, ma riprende rapidamente perché è rimasto nella cache e pronto per riprendere.
Android gestisce automaticamente i processi
Android fa un buon lavoro di gestione automatica di questi processi, motivo per cui non è necessario un task killer su Android.
Quando Android ha bisogno di più risorse di sistema, inizierà prima a uccidere i processi meno importanti. Android inizierà a uccidere i processi vuoti e in background per liberare memoria se stai per esaurire. Se hai bisogno di più memoria, ad esempio, se stai giocando a un gioco particolarmente impegnativo su un dispositivo senza molta RAM, Android inizierà quindi a interrompere i processi di servizio, quindi la musica in streaming e i download di file potrebbero interrompersi.
Nella maggior parte dei casi, Android fa tutto questo senza che tu debba preoccuparti di ciò.Android utilizza in modo intelligente la RAM del tuo dispositivo per la memorizzazione nella cache di app e altri dati, perché non ha senso lasciare la RAM vuota.
Ovviamente, Android offre alle app tanta flessibilità che hanno spazio per comportarsi male. Ad esempio, un'app male codificata potrebbe avviare un processo di servizio che rimane sempre in esecuzione in background, consumando tutto il tempo della CPU e riducendo drasticamente la durata della batteria.
Una cosa interessante che noterai nelle app antivirus come Avast!per Android è che l'app antivirus utilizza un'icona di notifica.se si tenta di disattivare l'icona di notifica, Avast!raccomanderà contro di esso. Avendo un'icona di notifica visibile, Avast!si trasforma in un'app di priorità più alta, impedendo ad Android di considerarlo come un'app di sfondo e di ucciderlo. Le app Android
possono iniziare in risposta agli eventi Le app Android
possono anche essere avviate in risposta agli eventi. Ad esempio, uno sviluppatore potrebbe programmare la propria app per l'esecuzione automatica all'avvio ed eseguire un servizio in background. Le app possono iniziare in risposta a una serie di altri eventi, ad esempio quando si scatta una foto, quando la connessione dati cambia e così via. Ciò consente alle app di eseguire azioni in risposta agli eventi senza essere costantemente in esecuzione in background.
Gestione dei processi
Non è necessario gestire manualmente i processi, ma ci sono alcuni modi per farlo, se lo si desidera.È possibile utilizzare il menu multitasking su Android 4.0 e versioni successive per eseguire alcune operazioni di gestione dei processi di base. Per accedervi, tocca il pulsante multitasking dedicato sui dispositivi Nexus. Su altri dispositivi Android, potrebbe essere necessario toccare due volte o premere a lungo il pulsante Home.
Le app visualizzate nel menu sono probabilmente in stato "processo in background".Puoi ucciderli scorrendo un'app verso sinistra o verso destra, che la rimuoverà dalla memoria del tuo dispositivo. Questo non dovrebbe essere necessario, ma può aiutarti quando vuoi uccidere rapidamente un'app, forse è un comportamento anomalo.
Puoi anche accedere alla schermata Impostazioni, toccare App, toccare un'app e utilizzare il pulsante Arresta forza per uccidere un'applicazione che funziona in modo anomalo.
Android è basato su Linux e ogni app su Android è assegnata a un diverso ID utente Linux - o account utente. Questo isola le app l'una dall'altra. Se esegui il root del dispositivo, le app possono sfuggire ai loro sandbox utente ed eseguire i privilegi di root. Immagine di
: JD Hancock su Flickr