Alcune applicazioni disponibili su smartphone o tablet Android continuano ad essere eseguite in background anche quando l’utente torna alla schermata principale del sistema operativo oppure passa a un altro software. In alcuni casi questo è necessario, ad esempio per utility come Skype sempre pronte a ricevere messaggi o telefonate. In altre situazioni la ragione di questo comportamento non è altrettanto chiara, ma il risultato non cambia: a pagarne le conseguenze è l’autonomia del dispositivo.
Nelle precedenti versioni della piattaforma Google obbligava gli sviluppatori a mostrare una scheda nell’area notifiche, in modo che gli utenti fossero a conoscenza dell’esecuzione in secondo piano delle app. Alcuni di loro hanno però trovato una sorta di workaround, un escamotage per non chiudere le applicazioni pur non avvisando l’utente, abusando di una specifica API.
Abbiamo scoperto che alcuni sviluppatori hanno iniziato ad abusare dell’API Service.startForeground() API, che consente di rendere le app “unkillable” senza renderlo noto all’utente. Lo hanno fatto creando una notifica volutamente progettata in modo che questa non compaia sullo schermo, nonostante l’activity manager non rilevi alcuna anomalia consentendo al codice l’esecuzione in secondo piano.
Durante la preparazione di Android 4.3 Jelly Bean, gli ingegneri di Mountain View hanno preso in considerazione l’ipotesi di forzarne la chiusura, ma il numero dei software che sfruttano questo particolare metodo è talmente elevato da aver spinto bigG a optare per una soluzione alternativa.
All’inizio abbiamo pensato di poter risolvere il problema semplicemente identificando queste app e forzandone la chiusura. Purtroppo, sono davvero troppe e un approccio di questo genere avrebbe creato problemi. Al suo posto, nella release 4.3 il sistema mostra una propria notifica quando rileva un comportamento simile, mettendo così l’utente a conoscenza di cosa accade.
In altre parole, in Android 4.3 JB le app potranno continuare ad essere eseguite in background, ma gli sviluppatori saranno incentivati a segnalarlo tramite una notifica. In caso contrario ci penserà direttamente il sistema operativo, mostrando un messaggio standard non personalizzato od ottimizzato in base alle funzionalità del software, le cosiddette notifiche persistenti.