L'azienda Google ha presentato la seconda versione beta della piattaforma mobile open source Android 12. Il rilascio di Android 12 è previsto per il terzo trimestre del 2021. Per valutare le nuove funzionalità della piattaforma, è stato proposto un programma di test preliminare. Le versioni del firmware sono state preparate per i dispositivi Pixel 3 / 3 XL, Pixel 3a / 3a XL, Pixel 4 / 4 XL, Pixel 4a / 4a 5G e Pixel 5. A coloro che hanno installato il primo rilascio beta è stato fornito un aggiornamento OTA.
Novità principali di Android 12:
- È stata aggiunta la possibilità di adattare gli elementi dell'interfaccia ai dispositivi con schermi arrotondati. Gli sviluppatori ora possono ottenere informazioni sui raggi degli angoli dello schermo e correggere gli elementi dell'interfaccia che si trovano in aree angolari invisibili. Attraverso il nuovo API RoundedCorner è possibile conoscere parametri come raggio e centro di arrotondamento, e tramite Display.getRoundedCorner() e WindowInsets.getRoundedCorner() è possibile determinare le coordinate di ciascun angolo arrotondato dello schermo.

- È stata migliorata la modalità "immagine nell'immagine" (PIP, Picture in Picture) e aumentata la fluidità degli effetti di transizione. Se si attiva il passaggio automatico a PIP con il gesto up-to-home (slittamento della parte inferiore dello schermo verso l'alto), l'applicazione ora passa immediatamente alla modalità PIP, senza attendere il completamento dell'animazione. È migliorato il ridimensionamento delle finestre PIP con contenuti diversi dai video. È stata aggiunta la possibilità di nascondere la finestra PIP trascinandola verso il bordo sinistro o destro dello schermo. È stato modificato il comportamento al tocco della finestra PIP: un tocco ora provoca la visualizzazione dei pulsanti di controllo, mentre un doppio tocco cambia le dimensioni della finestra.
- È stato aggiunto un nuovo API CompanionDeviceService, che consente di attivare applicazioni che gestiscono dispositivi accessori come orologi intelligenti e fitness tracker. Questa API risolve il problema dell'avvio e della connessione delle applicazioni necessarie quando un dispositivo accessorio si trova nelle vicinanze. Il sistema attiva il servizio quando rileva un dispositivo vicino e invia una notifica quando il dispositivo si disconnette o entra e esce dall'area di visibilità. Le applicazioni possono anche utilizzare il nuovo profilo dei dispositivi accessori per semplificare la configurazione dei permessi per il collegamento al dispositivo.
- È stato migliorato il sistema di previsione della banda. Le applicazioni ora possono richiedere informazioni sulla banda totale prevista in relazione all'operatore, a una rete wireless specifica (SSID Wi-Fi), al tipo di rete e al livello del segnale.
- È stato semplificato l'utilizzo di effetti visivi tipici, come sfocatura e distorsione dei colori, che ora possono essere applicati tramite l'API RenderEffect a qualsiasi oggetto RenderNode o all'intera area visibile, anche in combinazione con altri effetti. Questa funzionalità consente, ad esempio, di sfocare un'immagine mostrata tramite ImageView, senza una copia esplicita, trattamento e sostituzione del bitmap, delegando queste operazioni alla piattaforma. È stato inoltre proposto l'API Window.setBackgroundBlurRadius(), tramite il quale è possibile sfocare lo sfondo di una finestra con effetto vetro smerigliato e evidenziare la profondità attraverso la sfocatura dello spazio circostante alla finestra.

- Sono stati integrati strumenti per la ricodifica di flussi multimediali, utilizzabili in ambienti con applicazioni per fotocamere, che salvano video in formato HEVC, per garantire la compatibilità con applicazioni che non supportano questo formato. Per tali applicazioni è stata aggiunta una funzione di ricodifica automatica in un formato più comune AVC.
- È stato aggiunto il supporto per il formato delle immagini AVIF (AV1 Image Format), che utilizza tecnologie di compressione intra-frame dal formato di codifica video AV1. Il contenitore per la distribuzione dei dati compressi in AVIF è completamente analogo a HEIF. AVIF supporta sia immagini in HDR (High Dynamic Range) e spazi colore Wide-gamut, sia in gamma dinamica standard (SDR).
- Per prevenire potenziali problemi di prestazioni, alle applicazioni è vietato avviare servizi prioritari (foreground service) durante il funzionamento in background, ad eccezione di alcuni casi speciali. Si raccomanda di utilizzare WorkManager per avviare operazioni mentre si è in background. Per semplificare il passaggio, è stato proposto un nuovo tipo di operazione in JobScheduler, che viene avviata immediatamente, ha una priorità aumentata e accesso alla rete.
- È stata proposta un'API unificata OnReceiveContentListener per l'inserimento e il trasferimento tra applicazioni di contenuti avanzati (testo formattato, immagini, video, file audio, ecc.), utilizzando varie fonti di dati, inclusi gli appunti, la tastiera e l'interfaccia drag&drop.
- È stato aggiunto un effetto di feedback tattile realizzabile tramite il vibromotore integrato nei telefoni, la cui frequenza e intensità di vibrazione dipendono dai parametri del suono in uscita al momento. Questo nuovo effetto consente di percepire fisicamente il suono e può essere applicato per aggiungere ulteriore realismo a giochi e applicazioni audio.
- In modalità immersiva (Immersive mode), in cui il programma viene visualizzato a schermo intero nascondendo le barre di servizio, è stata semplificata la navigazione tramite gesti di controllo. Ad esempio, nelle applicazioni di lettura di libri, visione di video e lavoro con fotografie ora è possibile spostarsi con un singolo gesto di scorrimento.
- È stata aggiornata l'interfaccia di visualizzazione delle notifiche, rendendola più semplice e funzionale. Inoltre, gli effetti di animazione e transizione sono stati aggiornati e resi più fluidi. Le notifiche sono state uniformate con i contenuti specificati dall'applicazione.
- È stata aumentata la reattività e la velocità di risposta durante l'interazione con le notifiche. Ad esempio, toccando una notifica ora avviene un passaggio immediato all'applicazione correlata. Negli app, è limitato l'uso dei gestori intermedi delle notifiche (notification trampoline).
- È stata ottimizzata la chiamata IPC in Binder. Grazie all'applicazione di una nuova strategia di caching e alla risoluzione dei conflitti durante il blocco, si è riusciti a ridurre significativamente i ritardi. In generale, le prestazioni delle chiamate Binder sono aumentate di circa il doppio, ma in alcuni settori si è riusciti a ottenere un'accelerazione ancora più consistente. Ad esempio, la chiamata a refContentProvider() è diventata più veloce di 47 volte, releaseWakeLock() di 15 volte e JobScheduler.schedule() di 7,9 volte.
- 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 in aggiunta ai 22 moduli disponibili in Android 11. 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 ART (Android Runtime) e un modulo per la ricodifica video.
- Sicurezza e riservatezza.
- Gli sviluppatori di applicazioni hanno la possibilità di disattivare le finestre pop-up con avvisi che coprono il contenuto. In precedenza, la possibilità di generare finestre sovrapposte era regolata da una richiesta di autorizzazione, confermata durante l'installazione delle applicazioni che generano finestre sovrapposte. Non erano disponibili strumenti per influenzare la sovrapposizione del contenuto delle applicazioni le cui finestre venivano sovrapposte. Utilizzando il metodo Window#setHideOverlayWindows(), tutte le finestre che coprono il contenuto ora verranno nascoste automaticamente. Ad esempio, il nascondimento può essere attivato quando viene visualizzata un'informazione particolarmente importante, come la conferma di una transazione.
- Le applicazioni hanno ora ulteriori impostazioni per limitare le operazioni con le notifiche durante il blocco dello schermo. In precedenza, era possibile solo gestire la visibilità delle notifiche durante il blocco dello schermo, mentre ora è possibile attivare l'autenticazione obbligatoria per eseguire qualsiasi azione con le notifiche durante il blocco dello schermo. Ad esempio, un'app di messaggistica può richiedere l'autenticazione prima di eliminare un messaggio o contrassegnarlo come letto.
- È stato aggiunto l'API PackageManager.requestChecksums() per richiedere e controllare il checksum dell'applicazione installata. Sono supportati algoritmi come SHA256, SHA512 e Merkle Root.
- Nel motore web WebView è stata implementata la possibilità di utilizzare l'attributo SameSite per gestire il trattamento dei cookie. Il valore "SameSite=Lax" limita l'invio dei cookie per le subrichieste cross-site, come la richiesta di immagini o il caricamento di contenuti tramite iframe da un altro sito. In modalità "SameSite=Strict", i cookie non vengono inviati per nessun tipo di richiesta cross-site, incluse tutte le link in ingresso da siti esterni.
- Continua il lavoro sulla randomizzazione degli indirizzi MAC per escludere la possibilità di tracciare il dispositivo quando si connette a una rete wireless. Per le applicazioni non privilegiate, l'accesso all'indirizzo MAC del dispositivo è limitato e, quando viene chiamata la funzione getHardwareAddress(), ora viene restituito un valore vuoto.
Fonte: opennet.ru


