L'azienda Google ha pubblicato il rilascio della piattaforma mobile open source Android 13. I codici sorgente correlati al nuovo rilascio sono disponibili nel repository Git del progetto (branch android-13.0.0_r1). Gli aggiornamenti del firmware sono stati preparati per i dispositivi della serie Pixel. In seguito sono pianificati aggiornamenti del firmware per gli smartphone prodotti da Samsung, Asus, HMD (Nokia), iQOO, Motorola, OnePlus, Oppo, Realme, Sharp, Sony, Tecno, vivo e Xiaomi. Sono state inoltre create build generiche GSI (Generic System Images), compatibili con diversi dispositivi basati su architetture ARM64 e x86_64.
Novità principali:
- È stata proposta una serie di opzioni di colori preimpostate per l'interfaccia, che consentono di modificare leggermente i colori all'interno dello schema di colori selezionato. Le opzioni di colore influenzano l'aspetto di tutti i componenti del sistema operativo, comprese le immagini di sfondo.

- È stata fornita la possibilità di adattare lo sfondo delle icone di qualsiasi applicazione allo schema di colori del tema o al colore dell'immagine di sfondo.

- Nell'interfaccia di controllo della riproduzione musicale è garantito l'uso delle immagini delle copertine degli album riprodotti come sfondo.


- È stata aggiunta la possibilità di associare impostazioni individuali della lingua alle applicazioni, diverse dalle impostazioni della lingua scelta nel sistema.

- È stato notevolmente migliorato il funzionamento sui dispositivi con schermi grandi, come tablet, Chromebook e smartphone con schermi pieghevoli. Per gli schermi grandi è stata ottimizzata la disposizione del menu a discesa con le notifiche, della schermata principale e della schermata di blocco del sistema, che ora utilizzano tutto lo spazio disponibile. Nel pannello che appare con il gesto di scorrimento dall'alto verso il basso, sugli schermi grandi è stata garantita la separazione in diverse colonne delle impostazioni rapide e dell'elenco delle notifiche. È stata aggiunta la supporto per la modalità a doppio pannello nel configuratore, in cui su schermi grandi sono ora sempre visibili le sezioni delle impostazioni.
Sono stati migliorati i modi di compatibilità per le applicazioni. È stata proposta l'implementazione di una barra delle applicazioni che mostra nella parte inferiore dello schermo le icone delle applicazioni aperte, consentendo un rapido passaggio tra i programmi e supportando il trascinamento delle applicazioni tramite interfaccia drag&drop in diverse aree della modalità multi-finestra (split-screen), che divide lo schermo in sezioni per lavorare contemporaneamente con più applicazioni.

- Aumentata la facilità di disegno e inserimento di testo utilizzando una penna elettronica. Aggiunta la protezione contro la comparsa di colpi falsi al tocco dello schermo tattile da parte delle mani durante il disegno con la stilo.
- Per alcuni dispositivi, come il Pixel 6, è stata aggiunta la supporto per la virtualizzazione completa, che consente di eseguire ambienti con altri sistemi operativi. La virtualizzazione è realizzata sulla base del hypervisor KVM e degli strumenti crosvm (VVM, Virtual Machine Manager). In modo opzionale, è disponibile la modalità pKVM (Protected KVM), che fornisce un isolamento più rigoroso degli ambienti utilizzando estensioni di virtualizzazione per l'architettura AArch64. Nella piattaforma, si prevede di utilizzare la virtualizzazione per aumentare la protezione dell'esecuzione del codice di sistema di terze parti, ad esempio, file eseguibili proprietari e componenti DRM.
- Aggiunta la possibilità di concedere autorizzazioni selettive per l'accesso ai file multimediali. Se prima per leggere i file multimediali era necessario concedere accesso a tutti i file nello storage locale, ora l'accesso può essere limitato solo alle immagini, ai file audio o video.

