Android 10 per sviluppatori

Android 10 è basato su tre temi importanti. Innanzitutto, Android 10 sta dando forma all'avanguardia dell'innovazione mobile con machine learning avanzato e supporto di dispositivi emergenti come i pieghevoli e gli smartphone abilitati per il 5G. Inoltre, Android 10 è incentrato su privacy e sicurezza, con quasi 50 funzionalità che offrono agli utenti maggiore protezione, trasparenza e controllo. Infine, Android 10 amplia i controlli di Benessere digitale degli utenti per consentire a privati e famiglie di trovare un equilibrio migliore con la tecnologia.

Ecco cosa offre Android 10 per gli sviluppatori e come utilizzarlo oggi stesso.

Innovazione e nuove esperienze

Con Android 10 puoi sfruttare le ultime innovazioni hardware e software per creare esperienze con le app straordinarie per gli utenti.

Con Android 10 puoi ottimizzare le tue app per i dispositivi pieghevoli e altri dispositivi con schermi di grandi dimensioni.

Pieghevoli

Basandosi su un solido supporto multi-finestra, Android 10 estende il multitasking tra le finestre delle app e offre continuità dello schermo per mantenere lo stato dell'app mentre il dispositivo si piega o si apre. Android 10 aggiunge una serie di miglioramenti a onResume e onPause per supportare il multi-ripristino e notificare all'app quando ha il focus. Inoltre, modifica il funzionamento dell'attributo manifest resizeableActivity per aiutarti a gestire la visualizzazione della tua app su schermi pieghevoli e di grandi dimensioni. Per aiutarti a creare app per dispositivi pieghevoli, puoi configurare un emulatore pieghevole come dispositivo virtuale (AVD) in Android Studio. Per informazioni dettagliate su come ottimizzare le app per i dispositivi pieghevoli, consulta la guida per gli sviluppatori.

Reti 5G

Il 5G promette 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 ha una connessione ad alta larghezza di banda e verificare se la connessione è a consumo. In questo modo, le tue app e i tuoi giochi possono offrire esperienze immersive e ricche agli utenti che utilizzano il 5G.

Risposta rapida nelle notifiche

Android 10 utilizza il machine learning on-device per suggerire azioni contestuali nelle notifiche, come le risposte rapide per i messaggi o l'apertura di una mappa per un indirizzo nella notifica. Le tue app possono usufruire immediatamente di questa funzionalità senza che tu debba fare nulla. Per impostazione predefinita, le risposte rapide e le azioni fornite dal sistema vengono inserite direttamente nelle notifiche. Se vuoi, puoi comunque fornire le tue risposte e azioni. Basta disattivare Risposta rapida su base di notifica utilizzando setAllowGeneratedReplies() e setAllowSystemGeneratedContextualActions().

La funzionalità 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 tramite Impostazioni o attivando il risparmio energetico. 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à di forzamento del tema scuro che consente al sistema di creare dinamicamente una versione scura dal tema esistente. Ti consigliamo inoltre di 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 dinamicamente un tema scuro per la tua app con Force Dark.

Navigazione tramite gesti

La navigazione con i gesti offre alle app lo schermo intero per i contenuti.

Android 10 introduce una modalità di navigazione completamente gestuale che elimina l'area della barra di navigazione e consente alle app di utilizzare lo schermo intero per offrire esperienze più ricche e immersive. Mantiene la familiare navigazione Indietro, Home e Recenti tramite scorrimenti laterali anziché pulsanti visibili. Per integrarti perfettamente con la navigazione tramite gesti, devi disegnare da un lato all'altro, 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, quindi gestire WindowInsets in base alle esigenze per garantire che parti importanti dell'interfaccia utente non vengano oscurate. Inizia a ottimizzare l'app oggi stesso e consulta la serie di post del blog per ulteriori informazioni.

Pannelli delle impostazioni

Ora puoi mostrare le impostazioni di sistema principali direttamente nel contesto della tua app tramite una nuova API Riquadro Impostazioni. Un pannello delle impostazioni è un'interfaccia utente mobile che viene richiamata per mostrare le impostazioni di cui gli utenti potrebbero aver bisogno, ad esempio connettività a internet, NFC e volume audio. Ad esempio, un browser potrebbe mostrare un riquadro con le 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'intenzione con una delle nuove azioni Settings.Panel.

Scorciatoie per la condivisione

La condivisione delle scorciatoie velocizza e semplifica la condivisione, consentendo agli utenti di passare direttamente a un'altra app per condividere i contenuti. Gli sviluppatori possono pubblicare target di condivisione che avviano un'attività specifica nelle loro app con contenuti allegati. Questi obiettivi vengono mostrati agli utenti nella UI di condivisione. Poiché vengono pubblicati in anticipo, l'interfaccia utente della condivisione viene caricata immediatamente al momento del lancio. Le scorciatoie di condivisione sono simili alle scorciatoie delle app e utilizzano la stessa API ShortcutInfo. L'API è supportata anche nella libreria AndroidX ShareTarget. Per maggiori dettagli, consulta l'app di esempio.

Le scorciatoie di condivisione consentono agli utenti di passare direttamente a un'attività specifica nelle tue app con i contenuti allegati.

Privacy per gli utenti

La privacy è un aspetto centrale di Android 10, dalle protezioni più efficaci della piattaforma alle nuove funzionalità progettate in funzione della privacy. Sulla base delle release precedenti, Android 10 include modifiche sostanziali per proteggere la privacy e offrire agli utenti un maggiore controllo, con un'interfaccia utente di sistema migliorata, autorizzazioni più rigide e limitazioni all'utilizzo dei dati da parte delle app. 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.

Maggiore controllo sui dati sulla posizione: gli utenti hanno maggiore controllo sui dati sulla posizione grazie a una nuova opzione di autorizzazione. Ora possono consentire a un'app di accedere alla posizione solo mentre è 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 è un grande miglioramento in termini di trasparenza e controllo. Per saperne di più sulle modifiche ai luoghi, consulta la guida per gli sviluppatori o il nostro post del blog.

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 relativa a queste API richiedendo invece l'autorizzazione di accesso alla posizione esatta.

Impedire il monitoraggio del dispositivo: le app non possono più accedere agli identificatori dei dispositivi non reimpostabili che potrebbero essere utilizzati per il monitoraggio, tra cui l'IMEI, il numero di serie e identificatori simili del dispositivo. Per impostazione predefinita, anche l'indirizzo MAC del dispositivo viene randomizzato quando è connesso alle reti Wi-Fi. Leggi le best practice per scegliere gli identificatori giusti per il tuo caso d'uso e visualizza 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 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 acquisiscono il controllo di un'altra app. Scopri di più qui.

Sicurezza

Android 10 introduce una serie di funzionalità che garantiscono una maggiore sicurezza agli utenti grazie ai progressi in termini di crittografia, rafforzamento della piattaforma e autenticazione. Scopri di più sugli aggiornamenti della sicurezza di Android 10.

Crittografia dello spazio di archiviazione: tutti i dispositivi compatibili lanciati con Android 10 devono criptare i dati utente e, per rendere questa operazione più efficiente, Android 10 include Adiantum, la nostra nuova modalità di crittografia.

TLS 1.3 per impostazione predefinita: Android 10 abilita anche TLS 1.3 per impostazione predefinita, una revisione importante dello standard TLS con vantaggi in termini di prestazioni e sicurezza avanzata.

Ottimizzazione della piattaforma: Android 10 include anche l'ottimizzazione per diverse area di sicurezza critica della piattaforma.

Biometria migliorata: Android 10 estende il framework BiometricPrompt per supportare metodi di autenticazione passiva come il volto e aggiunge 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 per un'alternativa più leggera per le transazioni con autenticazione passiva. Android 10 migliora inoltre 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à dinamica, composta da metadati JPEG, XMP relativi a elementi correlati alla profondità e da una mappa di profondità e affidabilità incorporata nello stesso file. che ti consentono di offrire opzioni di sfocature e bokeh specializzate nella tua app. Profondità 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 con profondità 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 relativo stream audio utilizzando una nuova API di acquisizione della riproduzione audio. Oltre a attivare i sottotitoli codificati e codificati codificati, l'API consente di supportare casi d'uso comuni come i giochi in live streaming. Abbiamo sviluppato 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, dando alle app il pieno controllo sulla possibilità di acquisire i loro stream audio. Scopri di più in questo post del blog.

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à su dispositivi Android utilizzando meno larghezza di banda. Inoltre, Android 10 supporta la codifica audio utilizzando Opus, un codec open source esente da royalty ottimizzato per lo streaming di voce e musica, e HDR10+ per i video con gamma dinamica elevata 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 il NDK. Questa API consente di recuperare i dati MIDI all'interno di un callback audio utilizzando una lettura non bloccante, consentendo l'elaborazione dei messaggi MIDI a bassa latenza. Prova l'app di esempio e il codice sorgente qui.

Microfoni direzionali con zoom

