Un'app Android su quattro contiene bug che danneggiano la batteria

Secondo gli ingegneri informatici della Purdue University, più di un’app Android su quattro include una nuova generazione di “batteri che non consentono il sonno” che consumano la batteria.

Un'app Android su quattro contiene bug che danneggiano la batteria

Secondo i ricercatori, 42 delle 187 applicazioni Android testate includevano errori nel modo in cui gestivano la modalità di sospensione, il che significa che causavano un consumo eccessivo della durata della batteria.

“Questi batteri energetici uccidono silenziosamente le batterie”, ha affermato Charlie Hu, professore di ingegneria elettrica e informatica della Purdue University. "La batteria di un telefono completamente carica può essere scaricata in sole cinque ore."

La chiave del problema è che gli smartphone cercano di entrare in modalità sospensione per preservare la durata della batteria, ma alcune app devono eseguire operazioni in background mentre il telefono è inattivo.

Sfortunatamente, i programmatori sono solo umani. Commettono errori quando utilizzano le API, il che porta a bug del software che gestiscono in modo errato il controllo energetico

"Quando non ci sono interazioni attive con l'utente come i tocchi dello schermo, ogni componente, incluso il processore centrale, rimane spento a meno che un'app ordina al sistema operativo di mantenerlo attivo", ha affermato Hu. “Ad esempio, un mailer potrebbe dover aggiornare automaticamente la posta elettronica controllando con il telecomando server."

Per consentire agli sviluppatori di smartphone di assicurarsi che le loro app funzionino, i produttori forniscono API per istruire il telefono a rimanere attivo durante questi processi, ma gli sviluppatori hanno difficoltà a ottenere i loro "wakelock" corretti, il che significa che il telefono deve lavorare troppo.

"Gli sviluppatori di app devono destreggiarsi esplicitamente tra diverse API di controllo energetico esportate dai sistemi operativi degli smartphone", ha affermato Hu. “Sfortunatamente, i programmatori sono solo umani. Commettono errori quando utilizzano queste API, il che porta a bug del software che gestiscono in modo errato il controllo dell’alimentazione, impedendo al telefono di attivare la modalità di sospensione”.

I ricercatori hanno affermato di essere stati in grado di misurare la portata del problema per la prima volta dopo aver modificato un compilatore per individuare i bug no-sleep.

"Lo strumento analizza il codice binario e rileva automaticamente e accuratamente la presenza dei virus no-sleep", hanno spiegato gli scienziati. ha detto, aggiungendo di aver rilevato accuratamente tutti i 12 casi precedentemente noti di insetti energetici che non dormono e di aver trovato 30 nuovi insetti in app.