- Implementata una nuova interfaccia per la selezione di foto e video, che consente di fornire all'applicazione accesso solo alle immagini e ai video selezionati e di bloccare l'accesso agli altri file. In precedenza, una interfaccia simile era stata realizzata per i documenti. È possibile lavorare sia con file locali che con dati memorizzati in archivi cloud.

- Aggiunta la richiesta di autorizzazioni per le notifiche delle applicazioni. Senza l'ottenimento anticipato del permesso di visualizzazione delle notifiche, l'invio di notifiche da parte dell'applicazione sarà bloccato. Per le applicazioni già create, progettate per l'utilizzo con versioni precedenti di Android, le autorizzazioni saranno concesse dal sistema a nome dell'utente.

- È stato ridotto il numero di applicazioni che richiedono l'accesso alle informazioni sulla posizione dell'utente. Ad esempio, le applicazioni che eseguono operazioni di scansione delle reti wireless non hanno più bisogno dei permessi legati alla determinazione della posizione.
- Ampliate le funzionalità mirate a migliorare la riservatezza e a informare l'utente sui potenziali rischi. Oltre agli avvisi sull'accesso dell'applicazione agli appunti, la nuova versione prevede la cancellazione automatica della cronologia dei dati memorizzati negli appunti dopo un certo periodo di inattività.
- Aggiunta una nuova pagina unificata per le impostazioni sicurezza e della riservatezza, in cui è stata implementata un'indicazione visiva a colori dello stato di sicurezza e sono state fornite raccomandazioni per migliorare la protezione.

- È stato aggiunto un nuovo tipo di autorizzazione per il Wi-Fi, che consente alle applicazioni progettate per cercare reti wireless e connettersi ai punti di accesso di avere accesso a un sottoinsieme delle API di gestione del Wi-Fi, escluse le chiamate legate alla determinazione della posizione (in precedenza, le applicazioni che si collegavano al Wi-Fi ricevevano anche accesso alle informazioni sulla posizione).
- È stata aggiunta un'API per la collocazione dei pulsanti nella sezione delle impostazioni rapide nella parte superiore del pannello delle notifiche. Con questa API, l'app può inviare una richiesta per aggiungere il proprio pulsante con azione veloce, consentendo all'utente di aggiungere il pulsante senza lasciare l'app e senza accedere separatamente alle impostazioni.

- È stata ottimizzata l'operazione di gestione delle interruzioni delle parole (interruzione delle parole che non si adattano in una riga utilizzando il trattino). Nella nuova versione, le prestazioni dell'interruzione sono aumentate del 200% e ora influenzano praticamente nulla sulla velocità di rendering.
- È stato aggiunto il supporto per gli shader grafici programmabili (oggetti RuntimeShader), definiti nel linguaggio AGSL (Android Graphics Shading Language), che è un sottoinsieme del linguaggio GLSL adattato per l'uso con il motore di rendering della piattaforma Android. Questi shader sono già utilizzati nella piattaforma Android per implementare vari effetti visivi, come pulsazioni, sfocature e distorsioni durante lo scorrimento oltre il bordo della pagina. Effetti simili possono ora essere creati anche nelle applicazioni.
- Le librerie Java di base della piattaforma e gli strumenti di sviluppo delle applicazioni sono stati aggiornati a OpenJDK 11.
- Nell'ambito del progetto Mainline, che consente di aggiornare singoli componenti di sistema senza aggiornare l'intera piattaforma, sono stati preparati nuovi moduli di sistema aggiornabili. Gli aggiornamenti riguardano componenti non legati all'hardware, che vengono caricati tramite Google Play separatamente dagli aggiornamenti OTA del firmware del produttore. Tra i nuovi moduli che potranno essere aggiornati tramite Google Play senza aggiornare il firmware ci sono Bluetooth e Ultra wideband. Anche i moduli con Photo picker e OpenJDK 11 vengono distribuiti tramite Google Play.
- È stato semplificato il test e il debug delle nuove funzionalità della piattaforma. Le modifiche possono ora essere attivate selettivamente per le applicazioni nella sezione delle impostazioni per sviluppatori o tramite l'utilità adb.

