Viviamo ancora l’era di Android 12, definito da molti come il più grande aggiornamento di Android dal 2014 (quando venne presentato Android 5 Lollipop); a tal proposito, Android 13 si pone come una versione software che andrà ad affinare le funzionalità e i dettami estetici introdotti da Android 12 ma include tantissimi cambiamenti “sotto il cofano” oltre a nuove svariate API destinate agli sviluppatori.

Non dimentichiamoci, inoltre, che in Android 13 confluirà il lavoro iniziato da Google con Android 12L per adattare al meglio il sistema operativo del robottino verde a dispositivi con schermo grande o dal formato particolare (ad esempio per smartphone pieghevoli).

La Developer Preview 2 di Android 13

Google ha rilasciato la nuova Developer Preview 2 di Android 13 pochi giorni fa (ne abbiamo parlato in questo articolo), il 17 marzo 2022, a poche ore di distanza dall’annuncio delle date del prossimo Google I/O 2022 che si terrà il prossimo 11 e 12 maggio (come ci ricorda anche Sundar Pichai, CEO di Google e Alphabet).

Ad analizzare a fondo Android 13, con la Developer Preview 1 prima e la nuova Developer Preview 2 poi, ci ha pensato Mishaal Rahman, caporedattore tecnico del blog di Esper, che in un lunghissimo post sul blog (link in fonte) fornisce tutte le novità presenti nella prossimo major update di Android. Andiamo quindi a scoprire tutte le novità presenti finora in Android 13: il “finora” è d’obbligo perché il sistema operativo è ancora in via di sviluppo e le future release agli sviluppatori introdurranno sicuramente ulteriori novità.

Tutte (ma proprio tutte) le novità di Android 13

Di seguito, vi lasciamo al lunghissimo changelog contenente tutte le novità di Android 13 descritte in maniera dettagliata.

Nuove caratteristiche e funzionalità

Nuovo selezionatore delle immagini

Per impedire alle app con l’autorizzazione READ_EXTERNAL_STORAGE di accedere ai file sensibili dell’utente, Google ha introdotto la archiviazione con ambito in Android 10: essa restringe le autorizzazioni d’accesso allo spazio di archiviazioni per incoraggiare le app a richiedere l’accesso ad un solo file, a vari tipi di file, alla directory o alle specifiche directory di cui hanno bisogno. Un’app può inoltre utilizzare l’API media store per accedere ai file multimediali archiviati all’interno di raccolte specifiche, oppure può utilizzare lo Storage Access Framework (SAF) per caricare il selettore dei documenti di sistema, consentendo all’utente di scegliere i file che desidera condividere con l’app.

L’app Android di sistema per selezionare i documenti è “File” ed offre un’esperienza di raccolta dei file spoglio. Android 13 sta, tuttavia, introducendo un nuovo selettore delle immagini di sistema che va ad estendere l’app File con una nuova esperienza (visiva) per quanto concerne le raccolte di foto e video: il nuovo selettore aiuterà a proteggere la privacy di foto e video, facilitando agli utenti la scelta di foto e video specifici da condividere con un’applicazione: esso potrà condividere foto e video presenti in locale o archiviati in cloud, così come è già possibile con l’app File.

Le app possono utilizzare le nuove API photo picker in Android 13 per chiedere all’utente l’autorizzazione su quali foto e video vuole condividere con essa, svincolando la necessità dell’autorizzazione all’accesso completo a tutti i file multimediali. Questa nuova esperienza verrà implementata, in seguito, anche sui dispositivi con Android 11 o versioni successive (tranne per i dispositivi Android Go Edition) tramite un aggiornamento del modulo Media Provider.

Preferenze della lingua per la singola app

Nelle Impostazioni di sistema, seguendo il percorso “Sistema > Lingue e immissione > Lingue”, è possibile scegliere la lingua che viene applicata a livello di sistema. Questa soluzione potrebbe non essere la preferita di utenti che vorrebbero una lingua diversa in alcune applicazioni rispetto a quella di sistema.

Sebbene alcune applicazioni offrano già la possibilità di cambiare la lingua, sarebbe comodo avere la possibilità di farlo su tutte. Android 13 sta introducendo una nuova API chiamata LocaleManager che permette all’utente di selezionare la lingua preferita sulla singola app.

Gli utenti possono accedere alle nuove preferenze della lingua per la singola app tramite le Impostazioni di sistema, seguendo il percorso “Sistema > Lingue e immissione > Lingue app”: qui è possibile ipostare la lingua preferita per ciascuna app, a patto che queste includano stringhe di codice per supportare più lingue.

Un altro percorso per la modifica della lingua della singola app è il seguente: “Impostazioni > App > Tutte le app > {specifica app} > Lingua”.

Scorciatoia per lo scanner di codici QR

La nuova release del sistema operativo ottimizza l’accesso allo scanner dei codici QR tramite una pratica scorciatoia presente tra i toggle rapidi. Tuttavia, Android 13 non ha una componente di sistema per scansionare i codici QR ma supporterà l’avvio di una componente che lo faccia al posto suo.

