sabato 23 agosto 2014

Clean Master entra nel mercato dei frigoriferi


Sarò forse ripetitivo, perché è vero, ne avevo già parlato qui, ma quella era più una spiegazione sommaria di quello che fa Clean Master. Oggi invece voglio parlarvi di questa nuova funzione introdotta nelle ultime release dell'applicazione.

Con un post sulla loro pagina Facebook, il team Cheetah Mobile (quello dietro a Clean Master per l'appunto), ha annunciato una feature per raffreddare i device. 
Il mio primo pensiero è stato "wow, chissà a cosa hanno pensato", ma il secondo pensiero non ha tardato ad arrivare: Clean Master è un'applicazione, concedetemi il termine, mainstream, ossia creata e pensata per le persone meno esperte che cercano, goffamente, di tenere il proprio device a posto. 
Sì esatto, le stesse persone che hanno una quindicina di icone nella status bar relative a programmi di pulizia, antivirus, antispam, antimalware, antitestimonidigeova, antizanzare e così via.
Torniamo a noi. A seguito del primo post, oggi hanno pubblicato il secondo (che trovate qui). 
L'esperimento è suggestivo e forse è per questo che fa presa nella mente di chi lo guarda, ma (sì, c'è il classico "ma") ad un'analisi un po' più attenta vengono fuori un paio di fattori non considerati da chi guarda il video e lo acclama.
Intanto descriviamo la procedura:
abbiamo un Samsung Galaxy S5 (visto che sta a mollo per buoni 5 minuti) ed un iPhone che fa da cronometro. Questo Galaxy S5 viene immerso in un bicchiere d'acqua con del ghiaccio secco e resta lì, schermo acceso per tutto il tempo. Il livello dell'acqua si abbassa ed avviene un rabbocco con l'aggiunta di un altro paio di pasticche di ghiaccio secco. Quanto è la temperatura dell'acqua ora?
Ma sul telefono quali operazioni stanno andando in background? È tutto killato e freezato oppure c'è, per spararne una, un loop innescato ad hoc?

Ovviamente non c'è risposta a ciò.

Dall'altra parte abbiamo lo stesso Galaxy S5 e lo stesso iPhone che fa da cronometro. All'inizio del video, l'addetto innesca Clean Master killando i processi in esecuzione e svuotando la RAM e fa partire il countdown. All'inizio del countdown abbiamo la RAM che è al 56% della sua capacità.


Il 56% di RAM occupata dopo un kill massivo di processi significa che non ci sono processi utente attivi, ma solo quelli di sistema, che consistono per lo più in servizi di sincronizzazione ed il mantenimento delle core-app attive (Dialer.apk, Gallery.apk etc etc, le trovate in Impostazioni -> Applicazioni -> In uso).

Abbiamo quindi questa situazione: due telefoni (sì, è uno solo in due momenti diversi), uno senza processi attivi, l'altro non si sa.

