CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: gianpassa con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 10 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 3 su 3
Discussione:

Perchè non usare Task Killer con Android

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Androidiano VIP L'avatar di savioonline


    Registrato dal
    Apr 2011
    Località
    Bari
    Messaggi
    1,095

    Ringraziamenti
    496
    Ringraziato 70 volte in 63 Posts
    Predefinito

    Perchè non usare Task Killer con Android

    Succede in continuazione: qualche task sta girando in background e pensiamo che stia consumando le batterie o che stia occupando tutta la memoria.
    La prima reazione è scaricare un app dedicata per terminare questi task.
    Questo comportamento è tipico di chi non conosce Android e si avvicina per la prima volta a questo sistema operativo.
    Questo è il punto: terminando i task che non hanno esaurito il loro compito, è più probabile che facciate del male piuttosto che del bene al sistema.

    Di default, ogni applicazione viene eseguita in un proprio processo Linux. Android inizia il processo quando qualsiasi parte di codice dell’app ha bisogno di essere eseguita, e termina il processo quando non è più necessario e le risorse di sistema sono richieste da altre app.

    Un content provider è attivo solo fin tanto che sta rispondendo a una richiesta da un ContentResolver; un broadcast receiver è attivo fin tanto che sta rispondendo a un broadcast message. Non c’è pertanto bisogno di terminare esplicitamente questi componenti.

    Le attività forniscono l’interfaccia utente; sono in una conversazione a lungo termine con l’utente e possono rimanere attive, anche se idle, finchè la conversazione continua. In modo simile anche i servizi possono restare in esecuzione per un lungo periodo. Quindi Android ha diversi metodi per terminare attività e servizi in modo ben definito:
    Un’attività può essere chiusa richiamando il metodo finish;
    Un servizio può essere chiuso richiamando il suo metodo stopSelf o richiamando Context.stopService.
    Anche i componenti posso essere terminati dal sistema quando non sono più usati oppure quando Android richiede memoria per altri componenti attivi.

    Se l’utente lascia un task per molto tempo, il sistema cancella tutte le attività del task tranne l’attività di root. Quando poi l’utente torna nuovamente al task, questo è come l’utente l’aveva lasciato, tranne che è presente la sola attività iniziale. L’idea alla base di questo comportamento è che, dopo un certo tempo, probabilmente l’utente ha abbandonato ciò che stava facendo in precedenza ed è ritornato al task per iniziare qualcosa di nuovo.


    Ciclo di vita delle attività
    Un’attività ha essenzialmente 3 stati:
    1) Attiva o in esecuzione: è in primo piano (in cima allo stack delle attività per il task corrente);
    2) In Pausa: non è al “centro dell’attenzione” ma è ancora visibile all’utente; è completamente “in funzione” (mantiene tutte le informazioni di stato e del membro e rimane attaccato al window manager) ma può essere killata dal sistema in caso di memoria estremamente limitata;
    3) Stoppata: è completamente oscurata da un’altra attività; mantiene ancora tutte le informazioni di stato e del membro, però non è più visibile all’utente, e quindi la sua finestra è nascosta; sarà sempre killata dal sistema quando la memoria è rischiesta da qualsiasi attività.

    Se un attività è in pausa o stoppata, il sistema può toglierlo dalla memoria sia chiedendogli di finire (chiamando il suo metodo finish) sia killando i suo processo. Quando l’utente richiama nuovamente questa attività, deve essere completamente riavviata e riportata alla condizione precedente.

    Il tempo di vita in primo piano di un’attività ha luogo tra una chiamata al metodo onResume() fino alla corrispondente chiamata del metodo onPause(). La transizione tra resumed e paused è un passaggio frequente per un’applicazione, quindi il codice tra questi due metodi dovrebbe essere leggero.

    Riassumendo:
    Android è progettato per killare automaticamente i task quando c’è bisogno di più memoria;
    Android è progettato per killare automaticamente i task quando ha finito di fare ciò che deve;
    Android è progettato per killare automaticamente i task quando non vengono usati per molto tempo;
    La maggior parte dei servizi che girano in background usano pochissima memoria quando non stanno attivamente eseguendo qualcosa;
    Un content provider fa qualcosa solo se deve dare una notifica; in caso sontrario usa pochissima memoria;
    Killare un processo quando questo non è pronto ha come unico effetto che questo processo si dovrà riavviare da capo completamente quando è richiesto nuovamente;
    Se non si è esperti, killare alcuni processi può avere effetti indesiderati: mancata ricezione di messaggi, allarmi che non si spengono...;
    La magior parte delle app si chiudono premendo il tasto “Indietro”; comunque anche premendo il tasto “Home” Android alla fine terminerà il task una volta che questo sia stato messo in background per un certo tempo

    Digressione:
    La gestione della memoria in Linux e Windows è un po’ differente; in Windows possono avere senso programmi che “puliscono” la memoria, in Linux no: Linux si comporta allo stesso modo se hai 20MB o 300MB liberi! Android inizierà a liberare memoria quando sarà a corto di memoria.

    Altro luogo comune da sfatare è che una RAM piena consumi più batterie: FALSO. Ha più senso dire che un maggiore utilizzo della CPU aumenta i consumi.

    Fonte: Ipmart
    grazie a "aledeago"
    Ultima modifica di savioonline; 16-06-11 alle 09:07

  2. I seguenti 4 Utenti hanno ringraziato savioonline per il post:

    Berto392 (16-06-11),Cronoblack (28-12-11),monster796 (27-12-11),nicksoft (18-06-11)

  3.  
  4. #2
    Androidiano VIP L'avatar di savioonline


    Registrato dal
    Apr 2011
    Località
    Bari
    Messaggi
    1,095

    Ringraziamenti
    496
    Ringraziato 70 volte in 63 Posts
    Predefinito



    ..chissà quante volte è stato detto e ridetto..ma con un 3d presente, basta un link per capirne le giuste motivazioni (per chi ha voglia di leggerle.. )

  5. #3
    Banned


    Registrato dal
    Jan 2011
    Messaggi
    5,568

    Ringraziamenti
    31
    Ringraziato 584 volte in 440 Posts
    Predefinito

    @Skyman ti ho già avvertito nell'altra discussione...basta con i commenti sul modding o la sezione modding..
    se devi esprimere il tuo parere fallo pure, ma su toni che non siano allusivi, visto le passate esperienze..
    questo è l'ultimo avviso..
    Grazie


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy