Google ha pubblicato il rilascio della piattaforma mobile open source Android 13. I codici sorgente relativi al nuovo rilascio sono disponibili nel repository Git del progetto (ramo android-13.0.0_r1). Gli aggiornamenti del firmware sono stati preparati per i dispositivi della serie Pixel. In seguito, sono previsti aggiornamenti del firmware per gli smartphone prodotti da Samsung, Asus, HMD (Nokia), iQOO, Motorola, OnePlus, Oppo, Realme, Sharp, Sony, Tecno, vivo e Xiaomi. Sono inoltre state create build universali GSI (Generic System Images), adatte per diversi dispositivi basati su architetture ARM64 e x86_64.
Novità principali:
- Proposto un insieme di opzioni di design predefinite che consentono di regolare leggermente i colori all'interno dello schema colore scelto. Le opzioni di colore influiscono sull'aspetto di tutti i componenti del sistema operativo, compresi i wallpaper.

- È stata fornita la possibilità di adattare lo sfondo delle icone di qualsiasi applicazione al tema o al colore dello sfondo.

- Nell'interfaccia di controllo della riproduzione musicale è ora possibile utilizzare immagini delle copertine degli album in riproduzione come sfondo.


- È stata aggiunta la possibilità di associare impostazioni individuali della lingua alle applicazioni, diverse da quelle selezionate 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 pannello a discesa delle notifiche, della schermata principale e dello schermo 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 colonne diverse per le impostazioni rapide e l'elenco delle notifiche. È stata aggiunta la supporto per la modalità a doppio pannello nel configuratore, in cui le sezioni delle impostazioni sono ora sempre visibili sugli schermi grandi.
Migliorati i modi di compatibilità per le applicazioni. Proposta l'implementazione di una barra delle applicazioni, che mostra nella parte inferiore dello schermo le icone delle applicazioni in esecuzione, permettendo di passare rapidamente tra i programmi e supportando il trasferimento delle applicazioni tramite l'interfaccia drag & drop in diverse aree della modalità multi-finestra (split-screen), che suddivide lo schermo in parti per lavorare simultaneamente con più applicazioni.

- È stato migliorato il comfort durante il disegno e l'inserimento di testo utilizzando una penna digitale. È stata aggiunta la protezione contro i colpi falsi quando si tocca lo schermo durante il disegno con la penna.
- Per alcuni dispositivi, come il Pixel 6, è stata aggiunta la supporto completo per la virtualizzazione, consentendo l'esecuzione di ambienti con altri sistemi operativi. La virtualizzazione è implementata utilizzando un hypervisor KVM e strumenti crosvm (VVM, Virtual Machine Manager). È disponibile anche una modalità pKVM (Protected KVM), che fornisce un isolamento più rigoroso degli ambienti utilizzando estensioni di virtualizzazione per l'architettura AArch64. Nella piattaforma, la virtualizzazione è prevista per migliorare la protezione dell'esecuzione di codice di sistema di terze parti, come file eseguibili privati e componenti DRM.
- È stata aggiunta la possibilità di concedere autorizzazioni selettive per accedere ai file multimediali. In passato, per leggere i file multimediali era necessario fornire accesso a tutti i file nella memoria locale, mentre ora l'accesso può essere limitato solo a immagini, file audio o video.

- È stata implementata una nuova interfaccia per la selezione di foto e video, che consente all'app di accedere solo alle immagini e ai video selezionati, bloccando l'accesso agli altri file. In precedenza, un'interfaccia simile era stata realizzata per i documenti. È possibile lavorare sia con file locali che con dati archiviati in cloud.

- È stata aggiunta la richiesta di autorizzazione per la visualizzazione delle notifiche da parte delle applicazioni. Senza una previa autorizzazione per visualizzare le notifiche, l'invio delle notifiche da parte dell'app verrà bloccato. Per le applicazioni già create, progettate per funzionare con versioni precedenti di Android, le autorizzazioni verranno fornite dal sistema a nome dell'utente.

- È stato ridotto il numero di applicazioni che richiedono accesso alle informazioni sulla posizione dell'utente. Ad esempio, le applicazioni che eseguono la scansione delle reti wireless non richiedono più autorizzazioni legate alla determinazione della posizione.
- Ampliate le funzionalità mirate a migliorare la riservatezza e informare l'utente sui possibili rischi. Oltre agli avvisi sull'accesso delle applicazioni agli appunti, è stata implementata una cancellazione automatica della cronologia dei dati copiati dopo un certo periodo di inattività.
- Aggiunta una nuova pagina unificata con le impostazioni la sicurezza e la privacy, in cui è stata realizzata un'indicazione cromatica visiva dello stato di sicurezza e fornite raccomandazioni per rafforzare la protezione.

