Benché Android 10 sia stato rilasciato ormai da diverso tempo, ancora oggi scopriamo la presenza di particolari feature pensate per aiutare l’utente nella vita di tutti i giorni. Nello specifico, Android 10 permette agli sviluppatori di sfruttare il flag “hasFragileUserData” all’interno di un’applicazione. Malgrado il nome sia poco parlante, fa riferimento alla possibilità di salvare il contenuto di un’applicazione prima di disinstallarla.

Quante volte vi sarà capitato di cancellare un’applicazione e perdere il contenuto dei dati al suo interno? Prendiamo in considerazione WhatsApp, l’app di instant messaging più utilizzata al mondo. Cancellarla significa perdere per sempre foto, video e messaggi scambiati. Fortunatamente, come si può vedere dallo screenshot qui sotto, prima di procedere alla disinstallazione, un nuovo messaggio di avviso chiede all’utente se vuole salvare il contenuto dell’applicazione – purtroppo sono ancora molte poche le app che utilizzano il nuovo flag.

android 10 dati salvati applicazioni cancellate asynctask api deprecate

Per capire bene il funzionamento della nuova feature, è interessante spiegare come Android 10 salva i dati all’interno dello storage (interno ed esterno). Le applicazioni possono utilizzare tre directory:

  • /data/data, è una directory interna app-specifica. L’utente non ha i privilegi ad accedervi (tranne se si esegue il root del proprio smartphone Android), non è accessibile da nessun’altra app e nemmeno se si collega lo smartphone al PC;
  • /data/media/{user}/Android/data, è una directory esterna app-specifica. L’utente può accedervi ed è accessibile anche ad altre app con i corretti permessi;
  • Qualsiasi altra directory esterna.

Prima della novità contenuta in Android 10, quando l’utente procedeva a cancellare un’applicazione, l’OS si occupava di eliminare anche le cartelle /data/data e /data/media/{user}/Android/data. L’unica cartella che non veniva toccata era quella direttamente creata dall’utente.

Quando uno sviluppatore utilizzare il nuovo flag, Android 10 si occupa di preservare il contenuto delle prime due cartelle e di recuperarne il contenuto nel momento in cui l’applicazione dovesse essere nuovamente installata.

android 10 dati salvati applicazioni cancellate asynctask api deprecate

Se una nuova feature viene aggiunta, un’altra viene tolta. In questo caso si tratta delle API AsyncTask. Queste, ancora presenti in Android 10, verranno completamente deprecate con l’arrivo di Android 11. Le API hanno poco senso per gli utenti finali ma sono estremamente popolari per gli sviluppatori che creano applicazioni con funzioni asincrone.

Cosa sono? Parlando in modo molto semplice, alcuni elementi dell’interfaccia di un’applicazione cambiano in base ad informazioni che vengono recuperate da server remoti. Visto che queste operazioni in background possono richiedere del tempo, è estremamente importante svolgerle in modo asincrono, in modo da evitare crash, blocchi e altri problemi.

Purtroppo può accadere che al termine della richiesta in backgroud, la porzione di UI da aggiornare non esista più cosa, che può causare arresti anomali e altri bug. Le API AsyncTask nascono con questo problema intrinseco e Google ha deciso di rimuovere il problema alla radice. Per gli sviluppatori che normalmente utilizzano questo set di API, l’azienda consiglia di prendere in considerazione il framework Concurrency di Java oppure le librerie Kotlin Coroutines.

Fortunatamente il cambiamento non avverrà se non nel giro dei prossimi mesi, pertanto gli sviluppatori potranno prendere in considerazione le informazioni che Google ha rilasciato in questo commit e aggiornare correttamente il codice delle proprio app.