Uscita della piattaforma mobile Android 17

Google ha pubblicato il rilascio della piattaforma mobile open source Android 17. I codici sorgenti relativi a questa nuova versione sono disponibili nel repository Git del progetto (branch android-17.0.0_r1). Le build del firmware sono state preparate per i dispositivi Pixel 6/6a/6 Pro, Pixel 7/7a/7 Pro, Pixel 8/8a/8 Pro, Pixel 9/9a/9 Pro/9 Pro XL/9 Pro Fold, Pixel 10/10 Pro/10 Pro XL/10 Pro Fold, Pixel Fold e Pixel Tablet. Le build preliminari del firmware sono disponibili per i dispositivi HONOR, iQOO, Lenovo, OnePlus, OPPO, realme, Sharp, vivo e Xiaomi. Durante il processo vengono create build universali GSI (Generic System Images), adatte a vari dispositivi basati su architetture ARM64 e x86_64.

Tra le modifiche (1, 2, 3):

  • È stata aggiunta una nuova modalità di lavoro multi-finestra chiamata «Bubbles», che consente di avviare qualsiasi applicazione in finestre flottanti simili alle notifiche per l'invio di messaggi («bolle»), ma non legate a un'API specializzata. L'apertura dell'applicazione in una finestra flottante avviene mediante una pressione prolungata sull'icona dell'app. Sugli schermi più grandi, le icone delle finestre flottanti vengono visualizzate in un'area separata della barra delle applicazioni. Queste finestre possono essere raggruppate, spostate e fissate sullo schermo.

  • È proseguito lo sviluppo della piattaforma per dispositivi con schermi grandi, come tablet, laptop, sistemi desktop e smartphone con schermi pieghevoli. Sono state rimosse le opzioni precedentemente disponibili per disabilitare il nuovo comportamento sui dispositivi con schermi larghi più di 600 pixel condizionati (dp), relativo all'ignorare alcune API per gestire le modifiche di dimensione e orientamento dello schermo (screenOrientation, resizeableActivity, [min|max]AspectRatio), oltre al posizionamento adattivo delle applicazioni in finestre che consentono di essere ridimensionate e spostate sullo schermo.

  • È stato aggiunto un API di sistema, EyeDropper API, attraverso il quale un'applicazione può ottenere informazioni sul colore di qualsiasi pixel sullo schermo senza la necessità di ottenere autorizzazioni per acquisire lo schermo. La sicurezza è garantita dal fatto che l'utente stesso sceglie l'area per determinare il colore tramite un'interfaccia piattaforma controllata con un «pipetta», non sotto il controllo dell'app, quindi l'app non può richiedere informazioni su un pixel specifico e ricreare il contenuto dello schermo pixel per pixel.

  • È stata aggiunta un'interfaccia di sistema per la selezione dei contatti dalla rubrica, a cui si accede ottenendo il permesso ACTION_PICK_CONTACTS. L'interfaccia consente di evitare di fornire il permesso READ_CONTACTS, che permette di leggere tutti i dati di contatto. Quando viene attivata la nuova interfaccia, l'utente decide quali informazioni della rubrica trasferire all'applicazione con la possibilità di scegliere solo determinati campi.

  • È stata aggiunta l'API PhotoPickerUiCustomizationParams per modificare l'interfaccia di selezione delle foto, permettendo di avvicinarla allo stile dell'applicazione chiamante. Ad esempio, è possibile modificare il rapporto di aspetto delle anteprime delle foto da 1:1 (quadrato) a 9:16 (ritratto).

  • È stato aggiunto il permesso USE_LOCATION_BUTTON, che consente di integrare nell'interfaccia dell'applicazione un pulsante di sistema per fornire accesso ai dati di localizzazione precisi. Il pulsante è disegnato dal sistema e, dopo che l'utente fa clic, apre l'accesso alla posizione solo per la durata della sessione corrente.

  • È stata aggiunta un'impostazione che consente di nascondere i nomi delle applicazioni sotto le loro icone.
  • È stata modificata l'estetica della barra degli strumenti per la registrazione dei video.

  • È stato aggiunto il supporto per le reazioni sullo schermo (Screen Reactions), che combinano la registrazione video con la fotocamera frontale e la creazione di uno screencast per sovrapporre i propri commenti alle azioni sullo schermo.

  • È stata aggiunta una modalità per giochi su dispositivi con schermi pieghevoli, in cui una metà dello schermo pieghevole viene utilizzata per visualizzare il gameplay, mentre l'altra serve per un controller virtuale.

  • È stata aggiunta l'API Handoff, che consente di trasferire lo stato dell'applicazione a un altro dispositivo Android nelle vicinanze (ad esempio, un tablet) e continuare a lavorarci.

  • Sono state implementate finestre fissate interattive, che a differenza delle tradizionali finestre in modalità 'picture-in-picture' (Picture-in-Picture) rimangono interattive quando fissate sopra altre applicazioni in modalità desktop.
  • Sono state aggiunte due nuove API: API UWB DL-TDOA — determinazione della posizione del dispositivo all'interno di un edificio utilizzando Wi-Fi per la navigazione interna; API Proximity Detection per rilevare i dispositivi nelle vicinanze tramite Wi-Fi.
  • Aggiunta la compatibilità con il formato video VVC (Versatile Video Coding), noto anche come standard di compressione video H.266, sviluppato congiuntamente dai gruppi di lavoro MPEG (ISO/IEC JTC 1) e VCEG (ITU-T), con la partecipazione di aziende come Apple, Ericsson, Intel, Huawei, Microsoft, Qualcomm e Sony. H.266 sostituisce H.265 (HEVC) e garantisce un'elevata efficienza nella trasmissione e memorizzazione di tutte le risoluzioni dello schermo (da SD e HD a 4K e 8K), supporta video con gamma dinamica estesa (HDR, High Dynamic Range) e video panoramico a 360 gradi.
  • Aggiunta la possibilità di registrare video con un livello di qualità costante. La modalità è configurabile nell'oggetto MediaRecorder, utilizzando il metodo setVideoEncodingQuality(), che consente di fissare il livello di qualità senza legarlo al bitrate.
  • Aggiunta la compatibilità con il formato di immagini RAW14, utilizzato nelle fotocamere digitali professionali e che garantisce la memorizzazione di 15 bit per canale colore.
  • Aggiunta la compatibilità con il formato video HDR Eclipsa.
  • Aggiunto un codificatore software per il formato audio HE-AAC (High-Efficiency Advanced Audio Coding), che supporta sia bitrate bassi che alti.
  • Aggiunto un nuovo permesso ACCESS_LOCAL_NETWORK per limitare l'accesso delle applicazioni alla rete locale. La presenza di questo permesso consente alle applicazioni di identificare e connettersi ai dispositivi nella rete locale, ad esempio, ai dispositivi di smart home e ai sistemi multimediali. Il permesso è stato aggiunto per bloccare la scansione delle risorse nella rete locale da parte di applicazioni dannose, ad esempio, per identificare in modo furtivo l'ambiente dell'utente.
  • Espansa la protezione contro l'acquisizione di codici OTP (One-Time Password) e codici di verifica inviati tramite SMS. L'accesso diretto a tali messaggi è ora consentito alla maggior parte delle applicazioni solo tre ore dopo il ricevimento del messaggio. Nell'app standard per la lettura degli SMS, tali messaggi vengono visualizzati immediatamente.
  • Implementata la protezione contro le chiamate di truffatori che si spacciano per dipendenti bancari. La piattaforma può interagire con le applicazioni bancarie installate per confermare che la chiamata sia stata avviata dalla banca. Inoltre, le banche possono identificare i numeri telefonici da cui sono consentite solo chiamate in ingresso.
  • È stata aggiunta la possibilità di fornire alle applicazioni accesso temporaneo ai dati sulla posizione esatta, valido solo durante la sessione attuale di utilizzo del programma.
  • Il meccanismo di protezione per il caricamento dinamico del codice (DCL, Dynamic Code Loading) è stato esteso per essere applicato a librerie native caricate tramite il metodo System.load(), e non solo
    a file in formato DEX e JAR. La DCL consente di evitare l'inserimento di codice dannoso nei file eseguibili caricati dinamicamente, grazie all'assegnazione a tali file di diritti di accesso che consentono solo la lettura.
  • È stato attivato di default il meccanismo di Certificate Transparency, che mantiene un registro pubblico di tutti i certificati emessi e revocati,
  • È stata fornita la possibilità di firmare pacchetti APK con una firma digitale basata su un algoritmo ibrido, che combina un algoritmo classico con un algoritmo ML-DSA, resistente alla forza bruta su computer quantistici.
  • Per le applicazioni che funzionano in background, l'accesso alle API per la riproduzione audio, la connessione a dispositivi audio e la modifica del volume è stato limitato. Si presuppone che solo le applicazioni attive, con cui l'utente sta attualmente interagendo, possano avviare la riproduzione e modificare il volume.
  • È stata aggiunta la supporto per la crittografia ibrida basata sul meccanismo HPKE (Hybrid Public Key Encryption, RFC 9180), che combina la semplicità della trasmissione delle chiavi nella crittografia a chiave pubblica con l'elevata efficienza della crittografia simmetrica (i dati sono crittografati con una chiave simmetrica veloce, mentre la chiave stessa è crittografata con un algoritmo asimmetrico più lento).
  • Quando si inseriscono password e codici PIN utilizzando una tastiera fisica, la visualizzazione dell'ultimo carattere inserito viene disabilitata per impostazione predefinita durante la digitazione.
  • Per semplificare l'implementazione del supporto per i touchpad nei giochi, è stata unificata la gestione degli eventi del mouse e del touchpad: per impostazione predefinita, gli eventi del touchpad relativi al movimento del puntatore e alle gesture di scorrimento ora vengono convertiti in formato con coordinate relative, come per il mouse. L'accesso alle coordinate assolute è fornito solo quando viene esplicitamente indicato il modo POINTER_CAPTURE_MODE_ABSOLUTE.
  • Nell'oggetto ChooserSession è stato aggiunto il metodo getInitialRestingBounds(), che consente di conoscere la posizione finale e le dimensioni della finestra di dialogo di scelta (Chooser) dopo la fine dell'animazione e il caricamento dei dati.
  • Sono stati aggiunti i metodi getStreamingAppMaxDownlinkKbps e getStreamingAppMaxUplinkKbps per determinare la massima larghezza di banda del canale di comunicazione al fine di scegliere il livello di qualità durante lo streaming.
  • Agli sviluppatori di hardware è stato fornito un API per creare estensioni per le telecamere, consentendo di utilizzare nelle applicazioni funzionalità specifiche, come il meccanismo di miglioramento della nitidezza Super Resolution, modalità di riduzione del rumore e ottimizzatori di qualità AI.
  • Aggiunto un API per ottenere informazioni sul tipo di telecamera (telecamera integrata, webcam USB o telecamera virtuale).
  • Aggiunta la compatibilità per gli apparecchi acustici connessi tramite interfaccia Bluetooth Low Energy (BLE). Questi dispositivi sono stati classificati nella nuova categoria TYPE_BLE_HEARING_AID, che consente alle applicazioni di distinguere tra apparecchi acustici e cuffie, gestendo separatamente la riproduzione dei suoni di sistema (ad esempio, è possibile riprodurre suoni di notifiche, chiamate e allarmi sullo speaker integrato del telefono e non sull'apparecchio acustico).
  • Aggiunte impostazioni separate per attivare la visualizzazione della password inserita sulla tastiera fisica e sul touchscreen. Di default, i caratteri della password inseriti tramite la tastiera fisica vengono immediatamente nascosti.
  • Migliorata la visualizzazione dei widget delle applicazioni su schermi esterni, tenendo conto delle differenze di DPI durante la scalatura.
  • Aggiunto il comando ACTION_VPN_APP_EXCLUSION_SETTINGS, che permette di aprire la schermata di sistema con le impostazioni per consentire l'accesso alla rete all'applicazione in bypass VPN-tunnel.
  • Aggiunta la compatibilità con le funzionalità del linguaggio e delle classi Java disponibili in OpenJDK 25.
  • Ampliate le funzionalità delle interfacce software per lavorare con la telecamera. Nell'oggetto CameraCaptureSession è stato aggiunto il metodo updateOutputConfigurations() per allegare o disconnettere al volo le aree di output senza dover riconfigurare l'intero sessione di cattura dei dati dalla telecamera. Nella pratica, la modifica consente di implementare un passaggio fluido tra diversi modi di operare della telecamera (ad esempio, registrazione video e scatto di fotografie). Durante l'uso di telecamere logiche che coprono più sensori fisici, è stata aggiunta la possibilità di ottenere metadati su ciascun sensore, e non solo sul primario.
  • L'attributo android:usesCleartextTraffic, che consentiva all'applicazione di trasmettere traffico non crittografato, come richieste su «http://», è stato dichiarato obsoleto. Se è necessario utilizzare traffico non crittografato, è consigliabile utilizzare file separati con impostazioni di sicurezza.
  • Sono state aggiunte impostazioni per gestire la cronologia delle chiamate VoIP, permettendo di controllare il salvataggio delle informazioni nei registri e la visualizzazione nell'interfaccia delle informazioni sulle chiamate effettuate.
  • Nell'API Wi-Fi RTT (Round-Trip-Time) sono state ampliate le possibilità di definire continuamente la distanza approssimativa dai punti di accesso e di identificare i nodi in modo sicuro per le connessioni P2P (peer-to-peer).
  • Nel CompanionDeviceManager sono stati aggiunti nuovi profili per richiedere autorizzazioni e interagire con dispositivi medici e fitness tracker.
  • Nel Android Runtime (ART) è stato implementato un raccoglitore di memoria generazionale (Generational Concurrent Mark-Compact Garbage Collector), che utilizza un'elaborazione separata per oggetti 'vecchi' e 'giovani', aumentando l'efficienza nella pulizia degli oggetti recentemente creati con breve durata. L'uso del raccoglitore di memoria generazionale riduce il rischio di pause durante l'allocazione delle risorse e diminuisce il carico sulla CPU, aumentando l'efficienza del consumo energetico.
  • È stato implementato un limite alla quantità massima di memoria RAM che un'applicazione può occupare. Se il limite, calcolato sulla base della RAM disponibile nel dispositivo, viene superato, l'applicazione si chiude forzatamente. Per ridurre la dimensione della memoria utilizzata è stato proposto l'ottimizzatore R8, che comprime i nomi delle classi, dei metodi e dei campi, oltre a rimuovere codice e risorse non utilizzati.
  • Nella build del kernel Linux è stata attivata l'ottimizzazione AutoFDO (Auto-Feedback-Directed Optimization), che utilizza i risultati del profiling con informazioni sulla frequenza di esecuzione di diverse porzioni di codice per migliorare le prestazioni delle operazioni frequentemente eseguite. Nei test condotti, l'attivazione di AutoFDO per il kernel ha portato a una riduzione del tempo di avvio del 2,1%, a un'accelerazione del primo avvio delle applicazioni del 4,3%, a un aumento dell'efficienza delle chiamate di sistema del 9,3%, a una riduzione del tempo di esecuzione delle transazioni mmap di Binder del 12,3%, HwBinder del 20% e Binder RPC del 21,7%.
  • È stata proposta una nuova implementazione della coda dei messaggi android.os.MessageQueue, che funziona senza blocchi. La nuova implementazione consente di migliorare le prestazioni e ridurre la perdita di fotogrammi.
  • Non è consentito alle app che dichiarano di supportare Android 17 e versioni successive modificare i valori dei campi contrassegnati come «static final», consentendo così di attivare ottimizzazioni delle prestazioni più aggressive in fase di esecuzione.
  • Per ridurre il consumo di memoria, è stato limitato il dimensionamento dei layout personalizzati delle notifiche (notification view).
  • Nel profiler ProfilingManager sono stati aggiunti trigger aggiuntivi TRIGGER_TYPE_COLD_START, TRIGGER_TYPE_OOM e TRIGGER_TYPE_KILL_EXCESSIVE_CPU_USAGE per raccogliere dati utili nella risoluzione dei problemi di prestazioni.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster