Android 10 è incentrato su tre temi importanti. Innanzitutto, Android 10 è all'avanguardia nell'innovazione mobile con machine learning avanzato e supporto per dispositivi emergenti come i pieghevoli e gli smartphone abilitati per il 5G. Inoltre, Android 10 si concentra principalmente su privacy e sicurezza, con quasi 50 funzionalità che offrono agli utenti maggiore protezione, trasparenza e controllo. Infine, Android 10 espande i controlli del benessere digitale degli utenti in modo che singoli individui e famiglie possano trovare un migliore equilibrio con la tecnologia.
Ecco un'analisi di ciò che Android 10 offre agli sviluppatori e di come puoi utilizzarlo oggi.
Innovazione e nuove esperienze
Con Android 10 puoi sfruttare le ultime innovazioni hardware e software per creare esperienze con l'app straordinarie per gli utenti.
Con Android 10 puoi ottimizzare le tue app per i pieghevoli e altri dispositivi con schermi di grandi dimensioni.
Pieghevoli
Basandosi su un solido supporto Multi-finestra, Android 10 estende il multitasking alle finestre delle app e fornisce la continuità dello schermo per mantenere lo stato dell'app quando il dispositivo viene piegato o aperto. Android 10 aggiunge una serie di miglioramenti in
onResume() e
onPause() per supportare
la ripresa multipla e inviare una notifica alla tua app quando è attiva. Inoltre, modifica il funzionamento dell'attributo manifest resizeableActivity per aiutarti a gestire la modalità di visualizzazione della tua app su schermi pieghevoli e di grandi dimensioni. Per aiutarti
a creare per i dispositivi pieghevoli, puoi configurare un emulatore di dispositivi pieghevoli come dispositivo virtuale (AVD) in Android Studio. Per maggiori dettagli su come ottimizzare le app per
i pieghevoli, consulta Scopri di più sui pieghevoli.
Reti 5G
Il 5G promette di offrire velocità costantemente più elevate e una latenza inferiore. Android 10
aggiunge il supporto della piattaforma per il 5G ed estende
ConnectivityManager per aiutarti
a sfruttare questi miglioramenti. Puoi utilizzare le API di connettività per rilevare se il dispositivo dispone di una connessione a larghezza di banda elevata e verificare se la connessione è a consumo. In questo modo, le tue app e i tuoi giochi possono offrire esperienze ricche e immersive
agli utenti su 5G.
Risposta rapida nelle notifiche
Android 10 utilizza il machine learning on-device per suggerire azioni contestuali nelle notifiche, come risposte rapide ai messaggi o l'apertura di una mappa per un indirizzo nella notifica. Le tue app possono usufruire subito di questa funzionalità, senza che tu debba fare nulla. Le risposte rapide e le azioni fornite dal sistema vengono inserite direttamente nelle notifiche per impostazione predefinita. Se vuoi, puoi comunque fornire le tue risposte e azioni. Per disattivare la funzionalità Risposta rapida per ogni singola notifica, utilizza setAllowGeneratedReplies() e setAllowSystemGeneratedContextualActions().
Risposta rapida può suggerire azioni in base ai contenuti delle notifiche.
Tema scuro
Android 10 aggiunge un tema scuro a livello di sistema, ideale per condizioni di scarsa illuminazione e per risparmiare batteria. Gli utenti possono attivare un nuovo tema scuro a livello di sistema andando su Impostazioni o attivando il risparmio energetico. In questo modo, la UI di sistema diventa scura e viene attivato il tema scuro delle app che lo supportano. Puoi creare un tema scuro personalizzato per la tua app o attivare una funzionalità tema scuro forzato che consente al sistema di creare dinamicamente una versione scura dal tema esistente. Puoi anche sfruttare la funzionalità DayNight di AppCompat per offrire un tema scuro agli utenti con versioni precedenti di Android. Per saperne di più, consulta la sezione Tema scuro.
Android 10 può creare un tema scuro per la tua app in modo dinamico con tema scuro forzato.
Navigazione tramite gesti
La navigazione tramite gesti offre alle app lo schermo intero per i contenuti.
Android 10 introduce una modalità di navigazione tramite gesti completa che elimina l'area della barra di navigazione e consente alle app di utilizzare lo schermo intero per offrire esperienze più ricche e coinvolgenti. Mantiene la navigazione familiare con i pulsanti Indietro, Home e Recenti tramite scorrimenti dai bordi anziché pulsanti visibili. Per integrarsi perfettamente con la navigazione tramite gesti, adotta un layout edge-to-edge, disegnando dietro la barra di navigazione per creare un'esperienza immersiva. Per implementare questa funzionalità, utilizza l'API setSystemUiVisibility() per disporre l'app a schermo intero, quindi gestisci WindowInsets in modo appropriato per assicurarti che parti importanti della UI non siano oscurate. Per saperne di più, consulta la sezione Navigazione tramite gesti e la serie di blog post sulla navigazione tramite gesti.
Riquadri delle impostazioni
Puoi mostrare le impostazioni di sistema principali direttamente nel contesto della tua app tramite un'API Settings.Panel. Un riquadro delle impostazioni è una UI mobile che richiami per mostrare le impostazioni di cui gli utenti potrebbero aver bisogno, come la connessione a internet, l'NFC e il volume dell'audio. Ad esempio, un browser può
visualizzare un riquadro con le impostazioni di connettività, come la modalità aereo, il Wi-Fi (incluse
le reti nelle vicinanze) e i dati mobili. Per visualizzare un riquadro delle impostazioni, attiva un intent con una delle azioni Settings.Panel.
Scorciatoie di condivisione
Le scorciatoie di condivisione rendono la condivisione più rapida e semplice, consentendo agli utenti di passare direttamente a un'altra app per condividere contenuti. Gli sviluppatori possono pubblicare target di condivisione che avviano un'attività specifica nelle loro app con contenuti allegati, che vengono mostrati agli utenti nell'UI di condivisione. Poiché vengono pubblicati in anticipo, la UI di condivisione si carica istantaneamente all'avvio. Le scorciatoie di condivisione sono simili alle scorciatoie per app e utilizzano la stessa API ShortcutInfo. L'API è supportata anche nella libreria AndroidX ShareTarget. Per ulteriori informazioni, consulta l'app di esempio Sharing Shortcuts.
Le scorciatoie di condivisione consentono agli utenti di passare direttamente a un'attività specifica nelle tue app con contenuti allegati.
Privacy per gli utenti
La privacy è un aspetto centrale di Android 10, dalle protezioni più efficaci nella piattaforma alle nuove funzionalità progettate tenendo conto della privacy. Sulla base delle versioni precedenti, Android 10 include modifiche estese per proteggere la privacy e offrire agli utenti un maggiore controllo, con un'interfaccia utente di sistema migliorata, autorizzazioni più rigorose e limitazioni sui dati che le app possono utilizzare. Per scoprire di più su come supportare queste modifiche nelle tue app, consulta la pagina Modifiche alla privacy.
Ora gli utenti possono scegliere di concedere l'accesso alla posizione quando l'app è in primo piano.
Offrire agli utenti un maggiore controllo sui dati sulla posizione: gli utenti hanno un maggiore controllo sui propri dati sulla posizione tramite un'opzione di autorizzazione, che consente a un'app di accedere alla posizione solo quando l'app è effettivamente in uso (in esecuzione in primo piano). Per la maggior parte delle app, questo fornisce un livello di accesso sufficiente, mentre per gli utenti rappresenta un grande miglioramento in termini di trasparenza e controllo. Per saperne di più sulle modifiche alla posizione, consulta Richiedi aggiornamenti della posizione o il blog post sulla posizione di Android for Developers.
Protezione dei dati sulla posizione nelle scansioni di rete: la maggior parte delle API per la scansione delle reti richiedeva già l'autorizzazione di accesso alla posizione approssimativa. Android 10 aumenta la protezione di queste API richiedendo invece l'autorizzazione di accesso alla posizione esatta.
Prevenzione del monitoraggio dei dispositivi: le app non possono più accedere agli identificatori dei dispositivi non reimpostabili che potrebbero essere utilizzati per il monitoraggio, inclusi l'IMEI, il numero di serie e identificatori simili del dispositivo. Anche l'indirizzo MAC del dispositivo viene randomizzato per impostazione predefinita quando è connesso alle reti Wi-Fi. Per saperne di più, consulta le best practice per gli identificatori univoci e la limitazione degli identificatori reimpostabili del dispositivo.
Protezione dei dati utente nello spazio di archiviazione esterno: Android 10 introduce una serie di modifiche per offrire agli utenti un maggiore controllo sui file nello spazio di archiviazione esterno e sui dati delle app al loro interno. Le app possono archiviare i propri file nelle sandbox private, ma devono utilizzare MediaStore per accedere ai file multimediali condivisi e il selettore file di sistema per accedere ai file condivisi nella raccolta Download. Per saperne di più, consulta Archiviazione mirata.
Blocco delle interruzioni indesiderate: Android 10 impedisce l'avvio di app in background che passano inaspettatamente in primo piano e sottraggono lo stato attivo a un'altra app. Per maggiori informazioni, consulta Avvii di attività in background.
Sicurezza
Android 10 introduce una serie di funzionalità di sicurezza che proteggono maggiormente gli utenti grazie ai progressi nella crittografia, nel rafforzamento della piattaforma e nell'autenticazione. Per ulteriori informazioni, consulta Novità relative alla sicurezza di Android Q.
Crittografia dello spazio di archiviazione: tutti i dispositivi compatibili lanciati con Android 10 devono criptare i dati utente e, per rendere più efficiente questa operazione, Android 10 include Adiantum, la nostra modalità di crittografia.
TLS 1.3 per impostazione predefinita: Android 10 attiva anche TLS 1.3 per impostazione predefinita, una revisione importante dello standard TLS con vantaggi in termini di prestazioni e sicurezza avanzata.
Protezione della piattaforma: Android 10 include anche la protezione delle aree critiche per la sicurezza della piattaforma.
Biometria migliorata: Android 10 estende il framework BiometricPrompt per supportare metodi di autenticazione passiva come il riconoscimento facciale e l'aggiunta di flussi di autenticazione impliciti ed espliciti. Nel flusso esplicito, l'utente deve confermare esplicitamente la transazione nel TEE durante l'autenticazione. Il flusso implicito è progettato come alternativa più leggera per le transazioni con autenticazione passiva.
Android 10 migliora anche il fallback per le credenziali del dispositivo, se necessario. Per saperne di più, consulta Mostra una finestra di dialogo di autenticazione biometrica.
Fotocamera e contenuti multimediali
Profondità di campo dinamica per le foto
Le app possono richiedere un'immagine con profondità di campo dinamica, che consiste in un JPEG, metadati XMP relativi agli elementi correlati alla profondità e una mappa di profondità e confidenza incorporata nello stesso file. In questo modo, puoi offrire opzioni di sfocatura e bokeh specializzate nella tua app. Profondità di campo dinamica è un formato aperto per i dispositivi con Android 10 (livello API 29) e versioni successive. Per saperne di più, consulta la specifica della profondità di campo dinamica (PDF).
Con l'immagine con profondità di campo dinamica puoi offrire opzioni di sfocatura e bokeh specializzate nella tua app.
Acquisizione della riproduzione audio
Qualsiasi app che riproduce audio può consentire ad altre app di acquisire il suo stream audio utilizzando l'API di acquisizione della riproduzione audio. Oltre ad abilitare i sottotitoli codificati e i sottotitoli, l'API ti consente di supportare casi d'uso popolari come i giochi in live streaming. Poiché questa funzionalità è stata creata tenendo conto della privacy e della protezione del copyright, la possibilità per un'app di acquisire l'audio di un'altra app è limitata, offrendo alle app il controllo completo sulla possibilità di acquisire i propri stream audio. Per saperne di più, consulta Acquisizione di audio in Android Q.
Nuovi codec audio e video
Android 10 aggiunge il supporto per il codec video open source AV1, che consente ai fornitori di contenuti multimediali di trasmettere in streaming contenuti video di alta qualità ai dispositivi Android utilizzando meno larghezza di banda. Inoltre, Android 10
supporta la codifica audio tramite
Opus, un codec aperto ed esente da royalty
ottimizzato per lo streaming di voce e musica, e
HDR10+ per video con High Dynamic Range sui dispositivi che
lo supportano. L'API MediaCodecInfo introduce un modo più semplice per determinare le funzionalità di rendering video di un dispositivo Android. Per ogni codec, puoi ottenere un elenco di dimensioni e frequenze fotogrammi supportate.
API MIDI nativa
Per le app che eseguono l'elaborazione audio in C++, Android 10 introduce un'API MIDI nativa per comunicare con i dispositivi MIDI tramite l'NDK. Questa API consente di recuperare i dati MIDI all'interno di un callback audio utilizzando una lettura non bloccante, consentendo l'elaborazione a bassa latenza dei messaggi MIDI. Fai una prova con l'app di esempio e il codice sorgente qui.
Microfoni direzionali con zoom
Android 10 ti offre un maggiore controllo sull'acquisizione audio tramite una nuova API MicrophoneDirection. Puoi utilizzare l'API per specificare una direzione preferita del microfono durante la registrazione audio. Ad esempio, quando l'utente sta registrando un video "selfie", puoi
richiedere il microfono anteriore per la registrazione
audio (se presente). Inoltre, questa API introduce un modo standardizzato per controllare i microfoni con zoom, consentendo alla tua app di avere il controllo sulla dimensione del campo di registrazione.
Vulkan ovunque
Android 10 espande l'impatto di Vulkan con la nostra implementazione dell'API multipiattaforma a basso overhead per la grafica 3D ad alte prestazioni. Vulkan 1.1 è ora un requisito per tutti i dispositivi a 64 bit con Android 10 e versioni successive ed è consigliato per tutti i dispositivi a 32 bit. Stiamo già assistendo a un notevole slancio nel supporto di Vulkan nell'ecosistema: tra i dispositivi con Android N o versioni successive, il 53% supporta Vulkan 1.0.3 o versioni successive. Con il nuovo requisito di Android 10, prevediamo un ulteriore miglioramento dell'adozione nel prossimo anno.
Connettività
Miglioramento della connettività peer-to-peer e a internet
Android 10 rifattorizza lo stack Wi-Fi per migliorare la privacy e le prestazioni, nonché per migliorare i casi d'uso comuni, come la gestione dei dispositivi IoT e i suggerimenti per le connessioni a internet, senza richiedere l'autorizzazione di accesso alla posizione. Le API di connessione di rete semplificano la gestione dei dispositivi IoT tramite Wi-Fi locale per funzioni peer-to-peer come la configurazione, il download o la stampa. Le API per i suggerimenti di rete consentono alle app di mostrare all'utente le reti Wi-Fi preferite per la connessione a internet.
Modalità Prestazioni Wi-Fi
Le app possono richiedere il Wi-Fi adattivo attivando le modalità ad alte prestazioni e a bassa latenza. Questi possono essere un grande vantaggio quando la bassa latenza è importante per l'esperienza utente, ad esempio nei giochi in tempo reale, nelle chiamate vocali attive e in casi d'uso simili. La piattaforma collabora con il firmware del dispositivo per soddisfare il requisito con il consumo energetico più basso. Per utilizzare le modalità Prestazioni, chiama
WifiManager.createWifiLock() con
WIFI_MODE_FULL_LOW_LATENCY o WIFI_MODE_FULL_HIGH_PERF.
Nozioni di base di Android
Ottimizzazioni ART
I miglioramenti apportati al runtime ART aiutano le tue app ad avviarsi più velocemente, a consumare meno memoria e a funzionare in modo più fluido, senza richiedere alcun intervento da parte tua. I profili ART forniti da Google Play consentono ad ART di precompilare parti della tua app anche prima che venga eseguita. In fase di runtime, Android 10 aggiunge la Garbage Collection generazionale al Garbage Collector Concurrent Copying (CC) di ART per rendere la Garbage Collection più efficiente in termini di tempo e CPU, ridurre i jank e aiutare le app a funzionare meglio sui dispositivi di fascia bassa.
Questo grafico mostra il miglioramento percentuale del tempo di avvio per app specifiche quando vengono testate utilizzando i profili di Play.
API Neural Networks 1.2
Android 10 aggiunge 60 operazioni, tra cui ARGMAX, ARGMIN e LSTM quantizzato, oltre a una serie di ottimizzazioni delle prestazioni. Questo pone le basi per accelerare una gamma molto più ampia di modelli, come quelli per il rilevamento di oggetti e la segmentazione delle immagini. Google collabora con i fornitori di hardware e i framework di machine learning più diffusi, come TensorFlow, per ottimizzare e fornire il supporto per NNAPI 1.2.
API Thermal
Quando i dispositivi si surriscaldano, potrebbero limitare la CPU, la GPU o entrambe, e questa limitazione può influire su app e giochi in modi imprevisti. In Android 10, le app e i giochi possono utilizzare un'API termica per monitorare le variazioni sul dispositivo e intervenire per ripristinare la temperatura normale. Ad esempio, le app di streaming possono ridurre la risoluzione, la velocità in bit o il traffico di rete, un'app della fotocamera può disattivare il flash o il miglioramento intensivo delle immagini, oppure un gioco può ridurre la frequenza fotogrammi o la tassellatura dei poligoni. Per saperne di più, consulta l'API Thermal.
Compatibilità tramite API pubbliche
Android 10 continua ad ampliare le limitazioni relative alle interfacce non SDK, in modo che le app passino gradualmente all'utilizzo esclusivo di API pubbliche. Se un'interfaccia che utilizzi è limitata, puoi richiedere un'API pubblica per quell'interfaccia. Per aiutarti a effettuare la transizione ed evitare che le tue app non funzionino, Android 10 attiva le limitazioni solo quando la tua app ha come target Android 10 (livello API 29). Per saperne di più, consulta Aggiornamenti alle limitazioni relative alle interfacce non SDK in Android 10.
Aggiornamenti più rapidi, codice più recente
Android 10 è progettato per aggiornamenti più rapidi tramite il Progetto Treble, che fornisce un'interfaccia coerente e testabile tra Android e il codice del dispositivo sottostante dei produttori di dispositivi e di silicio. Tramite Treble, i produttori di dispositivi possono portare Android 10 sui dispositivi conformi a Treble più rapidamente e a un costo inferiore.
Android 10 è anche la prima versione a supportare il progetto Mainline (chiamato ufficialmente aggiornamenti di sistema Google Play), una tecnologia per proteggere gli utenti Android e mantenere i loro dispositivi aggiornati con importanti modifiche al codice, direttamente da Google Play. Con gli aggiornamenti di sistema Google Play, Google Play può aggiornare componenti interni specifici su tutti i dispositivi con Android 10 e versioni successive, senza richiedere un aggiornamento di sistema completo da parte del produttore del dispositivo.
Per gli sviluppatori, questi aggiornamenti di Android 10 contribuiscono a garantire la coerenza dell'implementazione della piattaforma su tutti i dispositivi e, nel tempo, una maggiore uniformità che riduce i costi di sviluppo e test.
Inizia
Per risorse complete per gli sviluppatori per Android 10, visita la pagina developer.android.com/10.