- È stato aggiunto un nuovo tipo di autorizzazione per il Wi-Fi, che fornisce alle app destinate alla ricerca di reti wireless e alla connessione a punti di accesso la possibilità di accedere a un sotto insieme di API di gestione del Wi-Fi, escludendo le chiamate relative alla localizzazione (in precedenza le app che si connettevano al Wi-Fi avevano accesso anche alle informazioni sulla posizione).
- È stata aggiunta un'API per la posizionamento dei pulsanti nella sezione delle impostazioni rapide nella parte superiore del pannello delle notifiche a discesa. Tramite questa API, l'app può richiedere di posizionare il proprio pulsante con azione rapida, consentendo all'utente di aggiungere il pulsante senza uscire dall'app e senza dover andare separatamente nelle impostazioni.

- È stata ottimizzata l'operazione di suddivisione delle parole (interruzione delle parole che non si adattano alla riga con l'uso del trattino). Nella nuova versione, le prestazioni della suddivisione sono aumentate del 200% e ora influiscono praticamente zero sulla velocità di rendering.
- Aggiunta 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 stessa piattaforma Android per implementare vari effetti visivi, come pulsazione, sfocatura e allungamento durante lo scorrimento oltre il bordo della pagina. Ora è possibile creare effetti simili anche nelle applicazioni.
- Le biblioteche 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 l'aggiornamento di singoli componenti di sistema senza dover 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 forniti dal 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 sono distribuiti tramite Google Play.
- È stata semplificata la fase di test e debug delle nuove funzionalità della piattaforma. Ora è possibile attivare selettivamente le modifiche per le applicazioni nella sezione delle impostazioni per sviluppatori o tramite l'utilità adb.

- È stato aggiunto un API che consente all'applicazione di rinunciare alle autorizzazioni precedentemente ottenute. Ad esempio, se in una nuova versione la necessità di alcune autorizzazioni avanzate viene meno, il programma, nel rispetto della privacy dell'utente, può revocare i diritti ottenuti in precedenza.
- È stata fornita la possibilità di registrare gestori di operazioni broadcast non di sistema (BroadcastReceiver) legati al contesto del loro utilizzo. 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 font vettoriali colorati in formato COLRv1 (sottoinsieme dei font OpenType, che contiene, oltre ai glifi vettoriali, uno strato con informazioni sul colore). È stato anche incluso un nuovo set di emoji multicolore fornito in formato COLRv1. Questo nuovo formato offre una forma compatta di archiviazione, supporta gradienti, sovrapposizioni e trasformazioni, garantendo un'efficace compressione e consentendo il riutilizzo dei contorni, il che può ridurre significativamente la dimensione del font. Ad esempio, il font Noto Color Emoji in rappresentazione raster occupa 9MB, mentre nel formato vettoriale COLRv1 solo 1,85MB.

- Nell'ambiente di esecuzione delle applicazioni ART è stato implementato un garbage collector più efficiente, basato sull'uso delle 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 assicura costi fissi per ogni oggetto caricato, consuma meno memoria e riduce il codice compilato di circa il 10%. L'uso del nuovo garbage collector consente anche di prolungare il tempo di autonomia, eliminare i blocchi durante la raccolta dei rifiuti e proteggere le applicazioni dalla chiusura forzata in caso di mancata disponibilità di memoria nel sistema.
In ART, la performance di switching tra codice nativo e viceversa è notevolmente migliorata: le chiamate JNI ora vengono eseguite fino a 2,5 volte più velocemente. Il codice per l'elaborazione dei riferimenti è stato convertito in modalità non bloccante per ridurre i rallentamenti. È stato aggiunto l'API Reference.refersTo(), che può essere utilizzato per un recupero della memoria più rapido. Nel'interprete, la ricerca di classi e metodi è stata accelerata. È stata anche implementata la verifica del bytecode durante l'installazione, anziché durante l'esecuzione, riducendo così 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 tradizionale, la nuova tecnologia consente anche di passare tra diverse modalità d'uso per raggiungere un rapporto ottimale 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 porta USB.
- Per le applicazioni che generano chiavi, l'API Keystore e KeyMint ora offrono indicatori di errore più dettagliati e precisi e consentono di utilizzare le eccezioni java.security.ProviderException per gestire gli errori.
- In AudioManager è stata aggiunta l'API per la gestione del suono, che consente di determinare come verrà elaborato il flusso audio. È stato aggiunto il metodo getAudioDevicesForAttributes() per ottenere un elenco dei dispositivi attraverso i quali è possibile riprodurre il suono, così come il metodo getDirectProfilesForAttributes() per determinare la possibilità di riproduzione diretta dei flussi audio.
Fonte: opennet.ru