Android 10 offre un maggiore controllo sull'acquisizione audio tramite una nuova API MicrophoneDirection. Puoi utilizzare l'API per specificare una direzione preferita del microfono quando effettui una registrazione audio. Ad esempio, quando l'utente registra un video "selfie", puoi richiedere la registrazione audio del microfono frontale (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 amplia 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 consiglio per tutti i dispositivi a 32 bit. Abbiamo già registrato un'evoluzione significativa del 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à

Connettività peer-to-peer e a internet migliorata

Abbiamo sottoposto a refactoring 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 la proposta di connessioni a internet, il tutto 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 le funzioni peer-to-peer come la configurazione, il download o la stampa. Le API di suggerimento di rete consentono alle app di mostrare all'utente le reti Wi-Fi preferite per la connettività a internet.

Modalità di prestazioni Wi-Fi

Ora le app possono richiedere il Wi-Fi adattivo attivando le modalità ad alte prestazioni e bassa latenza. Questi possono essere un grande vantaggio quando la latenza ridotta è importante per l'esperienza utente, ad esempio per i giochi in tempo reale, le chiamate vocali attive e casi d'uso simili. La piattaforma funziona con il firmware del dispositivo per soddisfare i requisiti con il minor consumo energetico. Per utilizzare le nuove modalità di 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 minor consumo energetico.

Elementi di base di Android

Ottimizzazioni ART

I miglioramenti del runtime ART consentono alle app di avviarsi più velocemente, consumare meno memoria ed essere eseguite 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 alla Garbage Collector per la copia simultanea (CC) di ART per rendere la garbage collection più efficiente in termini di tempo e CPU, riduce i jank e aiuta le app a funzionare meglio sui dispositivi di fascia bassa.

Questo grafico mostra il miglioramento percentuale del tempo di avvio per app specifiche quando testate utilizzando i profili di Play.

API Neural Networks 1.2

Abbiamo aggiunto 60 nuove operazioni, tra cui ARGMAX, ARGMIN e LSTM quantizzato, oltre a una serie di ottimizzazioni delle prestazioni. Ciò getta le basi per accelerare una gamma molto più ampia di modelli, come quelli per il rilevamento di oggetti e la segmentazione delle immagini. Stiamo collaborando con fornitori di hardware e con i più diffusi framework di machine learning come TensorFlow per ottimizzare e implementare il supporto di NNAPI 1.2.

API Thermal

Quando i dispositivi si surriscaldano, potrebbero ridurre la velocità della CPU e/o della GPU, il che può influire su app e giochi in modi imprevisti. Ora in Android 10, app e giochi possono utilizzare un' API termica per monitorare le variazioni sul dispositivo e intervenire per ripristinare la normale temperatura. Ad esempio, le app di streaming possono ridurre la risoluzione/la velocità in bit o il traffico di rete, un'app per la fotocamera potrebbe disattivare il flash o il miglioramento intensivo delle immagini oppure un gioco potrebbe ridurre la frequenza dei fotogrammi o la tessellation 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 si spostino gradualmente verso l'utilizzo esclusivo di API pubbliche. Se un'interfaccia che attualmente utilizzi è limitata, puoi richiedere invece una nuova API pubblica per quell'interfaccia. Per aiutarti a effettuare la transizione e a evitare che le tue app si interrompano, attiveremo le limitazioni solo se la tua app ha come target Android 10 (API 29). Per ulteriori dettagli sulle limitazioni, consulta la guida per gli sviluppatori.

Aggiornamenti più rapidi, codice più aggiornato

Android 10 è progettato per aggiornamenti più rapidi tramite Project Treble, che fornisce un'interfaccia coerente e verificabile tra Android e il codice di base del dispositivo dei produttori di dispositivi e di chip. Grazie a Treble, i produttori di dispositivi possono portare Android 10 sui dispositivi compatibili con Treble più rapidamente e a un costo inferiore.

Android 10 è anche la prima release a supportare Project Mainline (ufficialmente chiamato aggiornamenti di sistema Google Play), la nostra nuova tecnologia per proteggere gli utenti Android e mantenere aggiornati i loro dispositivi con importanti modifiche al codice, direttamente da Google Play. Con gli aggiornamenti di sistema di Google Play, siamo in grado di aggiornare componenti interni specifici su tutti i dispositivi con Android 10 e versioni successive, senza richiedere un aggiornamento completo del sistema da parte del produttore del dispositivo.

Per gli sviluppatori, prevediamo che questi aggiornamenti in Android 10 contribuiscano a migliorare la coerenza dell'implementazione della piattaforma su larga scala sui dispositivi e, nel tempo, a garantire una maggiore uniformità che ridurrà i costi di sviluppo e test.

Inizia

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