Android 10 per sviluppatori

Android 10 è incentrato su tre temi importanti. Innanzitutto, Android 10 è all'avanguardia nell'innovazione mobile con il machine learning avanzato e il supporto di 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 per il 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 all'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 app per dispositivi pieghevoli, puoi configurare un emulatore di dispositivo pieghevole come dispositivo virtuale (AVD) in Android Studio. Per maggiori dettagli su come ottimizzare le tue app per i pieghevoli, consulta la guida per gli sviluppatori.

Reti 5G

Il 5G promette di offrire velocità costantemente più elevate e latenza inferiore. Android 10 aggiunge il supporto della piattaforma per il 5G ed estende le API esistenti 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 e le azioni rapide fornite dal sistema vengono inserite direttamente nelle notifiche per impostazione predefinita. Se vuoi, puoi comunque fornire le tue risposte e azioni. Basta disattivare Risposta rapida per ogni notifica utilizzando 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, l'interfaccia utente del 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 nuova funzionalità tema scuro forzato che consente al sistema di creare dinamicamente una versione scura dal tema esistente. Potresti anche voler sfruttare la funzionalità DayNight di AppCompat per offrire un tema scuro agli utenti con versioni precedenti di Android. Per scoprire di più, consulta la guida per gli sviluppatori.

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 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, l'app deve essere visualizzata edge-to-edge, disegnando dietro la barra di navigazione per creare un'esperienza immersiva. Per implementare questa funzionalità, le app devono utilizzare l'API setSystemUiVisibility() per essere visualizzate a schermo intero e poi gestire WindowInsets in modo appropriato per garantire che parti importanti della UI non vengano oscurate. Inizia a ottimizzare la tua app oggi stesso e consulta la nostra serie di blog post per ulteriori informazioni.

Riquadri delle impostazioni

Ora puoi mostrare le impostazioni di sistema principali direttamente nel contesto della tua app, tramite una nuova 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 potrebbe mostrare un riquadro con impostazioni di connettività come Modalità aereo, Wi-Fi (incluse le reti nelle vicinanze) e Dati mobili. Per visualizzare un riquadro delle impostazioni, basta attivare un intent con una delle nuove 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 le app e utilizzano la stessa API ShortcutInfo. L'API è supportata anche nella libreria AndroidX ShareTarget. Per i dettagli, consulta l'app di esempio.

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. Consulta le modifiche alla privacy per informazioni dettagliate su come supportarle nelle tue app.

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 grazie a una nuova opzione di autorizzazione. Ora possono consentire 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 scoprire di più sulle modifiche alla posizione, consulta la guida per gli sviluppatori o il nostro blog post.

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 del dispositivo, il numero di serie e identificatori simili. Per impostazione predefinita, anche l'indirizzo MAC del dispositivo viene randomizzato quando è connesso a reti Wi-Fi. Leggi le best practice per scegliere gli identificatori giusti per il tuo caso d'uso e consulta i dettagli qui.

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 loro sandbox private, ma devono utilizzare MediaStore per accedere ai file multimediali condivisi e il selettore file di sistema per accedere ai file condivisi nella nuova raccolta Download. Scopri di più qui.

Blocco delle interruzioni indesiderate: Android 10 impedisce l'avvio di app in background che passano inaspettatamente in primo piano e sottraggono l'attenzione da un'altra app. Scopri di più qui.

Sicurezza

Android 10 introduce una serie di funzionalità che aumentano la sicurezza degli utenti grazie ai progressi nella crittografia, nel rafforzamento della piattaforma e nell'autenticazione. Scopri di più sugli aggiornamenti della sicurezza di Android 10 qui.

Crittografia dello spazio di archiviazione: tutti i dispositivi compatibili lanciati con Android 10 devono crittografare i dati utente e, per rendere più efficiente questa operazione, Android 10 include Adiantum, la nostra nuova 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 di diverse 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 un'alternativa più leggera per le transazioni con autenticazione passiva. Android 10 migliora anche il fallback per le credenziali del dispositivo, se necessario. Scopri di più qui.

Fotocamera e contenuti multimediali

Profondità di campo dinamica per le foto

Ora 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. Queste API ti consentono di offrire opzioni di sfocatura e bokeh specializzate nella tua app. La profondità di campo dinamica è un formato aperto per l'ecosistema e stiamo collaborando con i nostri partner per renderlo disponibile sui dispositivi con Android 10 e versioni successive.

Con l'immagine di profondità di campo dinamica puoi offrire opzioni di sfocatura e bokeh specializzate nella tua app.

Acquisizione della riproduzione audio

Ora qualsiasi app che riproduce audio può consentire ad altre app di acquisire il suo stream audio utilizzando una nuova API di acquisizione della riproduzione audio. Oltre ad attivare i sottotitoli codificati e i sottotitoli, l'API ti consente di supportare casi d'uso comuni come i giochi in live streaming. Abbiamo creato questa nuova funzionalità tenendo conto della privacy e della protezione del copyright, pertanto 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. Scopri di più in questo blog post.

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 utilizzando Opus, un codec aperto ed esente da royalty ottimizzato per lo streaming di voce e musica, e HDR10+ per i 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 registra 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 e un suggerimento 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

Abbiamo rifattorizzato 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 Network Suggestion consentono alle app di mostrare all'utente le reti Wi-Fi preferite per la connettività a internet.

Modalità Prestazioni Wi-Fi

Ora le app possono richiedere il Wi-Fi adattivo attivando le modalità ad alte prestazioni e a bassa latenza. Questo può 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 nuove modalità Prestazioni, chiama WifiManager.WifiLock.createWifiLock() con WIFI_MODE_FULL_LOW_LATENCY o WIFI_MODE_FULL_HIGH_PERF. In queste modalità, la piattaforma collabora con il firmware del dispositivo per soddisfare il requisito con il consumo energetico più basso.

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

Abbiamo aggiunto 60 nuove operazioni, tra cui ARGMAX, ARGMIN, 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 dell'immagine. Stiamo collaborando con i fornitori di hardware e con i framework di machine learning più diffusi, come TensorFlow, per ottimizzare e implementare il supporto per NNAPI 1.2.

API Thermal

Quando i dispositivi si surriscaldano, potrebbero limitare la CPU e/o la GPU, il che può influire su app e giochi in modi imprevisti. Ora, 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/velocità in bit o il traffico di rete, un'app della fotocamera potrebbe disattivare il flash o il miglioramento intensivo delle immagini, mentre un gioco potrebbe ridurre la frequenza fotogrammi o la tassellatura dei poligoni. Scopri di più qui.

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 attualmente è limitata, puoi richiedere una nuova API pubblica per l'interfaccia. Per aiutarti a effettuare la transizione ed evitare che le tue app smettano di funzionare, attiveremo le limitazioni solo quando la tua app ha come target Android 10 (API 29). Per maggiori dettagli sulle limitazioni, consulta la guida per gli sviluppatori.

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 chip. 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 (ufficialmente chiamato aggiornamenti di sistema Google Play), la nostra nuova 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, siamo in grado di 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, ci aspettiamo che questi aggiornamenti di Android 10 contribuiscano a migliorare la coerenza dell'implementazione della piattaforma su tutti i dispositivi e, nel tempo, a portare una maggiore uniformità che ridurrà i costi di sviluppo e test.

Inizia

Per risorse complete per gli sviluppatori per Android 10, visita la pagina developer.android.com/10.