- È stata aggiunta un'API che consente all'applicazione di rinunciare ai diritti precedentemente acquisiti. Ad esempio, se in una nuova versione non è più necessaria alcuna autorizzazione estesa, il programma, nell'ottica della tutela della privacy dell'utente, può revocare i diritti precedentemente concessi.
- È stata fornita la possibilità di registrare gestori di operazioni di broadcasting non di sistema (BroadcastReceiver) in base al contesto in cui vengono utilizzati. Per gestire l'esportazione di tali gestori sono stati aggiunti nuovi flag RECEIVER_EXPORTED e RECEIVER_NOT_EXPORTED, che consentono di escludere l'uso dei gestori per l'invio di messaggi broadcast da altre applicazioni.
- È stata aggiunta la supporto per i caratteri vettoriali colorati nel formato COLRv1 (un sottoinsieme dei caratteri OpenType che contiene oltre ai glifi vettoriali uno strato con informazioni sul colore). È stato inoltre aggiunto un nuovo set di emoji multicolor fornito nel formato COLRv1. Il nuovo formato offre una forma compatta di memorizzazione, supporta gradienti, sovrapposizioni e trasformazioni, garantisce una compressione efficiente e consente il riutilizzo dei contorni, riducendo significativamente le dimensioni del carattere. Ad esempio, il carattere Noto Color Emoji in rappresentazione raster occupa 9 MB, mentre nel formato vettoriale COLRv1 occupa 1,85 MB.

- Nell'ambiente di esecuzione delle applicazioni ART è stato implementato un garbage collector più efficiente, basato sull'utilizzo dell'API del kernel Linux userfaultfd, che consente di creare gestori per gli accessi a pagine di memoria non allocate (page faults) nello spazio utente. Il nuovo garbage collector garantisce costi fissi per ogni oggetto caricato, consuma meno memoria e riduce il codice compilato di circa il 10%. L'impiego del nuovo garbage collector consente inoltre di prolungare il tempo di autonomia, eliminare i blocchi durante la raccolta dei rifiuti e proteggere le applicazioni da chiusure forzate in caso di insufficienza di memoria nel sistema.
In ART è stata notevolmente aumentata la performance del passaggio al codice nativo e viceversa: le chiamate JNI ora vengono eseguite fino a 2,5 volte più velocemente. Il codice di elaborazione dei riferimenti durante l'esecuzione è stato aggiornato per funzionare in modalità non bloccante, riducendo così i blocchi. È stata aggiunta l'API Reference.refersTo(), che può essere utilizzata per un recupero della memoria più veloce. Nell'interprete è stata accelerata la ricerca di classi e metodi. È stata aggiunta la possibilità di verificare il bytecode durante l'installazione, anziché durante l'esecuzione, il che ha consentito di ridurre i tempi di avvio delle applicazioni.
- È stata aggiunta la supporto per la tecnologia Bluetooth LE Audio (Low Energy), che consente di ridurre il consumo energetico durante la trasmissione di flussi audio di alta qualità tramite Bluetooth. A differenza del Bluetooth classico, la nuova tecnologia consente anche di passare tra diversi modi di utilizzo per ottenere il miglior rapporto tra qualità e consumo energetico.
- È stata aggiunta la supporto per la specifica MIDI 2.0 e la possibilità di collegare strumenti musicali e controller che supportano MIDI 2.0 tramite la porta USB.
- Per le applicazioni che generano chiavi, le API Keystore e KeyMint ora forniscono indicatori di errore più dettagliati e precisi e consentono di utilizzare le eccezioni java.security.ProviderException per gestire gli errori.
- In AudioManager è stata aggiunta un'API per la gestione dell'audio, che consente di determinare come verrà elaborato il flusso audio. È stato aggiunto il metodo getAudioDevicesForAttributes() per ottenere un elenco dei dispositivi da cui è possibile riprodurre audio, oltre al metodo getDirectProfilesForAttributes() per determinare la possibilità di riproduzione diretta dei flussi audio.
Fonte: opennet.ru