In SystemUI è presente la nuova classe QRCodeScannerController che definisce la logica del nuovo toggle rapido; il componente che verrà avviato è contenuto nel valore device_config “default_qr_code_scanner”.

Per quanto concerne i dispositivi dotati dei Google Mobile Services (GMS), è Google Play Services a gestire i valori di device_config e imposta di default la componente scanner di codici QR a com.google.android.gms/.mlkit.barcode.ui.PlatformBarcodeScanningActivityProxy.

Nella galleria sottostante potete vedere sia il toggle rapido che il funzionamento: il nuovo toggle è evidenziato dal nome “QR code” e dal sottotitolo “Tap to scan” (tocca per scansionare” e sarà disattivo se non vi è un lettore di codici QR (quando il valore “default_qr_code_scanner” è non definito).

Nuovi toggle rapidi

Oltre alla nuova scorciatoia per l’accesso allo scanner dei codici QR, Google ha aggiunto altri toggle rapidi per attivare o disattivare al volo determinate impostazioni:

  • Correzione del colore
  • Modalità a una mano: Per impostazione predefinita nella AOSP, la modalità a una mano è disabilitata ma può essere abilitata con “setprop ro.support_one_handed_mode true”. Le impostazioni relative alla modalità ad una mano non vengono visualizzate sui dispositivi con schermo grande; il toggle rapido, tuttavia, può essere aggiunto a quelli attivi aggiungendo “onehanded” a Settings.Secure.sysui_qs_tiles.
  • Controlli sulla privacy: Con questo riquadro gli utenti possono attivare o disattivare l’accesso alla fotocamera, al microfono e alla posizione; vi è anche una scorciatoia per avviare le impostazioni di sicurezza (è visibile nella seconda immagine della galleria sottostante). Il toggle è fornito dal modulo PermissionController Mainline.
  • Device controls: Questo toggle si chiamerà “Home” se l’utente ha selezionato Google Home come app per la gestione dei dispositivi smart.

Cancellazione automatica degli appunti

All’interno di Android è presente un servizio per gli appunti, disponibile per tutte le app in cui è possibile reperire o riposizionare del testo. Molte app per l’inserimento, come l’ottima tastiera Gboard di Google, estendono gli appunti globali con un database capace di memorizzare più elementi; Gboard cancella automaticamente il database degli appunti dopo un’ora.

La cancellazione automatica degli appunti non è stata finora presente in Android: qualsiasi appunto presente nel database può essere letto da un’app in un secondo momento (anche se l’utente viene avvisato da un messaggio che indica l’accesso agli appunti).

Android 13 aggiunge, a livello di sistema, la cancellazione automatica degli appunti. Si tratta di una  funzionalità, disabilitata per impostazione predefinita, che cancellerà automaticamente il database globale degli appunti dopo un determinato lasso di tempo (impostato di base a 60 minuti).

La logica della nuova funzionalità, che ci viene mostrata in un breve video con timeout di cancellazione impostato a 5 secondi, è contenuta nella classe ClipboardService di services.jar.

Installazione di app facilitata sui profili ospite

Come (probabilmente) tutti saprete, in Android è possibile creare profili per gli ospiti (Guest), al fine di rendere uno smartphone condivisibile senza che vengano intaccati i dati dell’utente principale.

Quando si crea un profilo ospite in Android 13, il proprietario può scegliere quali app installare nel profilo ospite; nessun dato verrà condiviso tra i due profili.

Possibilità di disabilitare il richiamo di Assistant con pressione prolungata del tasto home

Nelle impostazioni di sistema, al percorso “Sistema > Gesti > Navigazione del sistema”, è stato aggiunto un nuovo sottomenu per la navigazione a tre pulsanti che consente di disabilitare l’opzione “Tieni premuto il tasto Home per richiamare l’assistente”.

Una volta disabilitata questa opzione, una pressione prolungata del tasto home non sortirà alcun effetto.

Vista a 7 giorni nella Privacy Dashboard

Android 12 ha introdotto la funzionalità “Privacy Dashboard” che consente agli utenti di visualizzare le applicazioni che hanno avuto accesso alle autorizzazioni “pericolose”. Finora la dashboard ha mostrato i dati relativi alle ultime 24 ore ma in Android 13 è in fase di test la possibilità di visualizzare i dati degli ultimi 7 giorni, abilitabile tramite un pulsante (come mostrato nella galleria sottostante).

È possibile che la nuova funzionalità, disabilitata per impostazione predefinita, venga implementata anche sui dispositivi con Android 12 tramite un aggiornamento del modulo PermissionController Mainline.

Riferimenti alla funzionalità “Media Tap To Transfer”

Android 13 contiene riferimenti a una nuova funzionalità chiamata “Media Tap To Transfer”, ancora in fase di sviluppo e della quale non possiamo dire molto sul funzionamento reale.

Sembrerebbe una funzionalità legata alla possibilità di trasmettere il contenuto multimediale in riproduzione su un dispositivo (media cast sender), ad esempio su uno smartphone, a un dispositivo (media cast receiver), ad esempio su un tablet, sito nelle immediate vicinanze; una sorta di badge cliccabile (il tap nel nome della funzionalità) avviserà l’utente di questa possibilità.

Abilitando un flag nascosto in SystemUI, l’interfaccia della riga di comando della funzionalità diventa disponibile.

Modalità Hub (Hub mode)

Google crede che i tablet siano il futuro dell’informatica e gli sforzi profusi in Android 12L vanno anche in quella direzione, concentrandosi sul miglioramento dell’esperienza complessiva offerta da Android sui tablet. Con Android 13, Google ottimizza l’esperienza su tablet per quanto concerne una specifica destinazione d’uso.

Già nella Developer Preview 1 si potevano scovare i primi passi della nuova “Hub mode” che consentirà agli utenti di condividere app (che supportano tale modalità) su una superficie comune (che potrebbe essere, appunto, lo schermo di un tablet) con altri utenti connessi allo stesso access point Wi-Fi (l’utente può limitare alle reti affidabili quelle compatibili con Hub mode).

Scavando nel codice, si può notare come Google stia pianificando qualcosa di grande per i tablet che verranno inseriti in una dock fissa.

Il funzionamento della modalità hub non è dimostrabile, in quanto si tratta di una funzionalità in fase di sviluppo. Tuttavia, ci viene mostrata la schermata relativa alle “reti affidabili” (trusted networks).

Nuovo e rinnovato Salvaschermo

Google ha introdotto gli screensaver con Android in Android 4.2 Jelly Bean e, da allora, la funzionalità ha ricevuto alcuni importanti miglioramenti (Google si riferisce, nel codice, agli screensaver come “sogni”). Android 13 introduce un bel po’ di codice inedito e relativo ai “sogni” in SystemUI, suggerendo l’imminente arrivo di cambiamenti significativi.

Più nel dettaglio, le nuove classi presenti in Android 13 rivelano il lavoro su un servizio che ha lo scopo di eseguire “complicazioni” (per i profani, i widget presenti negli smartwatch) in sovrapposizione allo screensaver: tra le informazioni che potrebbero essere riportate ci sono la qualità dell’aria, le informazioni sulla trasmissione, la data, l’ora e il meteo.

Nella Developer Preview 2, la pagina delle impostazioni del salvaschermo è stata rinnovata per mostrare le anteprime. Gli screensaver disponibili sono mostrati all’interno di una griglia con un pulsante per la personalizzazione (Customize) al centro di ogni elemento. In basso, inoltre, è presente un pulsante per visualizzare l’anteprima (Preview).

Sembrerebbe, inoltre, che Google stia aggiungendo una pagina alla procedura guidata di configurazione, in modo che gli utenti possano selezionare un particolare salvaschermo già al momento della configurazione (iniziale) del proprio dispositivo.

Sicuramente nelle prossime build verranno introdotte ulteriori novità al riguardo.

Supporto allo standard Bluetooth LE Audio

Il Bluetooth Audio LE (BLE Audio) è lo standard di nuova generazione definito dall’organo di sovrintendenza agli standard Bluetooth, il Bluetooth SIG; questo standard promette un ridotto consumo di potenza a fronte di un migliore qualità audio tramite l’utilizzo del nuovo codec LC3 (Low Complexity Communication Codec), e introduce alcune funzionalità come la condivisione dell’audio basato sulla posizione, la trasmissione audio multi-dispositivo e il supporto agli apparecchi acustici.

Google ha integrato in Android 13 il supporto a BLE Audio per sfruttare i prodotti presenti sul mercato già compatibili con lo standard e per prepararsi al rilascio di nuovi prodotti compatibili. La presenza del nuovo codec LC3, che certifica la compatibilità col nuovo standard, è presente nelle “Opzioni Sviluppatore”. Gli sviluppatori non dovranno apportare modifiche alle proprie applicazioni per sfruttare la nuova funzionalità.

Supporto allo standard MIDI 2.0

Android 13 introduce il supporto allo standard MIDI 2.0, uno standard introdotto alla fine del 2020 che aggiunge la bi-direzionalità nella comunicazione tra dispositivi MIDI 2.0 in modo che questi possano comunicare tra loro per auto-configurarsi o scambiarsi informazioni. Inoltre, la risoluzione viene migliorata arrivando a 32 bit.

Cassetto delle app nella barra delle applicazioni

La nuova barra delle applicazioni introdotta da Google in Android 12L e ottimizzata per i dispositivi dotati di un grande schermo, aveva il limite di potere mostrare solo fino a 6 app. Alla dock bar in Android 13 viene messa una pezza a questo limite, tramite l’aggiunta del pulsante per accedere al cassetto delle app installate, dando la possibilità agli utenti di visualizzare ed eventualmente avviare qualsiasi app presente sul dispositivo da ogni schermata.

Questa funzione è controllata dal flag ENABLE_ALL_APPS_IN_TASKBAR della funzione Launcher3 ed è abilitata per impostazione predefinita sui dispositivi dotati di un ampio display.

Nuova opzione di accessibilità relativa alla Lente di Ingrandimento

Al percorso “Impostazioni > Accessibilità > Ingrandimento” è stato aggiunto un nuovo interruttore che permette di effettuare l’ingrandimento della zona in cui avviene la digitazione (in inglese è chiamato “Follow Typing”, ovvero segui digitazione).

Nuovo Foreground Services Task Manager

Il nuovo Foreground Services (FGS) Task Manager, ovvero quello il task manager dedicato alle app in esecuzione, di Android 13 mostra l’elenco delle app che attualmente eseguono un servizio in primo piano. È possibile accedere all’elenco “App attive” tramite la schermata delle notifiche toccando il numerino in basso (come si può vedere nelle immagini della galleria seguente) e ogni app avrà un pulsante “Stop” a fianco (immaginiamo venga reso con “Arresta” in italiano).

Il modo per richiamare il Foreground Services Task Manager in Android 13

L’FSG Task Manager consente agli utenti di interrompere i servizi in primo piano, a prescindere dalla versione dell’SDK. Nella seguente tabella, vengono mostrate le differenze tra l’interruzione di un’app con l’FSG Task Manager, con lo swipe up per chiuderla dalle app aperte e con l’arresto forzato tramite le impostazioni.

Le differenze tra FGS Task Manager, chiusura tramite swipe up e arresto forzato delle app in Android 13

Il sistema invia una notifica invitando l’utente a interagire con l’FSG Task Manager quando un servizio in primo piano è in esecuzione per almeno 20 ore su 24: la notifica apparirà come “{app specifica} è in esecuzione in background da molto tempo. Tocca per visionare”; questo messaggio non apparirà se il servizio in primo piano è di tipo FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK o FOREGROUND_SERVICE_TYPE LOCATION.

Alcune applicazioni, come quelle a livello di sistema, quelle di sicurezza con ruolo ROLE_EMERGENCY e tutte le app quando il dispositivo è in modalità demo (o negozio), non compariranno nel FGS Task Manager o non possono essere chiuse dall’utente anche se compariranno in esso.

Livelli della vibrazione nelle sveglie e nei file multimediali

Al percorso “Impostazioni > Suoni e vibrazione > Vibrazione e feedback aptico” sono stati aggiunti degli slider per configurare i livelli della vibrazione nelle sveglie e del feedback aptico durante la riproduzione di contenuti multimediali.

Il flag di configurazione che controlla il livello di intensità supportato (config_vibration_supported_intensity_levels) è stato aggiornato in modo da essere un numero intero e facilitare ai produttori di dispositivi la possibilità di specificare il numero di livelli distinti supportati.

Le nuove impostazioni relative a vibrazione e feedback aptico in Android 13

Possibilità di lanciare un’app in split screen da una sua notifica

A partire dalla DP2 di Android 13 è possibile avviare un’app in modalità split screen a partire da una sua notifica, premendo a lungo su di essa, trascinandola e rilasciandola su una delle due metà dello schermo: la funzionalità, introdotta in Android 12L (ma disabilitata di default), è ancora in fase di sviluppo.

Nuova opzione di programmazione per la modalità scura

La modalità scura (Dark theme) di Android aggiunge una nuova opzione di programmazione per l’attivazione: è possibile, adesso, scegliere di attivare l’opzione “prima di andare a dormire”; sui dispositivi dotati dei servizi Google, questo poteva essere fatto tramite l’app Benessere digitale.

La funzione non è abilitata per impostazione predefinita ma può essere attivata tramite il flag “settings_app_allow_dark_theme_activation_at_bedtime”.

Cinematic wallpapers

Android 13 introduce nuove API di sistema che serviranno per generare sfondi tridimensionali che si spostano quando il telefono si muove. Nell’ultima versione di WallpaperPicker inclusa nella DP2 di Android 13 sui Pixel, sono presenti stringhe che suggeriscono l’aggiunta all’interfaccia di una nuova scheda dedicata agli “Effetti”: questa consentirà agli utenti di applicare effetti cinematografici al proprio sfondo, incluso l’effetto sfondo 3D.

La funzione, che potrebbe essere esclusiva di Google, è in via di sviluppo ma è possibile testare l’oscuramento dello sfondo: l’immagine a sinistra mostra un’attenuazione allo 0% e quella a destra mostra un’attenuazione al 50%.

Controllo dei dispositivi per la smart home senza sbloccare lo smartphone

In Android 11 è stata introdotta la funzione Quick Access Device Controls che consente agli utenti di visualizzare lo stato e controllare i dispositivi intelligenti come luci, videocamere o termostati. Nella AOSP di Android 12 questa schermata può essere aperta tramite un collegamento nella schermata di blocco o nel pannello delle impostazioni rapide ma non quando lo smartphone è bloccato.

A partire da Android 13 le app possono consentire agli utenti di controllare i propri dispositivi per la casa intelligente senza dovere sbloccare il proprio smartphone.

Editor degli appunti in sovraimpressione

Seguendo un po’ la via introdotta in Android 11 per quanto concerne la modifica dopo la cattura di uno screenshot, a partire da Android 13 verrà visualizzato, in sovrapposizione nell’angolo in basso a sinistra, una sorta di recap di quello che viene copiato e inserito nel database degli appunti, con la possibilità di accedere rapidamente al pannello per la modifica.

Nel caso in cui il testo copiato contenga informazioni come indirizzi, numeri di telefono o indirizzi URL, verrà visualizzato un tasto aggiuntivo (oltre al tasto di modifica) che suggerisce di sfruttare l’informazione con l’app adeguata (ad esempio, il browser per gli URL e Maps per gli indirizzi fisici).

Modifiche all’interfaccia utente

Modifiche al lettore multimediale

Il lettore multimediale è ora dotato di una nuova interfaccia grafica.

  • In alto: all’estrema sinistra troviamo il logo dell’app che sta riproducendo il contenuto; all’estrema destra troviamo pulsante relativo al selettore del dispositivo di output (ne parleremo fra poco).
  • In mezzo: all’estrema sinistra, troviamo i dettagli relativi al brano in riproduzione (titolo e artista); all’estrema destra, invece, troviamo il pulsante play/pausa che è più grande rispetto a quello presente nella vecchia interfaccia (introdotta con Android 11).
  • In basso: da sinistra a destra, in ordine, troviamo il tasto per tornare al brano precedente, la barra dei progressi del brano (dotata di uno slider per spostarsi sulla timeline del brano), il tasto per andare al brano successivo, il tasto per la ripetizione del brano (o della playlist) e il tasto shuffle.

È stata ridisegnata l’interfaccia relativa al selettore del dispositivo di output sul quale verrà riprodotto un contenuto multimediale audio; il selettore si utilizza, ad esempio, quando si vuole riprodurre un brano attraverso un dispositivo bluetooth connesso allo smartphone, piuttosto che attraverso altoparlanti di sistema.

La modalità “silenzioso” disabilita tutti i feedback aptici

Quando su Android 13 viene impostata la modalità audio su “silenzioso”, vengono disabilitati tutti i feedback aptici, anche quelli relativi alle interazioni col sistema.

Cambiamenti alle schermate di blocco e inserimento del pin di sicurezza

Nella schermata di inserimento del pin/password di sicurezza del dispositivo, è presente un selettore per il profilo utente; questo sarà collocato in alto se il dispositivo è tenuto in verticale (modalità potrait) o a sinistra se il dispositivo è tenuto in orizzontale (modalità landscape).

La funzione è disabilitata di default ma è controllata dal parametro booleano “config_enableBouncerUserSwitcher” di SystemUI.

La schermata di blocco può finalmente ruotare (per mettersi in modalità landscape) ma solo sui dispositivi dotati di un grande schermo.

Nuovi stili di colore dinamico del Material You

Il dynamic color (colore dinamico) è una delle caratteristiche chiave del Material You di Google introdotto con Android 12. Secondo Big G, il supporto a questa caratteristica sarà sempre più presente in dispositivi di terze parti, anche a causa dei nuovi requisiti dei GMS.

Senza dilungarci troppo su come funzioni il meccanismo che estrae i colori dallo sfondo, Google è al lavoro per introdurre in Android 13 una nuova funzionalità chiamata “stili” per consentire agli utenti di scegliere tra alcune tavolozze aggiuntive; nello specifico troveremo:

  • TONAL_SPOT (è quello presente attualmente sui Pixel con Android 12)
  • VIBRANT (genererà tavolozze con tonalità leggermente diverse e colori secondari/di sfondo più colorati)
  • EXPRESSIVE (genererà una tavolozza con tonalità ancor più colorate)
  • SPRITZ (genererà tavolozze quasi in scala di grigi)
  • RAINBOW
  • FRUIT_SALAD.

Le specifiche di questi nuovi stili sono definite nella nuova classe com.android.systemui.monet.Styles, e le nuove opzioni di stile sono collegate a ThemeOverlayController di SystemUI; pertanto, è possibile generare sovrapposizioni composte da 3 accenti e 2 tavolozze tonali neutre utilizzando queste nuove specifiche.

L’app WallpaperPicker/Theme Picker si interfaccerà con la monet (il motore dinamico che preleva i colori) di SystemUI, fornendo valori a Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES in formato JSON.

La modalità Do Not Disturb diventa Priority Mode

La modalità Non disturbare è stata rinominata in Modalità prioritaria (o di priorità). Nessuna funzionalità è stata aggiunta o rimossa alla vecchia modalità Non disturbare.

Riposizionamento di alcuni pulsanti nell’area delle notifiche

Dalla DP1 alla DP2, Google ha spostato i pulsanti di accensione, impostazioni e selettore del profilo all’interno dell’area delle notifiche. Questi, prima, erano posizionati sotto al pannello dei toggle rapidi; adesso si trovano in basso a destra nella schermata.

Modalità bambini per la barra di navigazione

All’interno di Launcher3 è presente una nuova modalità della barra di navigazione, destinata all’utilizzo sui dispositivi dal grande schermo e chiamata “modalità bambini”; quando essa è attiva, vengono nascoste le app della dock bar, vengono ridisegnate e piazzate al centro le icone per tornare indietro e per tornare alla home, viene nascosto il pulsante per le app recenti

La barra di navigazione rimarrà visibile anche quando si eseguono app a schermo intero.

Nuova interfaccia per l’aggiunta di un nuovo profilo utente

In Android 13 è presente un’interfaccia per la creazione di un nuovo profilo utente riprogettata.

Gli utenti hanno alcune opzioni per scegliere un avatar: possono scegliere tra alcuni avatar predefiniti (icona del contatto ma con colori diversi), possono scattare una foto utilizzando l’app della fotocamera predefinita o possono scegliere un’immagine dalla galleria.

Dimensione carattere e dimensioni display in un’unica schermata

Le impostazioni “dimensione carattere” e “dimensione display” presenti, finora, in “Impostazioni > Display” sono state unificate in un’unica pagina chiamata “dimensioni display e testo­”.

Nella nuova pagina unica è presente anche un’anteprima di come eventuali modifiche al carattere o alle dimensioni del display influiscano sul ridimensionamento di icone e testo; inoltre, troviamo due toggle relativi a impostazioni precedentemente presenti nelle impostazioni di Accessibilità (“testo in grassetto” e “testo ad alto contrasto”).

La nuova schermata unica per modificare dimensioni del display e del testo in Android 13

Novità della barra di ricerca (esclusiva del Pixel Launcher)

La DP2 di Android 13, sui Pixel, presenta un nuovo flag a una funzione che, se abilitato, permette di spostare la barra di ricerca dell’app drawer nella parte inferiore dello schermo. La barra di ricerca rimane in basso fino all’apertura della tastiera, dopodiché si sposterà per rimanere poco sopra la tastiera.

Inoltre, la barra di ricerca del Pixel Launcher (gestita dall’app Android System Intelligence) mostrerà presto risultati corrispondenti a widget, screenshot salvati e suggerimenti di ricerca tramite Google (come mostrato nella galleria sottostante). I flag per questa funzione esistono da tempo ma hanno recentemente iniziato a funzionare.

Interfaccia personalizzata per PC

Android può essere eseguito su varie tipologie di hardware ma Google ne supporta ufficialmente solo pochi tipi, che sono definiti nel CDD (il documento che definisce la compatibilità).

Quando si crea una ROM Android per un particolare dispositivo, il produttore deve dichiarare la funzionalità corrispondente al tipo di dispositivo: ad esempio, per un televisore si dovrebbe dichiarare la funzione “android.hardware.type.television” per indicare al sistema e alle app che hanno a che fare con un televisore.

Le app possono essere eseguite anche sui Chromebook e, alcuni anni fa, Google ha creato il tipo di dispositivo “android.hardware.type.pc”  per sfruttare le app su PC notebook e desktop, in modo che il framework possa riconoscere le app che sono progettate per questi fattori di forma.

A partire da Android 12L, per un buon motivo, Google ha deciso di rinnovare l’interfaccia utente per i dispositivi a grande schermo e in Android 13 Google sta facendo ulteriori passi in quella direzione.

Sui computer, la barra delle applicazioni del launcher è ottimizzata per mostrare pulsanti dedicati alle notifiche e alle impostazioni rapide; questi pulsanti sono perennemente mostrati sul lato destro della barra delle applicazioni, al posto dei tasti di navigazione (i 3 pulsanti canonici) mostrati su altri dispositivi dal grande schermo come i tablet.

Inoltre, tutte le app vengono avviate di default in finestra; Google potrebbe presto abilitare il supporto al multitasking in finestra per impostazione predefinita su dispositivi con schermo grande come i PC.

Interfaccia del cambio del profilo utente a schermo intero

Al fine di migliorare l’esperienza nella condivisione di un dispositivo, Google sta introducendo molti miglioramenti all’esperienza multi-utente: tra queste, è in fase di sviluppo una interfaccia per cambiare profilo utente a schermo intero.

Questa nuova interfaccia è probabilmente pensata per dispositivi dotati di un grande schermo che hanno molto spazio a disposizione. Attualmente è disabilitata per impostazione predefinita ma può essere abilitata tramite il valore config_enableFullscreenUserSwitcher.

Il cambio del profilo utente a schermo intero di Android 13

Cambio del profilo utente dalla barra di stato

Google sta anche sperimentando il posizionamento di un pulsante che visualizza il profilo utente in uso all’interno della barra di stato; quando questo pulsante viene toccato, verrà aperto il selettore del profilo utente.

Questa funzione è disabilitata di default nelle attuali build di Android 13 ma può essere abilitata impostando il flag “flag_user_switcher_chip” su “true” in SystemUI. È probabile che anche questa funzione sia pensata per dispositivi dal grande schermo come i tablet.

Altre modifiche

  • Quando si abilità la freeform mode (app in finestra) dalle Opzioni sviluppatore, una finestra di dialogo informa l’utente che è necessario riavviare il dispositivo affinché la funzione sia attiva.
  • L’interruttore “mostra tocchi sullo schermo” relativo allo Screen recorder (registratore dello schermo) di SystemUI viene reinserito ed è funzionante, dopo che era stato rimosso in Android 12L a causa di un bug.
  • È presente una nuova animazione per passare in modo più pulito tra il widget “smartspace” della schermata di blocco e quello della schermata iniziale (viene mostrato nel video seguente). Smartspace è un widget proprietario di Google ma, in forma basilare, è disponibile per i partner Android.

Cambiamenti relativi al comportamento di sistema

  • Autorizzazione ai dispositivi vicini per il Wi-Fi
    Android 13 sta introducendo la nuova autorizzazione di runtime NEARBY_WIFI_DEVICES nel gruppo di autorizzazioni Questa autorizzazione dovrebbe essere richiesta dalle app che devono gestire le connessioni di un dispositivo agli access point Wi-Fi vicini, e verrò richiesta per sfruttare molte API Wi-Fi di utilizzo comune.
  • Sillabazione più veloce
    La sillabazione è stata disabilitata di default in Android 10 poiché Google aveva scoperto che, quando era abilitata, il 70% del tempo impiegato dalla CPU per misurare un testo era perso per via della sillabazione. Con Android 13, le prestazioni della sillabazione migliorano fino al 200%; agli sviluppatori basterà utilizzare le nuove frequenze fullFast o normalFast quando invocano il metodo setHyphenationFrequency di TextView.
  • Economia delle risorse di Android (TARE)
    Con ogni nuova versione, Google limita ulteriormente ciò che possono fare le app in esecuzione in background e Android 13 non fa eccezione. Google incoraggia gli sviluppatori a utilizzare API come WorkManager, JobScheduler e AlarmManager per mettere in coda le attività (a seconda di quando questa debba essere eseguita e se il dispositivo abbia accesso a GMS). A partire da Android 13, il modo in cui le app mettono in coda le attività verrà gestito da un nuovo sistema chiamato TARE (The Android Resource Economy); esso, darà dei “crediti” alle app che li potranno “spendere” per le attività in coda; il totale dei “crediti” sarà il “saldo” e dipenderà da fattori come il livello di carica della batteria. Si tratta di una delle novità più complesse presenti in Android 13.
  • Disposizione del testo giapponese migliorata
    Le app che supportano la lingua giapponese possono racchiudere il testo in base alla più piccola frase di senso compiuto (“Bunsetsu”), anziché in base al carattere, rendendo il tutto più leggibile per gli utenti giapponesi.

Confronto tra nuova e vecchia disposizione del testo in Giapponese di Android 13

  • Altezza delle righe migliorata per gli script non latini:
    Il supporto alle lingue non latine (tamil, birmano, telugu, tibetano…) è stato migliorato in Android 13 e utilizza altezze delle linee adatte per ciascuna lingua, migliorando il posizionamento dei caratteri.

Modifiche alla piattaforma

  • Lo Stack Bluetooth di Android è ora un modulo Mainline
  • Lo Stack ultra-wideband di Android diventa un modulo Mainline
  • Vi è un nuovo servizio di manutenzione inattiva intelligente che determina, in modo intelligente, quando attivare la deframmentazione del filesystem senza compromettere la durata nel tempo delle memorie.
  • Fast Pair, il protocollo proprietario di Google per il rilevamento e l’accoppiamento di dispositivi Bluetooth nelle vicinanze, è ora parte di AOSP come parte del nuovo componente modulare di sistema “com.android.nearby”. Al momento il servizio è implementato nei Google Play Services (servono quindi i Google Mobile Services); tuttavia, la nuova API di sistema NearbyManager sarà disponibile nella AOSP e consentirà agli OEM di introdurlo nelle proprie release software.
  • Per supportare lo sviluppo di applicazioni per le patenti di guida su Android, Google ha creato l’API Identity Credential che fornisce l’interfaccia ad un archivio sicuro per i documenti d’identità (non solo le patenti di guida); questa API può essere implementata con o senza supporto hardware (ma l’implementazione del supporto hardware consente un maggior livello di sicureza e privacy).
  • Insieme a Qualcomm, Google implementerà gli aggiornamenti dei driver NNAPI sui dispositivi tramite Google Play Services. Tali aggiornamenti dovevano essere forniti tramite GSMCore ma sembra che Google abbia abbandonato questi piani.
  • Android 13 include la prima versione dell’hypervisor pKVM e del framework della macchina virtuale. L’obiettivo di Google è deprivilegiare e isolare il codice di terze parti (come il codice di terze parti per DRM e crittografia) da Android, facendolo eseguire in una macchina virtuale che gode dello stesso livello di privilegi del sistema operativo e del kernel, anziché a un livello superiore. Per ottenere ciò, Google ha deciso di implementare KVM come soluzione hypervisor comune e crosvm come gestore di macchine virtuali.
  • Google sta aggiungendo una nuova impostazione nelle Opzioni sviluppatore di Android 13 che permette di riavviare il dispositivo consentendo di eseguire l’MTE (Memory Tagging Extension). Si tratta di una funzionalità hardware delle CPU Arm v9 che attenua i bug di sicurezza della memoria, fornendo informazioni più dettagliate sulle violazioni della memoria stessa.

 

Aggiornamento delle API

  • API delle icone a tema
    In Android 13, Google estende il colore dinamico del Material You alle icone di tutte le app. Google ha aggiornato l’API AdaptiveIconDrawable per supportare le icone delle app a tema. Gli sviluppatori dovranno semplicemente fornire un’icona della propria app in versione monocromatica e modificare l’elemento in “ic_launcher.xml” per includere il nuovo elemento interno che punta allo spazio monocromatico. Gli sviluppatori che hanno già fornito un’icona adattiva, troveranno facile la possibilità di aggiungere il supporto per le icone a tema in Android 13.
    Le icone a tema per tutte le app saranno dapprima appannaggio dei Pixel ma arriveranno presto su altri dispositivi con Android 13.
  • API per il posizionamento dei riquadri
    A partire da Android 13, una nuova API per il posizionamento dei riquadri consentirà alle app di richiedere agli utenti di aggiungere direttamente il loro riquadro personalizzato al set di riquadri delle Impostazioni rapide attive. Quando un’app richiama questa API, viene visualizzata una finestra di dialogo di sistema che consente all’utente di aggiungere il riquadro con un solo tocco.

La nuova API per il posizionamento dei riquadri in Android 13

  • Shader programmabili
    Con Android 13 gli sviluppatori possono creare effetti avanzati di sfocatura, increspatura e allungamento dell’overscroll utilizzando gli oggetti RuntimeShader programmabili.
  • Supporto per OpenJDK 11
    Le librerie principali di Android si allineeranno con la versione OpenJDK 11 LTS, portando in Android 13 (ma anche in Android 12 tramite un aggiornamento al modulo ART) gli aggiornamenti delle librerie e le nuove funzionalità del linguaggio di programmazione per sviluppatori di app e sistemi operativi.
  • Autorizzazione di runtime per le notifiche
    In Android 13, Google ha aggiunto un’autorizzazione di runtime per le notifiche: alle app destinate alle API di livello 33 verrà impedito di pubblicare notifiche, a meno che esse non dispongano della nuova autorizzazione permission.POST_NOTIFICATIONS; questa autorizzazione ha un livello di protezione “pericoloso” e quindi le app devono mostrare una richiesta di runtime all’utente per ottenere l’autorizzazione. Per i pacchetti a cui non è stata concessa l’autorizzazione, le notifiche verranno automaticamente eliminate dal sistema.
  • API per il controllo della luminosità del flash LED
    Android 13 introduce nuovi metodi nella classe CameraManager che consentono alle app di accedere alla torcia e impostarne il livello di potenza. Potrebbe essere una funzione di nicchia (che arriva su pochi dispositivi).
  • Permessi declassabili per gli sviluppatori
    È una nuova API che consente agli sviluppatori di effettuare il downgrade delle autorizzazioni; le app possono chiedere la revoca di una o più autorizzazioni di runtime concesse al pacchetto che richiama l’API;
  • le app che non necessitano dell’accesso a determinate API con autorizzazione di runtime, possono revocare automaticamente tali autorizzazioni in modo che gli utenti possano essere certi che queste app non stiano utilizzando, a loro insaputa, le suddette API.
  • Esportazione più sicura dei context-registered receivers
  • API per la conversione del testo
    La nuova API per la conversione del testo tornerà utile nella conversione di caratteri tra alfabeti fonetici e tornerà utile in lingue come cinese e giapponese (ad esempio, gli utenti giapponesi potranno digitare query in Hiragana e visualizzare i risultati in Kanji).
  • API per Caratteri vettoriali a colori (COLRv1)
    COLRv1 è un nuovo formato di font altamente compatto che supporta le sfumature di colore.
  • API per la descrizione audio
    Sotto le impostazioni di Accessibilità, è presente un nuovo interruttore “Descrizione audio”. Il nuovo metodo isAudioDescriptionRequested presente in AccessibilityManager può essere richiamato dalle app che vogliono determinare se un utente voglia selezionare la descrizione audio come impostazione predefinita. Si tratta di una funzionalità pensata per i soggetti ipovedenti.

Nuova API per la descrizione audio in Android 13

Quando arriverà Android 13?

In accordo con la tabella di marcia divulgata dalla stessa Google, Android 13 verrà rilasciato ufficialmente nel Q3 del 2022, dopo due Developer Preview (step già superati) e quattro beta. La prossima versione del sistema operativo dovrebbe raggiungere la maturità in termini di stabilità con la terza beta, prevista per il giugno del 2022: una volta raggiunta la stabilità, verranno finalizzate le API (livello 33, dal momento che Android 12L ha le API di livello 32) per SDK e NDK e i comportamenti di sistema relativi alle app.

Android 13 timeline

Android 13, lato Google, è disponibile in anteprima agli sviluppatori su Pixel 4, Pixel 4 XL, Pixel 4a, Pixel 4a 5G, Pixel 5, Pixel 5a, Pixel 6 e Pixel 6 Pro. Inoltre, può essere installato su PC, tramite l’emulatore per Android, o su dispositivi compatibili con Project Treble tramite un’immagine di sistema generica.

La Developer Preview 2 potrà essere installata solo manualmente; quando, invece, verrà aperto il programma Android Beta, sarà possibile iscriversi e installare l’aggiornamento via etere senza ricorrere all’installazione manuale; l’attesa per il programma beta non dovrebbe essere molta, dal momento che il rilascio della prima beta di Android 13 dovrebbe avvenire durante il mese di aprile.

Vedremo se verranno introdotte ulteriori novità all’interno del prossimo major update di Android; noi saremo qui a raccontarvele, in ogni caso.

Non perderti: Recensione Google Pixel 6Recensione Google Pixel 6 Pro