Android e il mito dei task killer

Oggi mi sono appena ricordato di avere ancora un blog dove poter scrivere, condividere idee, esperienze e informazioni.
La mia esperienza come sviluppatore Android è aumentata notevolmente e devo ammettere che il sistema operativo di Google dedicato ai dispositivi mobili (mentre scrivo queste righe alla versione 4.2.x) ha raggiunto livelli accettabili rispetto alla concorrenza, e soprattutto rispetto alle versioni precedenti dello stesso.
Aspettatevi quindi una valanga di articoli e consigli per trick, approfondimenti, delucidazioni e casi di studio in merito al sistema e su come impostare e sviluppare adeguatamente applicazioni Android.

Ora basta con le sviolinate e concentriamoci sull’articolo di oggi che vuole prefiggersi altro. Infatti la motivazione della stesura di queste righe riguarda tutte quelle applicazioni che circolano da tempo e che istigano gli utenti a quello che io chiamo un vero e proprio “appicidio”, ovvero la pratica di killare (uccidere) applicazioni che Android mostra dalla lista dei processi. Sto pensando davvero di sviluppare la InvestigationApp per arrestarle tutte 😀 :D.

Scherzi a parte la premessa sulla gestione della memoria di Android è doverosa:
come tutti sappiamo i dispositivi che montano Android sono alimentati da batteria, pertanto tale sistema operativo è stato progettato per un consumo minimo dell’energia, al contrario dei sistemi operativi desktop, i quali assumono che il dispositivo sia connesso perennemente all’impianto elettrico domestico o industriale che sia, Android fa del suo meglio per gestire la memoria RAM in modo da mantenere i consumi al minimo.

Quando una Android app non è più in uso il sistema la mette in “suspend”, cambia quindi lo stato dell’applicazione, questa informazione aiuta il gestore della memoria a capire cosa deve fare quando si trova in condizioni critiche. Di fatti il processo relativo ad una app sospesa è tecnicamente aperto, ma sostanzialmente non sta consumando risorse poiché l’utente non sta utilizzando quell’applicazione. Tecnicamente infatti l’applicazione è sospesa in un limbo finché l’utente non ne richiederà di nuovo l’utilizzo.
Oltre che ottimizzare la gestione in termini di spazio e di consumo della memoria, tale approccio apporta benefici in termini di tempi di risposta ai comandi impartiti dall’utente, poiché le app non hanno bisogno di essere riaperte ogni volta che l’utente le richiede. Il picco di consumo si ottiene solo la prima volta che l’utente richiede l’utilizzo di un’applicazione.

Inoltre Android gestisce le app in memoria automaticamente: ad esempio se la memoria disponibile dovesse essere troppo bassa, il sistema operativo di sua iniziativa comincerà a “killare” le applicazioni che l’utente non usa da più tempo, o meglio che sono rimaste inattive!!

Tale fase di gestione della memoria è invisibile all’utente e questo cari lettori è l’unico motivo valido per cui mi spiego possano esistere le forzose killapp :).

Come molti stenteranno a credere, un uso massiccio delle app task killer può far degenerare il sistema, infatti molti utenti presi dalle buone intenzioni di voler liberare la memoria e killare continuamente delle app in realtà non sanno che stanno dicendo al sistema di mettere quella app nello stato “mai aperta” costringendo il sistema operativo a gestire ogni volta la fase di creazione della app in memoria (come se fosse stata aperta per la prima volta) scatenando un consumo di risorse in termini di I/O, CPU e batteria ingente.

Insomma se quella app vi serve state pur certi che non vale la pena killarla lasciate fare ad Android ci penserà lui.

Nello stesso discorso rientrano anche le app che fanno uso dei servizi in background, ma per questa tipologia di applicazione c’è da fare sicuramente una serie di precisazioni, al più presto fornirò un articolo in merito.

A presto

NonSoLo1x