Home News Android Aggiornamenti Task Killers: ne hai davvero bisogno?

Task Killers: ne hai davvero bisogno?

17

Chiunque usi Andorid avrà notato una quantità anomala di programmi aperti in background, anche se i suddetti programmi sono stati chiusi o addirittura non sono stati mai lanciati.

A questo punto un utente normale, abituato magari ad usare Windows, noto divoratore di ram, può pensare che questi programmi stiano rallentando il telefono, occupando preziosa ram, e consumando batteria, quindi decide di installare un bel Task Killer…Non c’è cosa più sbagliata!!

Per un lungo periodo ci sono state molte discussioni sull’effettiva utilità dei vari Task Killers poi, finalmente, Google’s Android developers blog si è deciso a fare chiarezza (articolo completo):

  • Un comune malinteso a proposito del multitasking di Android è la differenza fra processi e applicazioni. In android questi non sono necessariamente due entità accoppiate:le applicazioni possono sembrare aperte senza un vero processo in esecuzione; più applicazioni possono condividere processi, o una applicazione può usare più processi a seconda delle esigenze; il processo di una applicazione può essere tenuto aperto da Android anche se l’applicazione non è attiva.
  • Il fatto di vedere un processo di una applicazione “aperto” non significa che l’applicazione sia aperta o stia facendo qualcosa. Potrebbe semplicemente essere li perchè Android ne ha bisogno, ed ha deciso che è meglio tenerla pronta se dovesse servire di nuovo. Allo stesso modo potresti lasciare aperta una applicazione per poi tornare ad usarla e scoprire che è stata chiusa perchè Android ha deciso di liberare risorse per altre cose.
  • La chiave per capire come gestisce le applicazioni Android è che i processi non si chiudono completamente. Quando l’utente lascia un’applicazione, il suo processo viene tenuto aperto in background, permettendogli di continuare a lavorare (per esempio aprire una pagina web) e torna immediatamente in primo piano se l’utente ne ha bisogno. Se il dispositivo non rimane mai senza memoria, Android terrà tutti questi processi aperti, lasciandoli veramente “aperti” tutto il tempo.
  • Certo, c’è un limite di quantità di memoria, e raggiunto questo, Android deve decidere quando chiudere un processo che non serve. Questo ci porta ad Android’s process lifecycle, la regola che decide quanto sia importante ogni processo e quindi il prossimo che deve essere eliminato. La regola è basata sia su quanto il processo è importante per la user’s current experience, sia da quanto il processo è inutilizzato dall’utente.
  • Una volta che Android determina che ha bisogno di rimuovere un processo, lo fa brutalmente, semplicemente killa il processo. Il kernel può quindi recuperare immediatamente tutte le risorse necessarie.
  • Se l’utente torna ad un’applicazione che è stata killata, Android ha bisogno di un modo per rilancialra nello stesso stato in cui è stata lasciata, per mantenere l’esperienza “tutte le applicazioni sono sempre aperte”.Per fare questo si deve tenere traccia di tutte le parti dell’applicazione che l’utente conosce (le Attività), e farle ripartire con l’informazione con cui è stata lasciata. Questo stato è generato ogni qualvolta l’utente lascia l’applicazione e non quando viene killato, in questo modo il kernel può killare liberamente.
  • In alcuni modi, il manager di processi di Android, può essere visto come una sorta di spazio di swap: i processi rappresentano una certa quantità di memoria in uso; quando la memoria è poca, alcuni processi possono essere killati (swapped out); quando si ha di nuovo bisogno di questi processi, possono essere fatti ripartire nel loro ultimo stato (swapped in)

A questo punto mi sembra abbastanza chiaro che i Task Killers non solo sono inutili, ma addirittura dannosi per Andorid! So benissimo, vista la quantità di task killer presente nel market, che molti utenti lo usano con regolarità…Mi piacerebbe sapere quanti…
[poll id=”2″]

Comments are closed.