Parliamo adesso di scambi termici: dai vaghi ricordi sulla fisica (residui della mia frequentazione all'università di chimica), tra dei corpi a contatto tra loro avviene uno scambio termico da quello più caldo verso quello più freddo. Ma non solo, avviene anche uno scambio termico tra il sistema, in questo caso il cellulare e l'ambiente (se vi va di annoiarvi con fisica termica a quest'ora, prego, trovate qualcosa su Wikipedia).
Quindi significa che l'abbassamento della temperatura avviene tra il telefono e la stanza (nel caso della refrigerazione tramite app) e tra telefono e bicchiere d'acqua (che funge da ambiente).

Quindi sono di particolare interesse le temperature de:
- l'aria nella stanza
- l'acqua del liquido prima e dopo l'immissione del ghiaccio secco

Altrimenti stiamo parlando di fuffa e visto che non ci sono dati in merito, fuffa è.

Va bene, concediamo il beneficio del dubbio e andiamo avanti assumendo che le temperature siano idonee ad essere classificate come refrigeranti "a sufficienza".

Parliamo, ora, delle cause del riscaldamento di un telefono. Cosa riesce a scaldare un telefono fino ai 75°? La prima cosa che mi vien da pensare è un gioco molto pesante o un benchmark o, peggio ancora, un loop di processi. Qualunque sia la risposta tra queste tre opzioni, il corrispondente, in "linguaggio android" (passatemi l'espressione) è "un processo".
Ma abbiamo appena visto che tutti i processi sono stati killati da Clean Master, quindi significa che non c'è alcuna causa che scateni il riscaldamento del device e la temperatura della stanza, qualunque essa sia (purché compresa nel range di temperatura adatta ad una abitazione/ufficio), tempera il calore del dispositivo mediante lo scambio di calore del quale accennavo poco fa. Inoltre se consideriamo che Cheetah Mobile è un'azienda, possiamo supporre con sufficiente sicurezza che possegga degli uffici e dunque possiamo facilmente ipotizzare la presenza di climatizzatori nell'ufficio, è pur sempre estate, no?

Ok, ora pensiamo al telefono nel bicchiere. Si trova in un ambiente molto freddo (il ghiaccio secco, se ghiaccio secco è, dovrebbe refrigerare) dove viene rabboccata acqua (si suppone fredda o, al massimo, a temperatura ambiente), ma la temperatura fatica a scendere, tant'è che viene superata di quasi il doppio dal "concorrente".

I più moderni sistemi di raffreddamento a liquido per PC fanno un ottimo lavoro a tenere le temperature basse, specialmente in fase di overclock della CPU, ma purtroppo non esiste una tecnologia neanche lontanamente paragonabile per telefoni, visto che non esiste nemmeno lo spazio per inserirla. Quindi, fisicamente, cosa fa abbassare la temperatura globale del dispositivo?
La risposta è tanto semplice quanto banale: la mancanza del riscaldamento stesso.

Clean Master è un software ed agisce sul lato software, ma non ha controllo dei parametri del kernel (nel senso che non può modificare gli aspetti relativi alle frequenze di clock della CPU e della GPU), quindi cosa fa? Killa. Esatto, killa i processi e niente di più, ossia quello che ha sempre fatto sin dagli albori.

Ed allora il dubbio mi sorge spontaneo: siamo sicuri che i processi in background durante la prova dentro al bicchiere siano gli stessi rispetto ai processi che ci sono attivi durante la prova fuori dal bicchiere?

Qualcosa non vi torna? Uhm, scaricate Dead Trigger 2 o Asphalt 8, giocateci una buona mezz'oretta e controllate la temperatura tramite uno dei millemila tool che esistono (consiglio AndroTools, il migliore a mio avviso). Killate tutte le app e lasciatelo stare lì, fermo, poggiato su una superficie non morbida (tipo lenzuoli, coperte, materassi etc) per 5 minuti in modo che esso possa dissipare il calore accumulato. Misurate nuovamente la temperatura e guardate la differenza rispetto a prima. Ovviamente la differenza sarà via via maggiore se la temperatura della vostra stanza sarà sempre più bassa.

Perché ho fatto questo discorso? Prima di tutto perché sono annoiato (no scherzo, dai...scherzo?), poi perché non amo vedere che gli utenti vengano "ingannati" con tool miracolosi e magici che risollevano il mondo dalle catastrofi, quando ciò invece non avviene.
Ok, ci sta che il target di Clean Master non sia un programmatore esperto (e fidatevi che loro non li usano), però non lo trovo giusto a mio avviso.

Tra l'altro, considerando che questa "nuova funzione" non fa altro che killare, porterà effetti abbastanza spiacevoli, come il consumo anomalo di batteria e l'usura di quest'ultima, wakelock continui ed instabilità di sistema (i kill non sono dei colpi di genio).

Concludendo, non voglio accanirmi (più di quanto abbia già fatto) con Clean Master, i developer sono sicuro che agiscono in buona fede e che il codice è scritto in maniera eccezionale, volevo condividere con voi i miei pensieri sulla vicenda giusto per alimentare un po' di autocoscienza tutto qui.

Come al solito grazie a te, unico visitatore che cercavi come installare GTA tramite i file .obb e che invece sei capitato in un blog di un tizio che sproloquia su Clean Master. E grazie anche a te tizio che, volenteroso di leggere le mie parole, ti sei addormentato a "Con un post sulla loro pagina Facebook", grazie di cuore ad entrambi e arrivederci alla prossima paranoia inutile della quale a nessuno importa!