Android 10 per sviluppatori

Android 10 si basa su tre temi importanti. Innanzitutto, Android 10 sta plasmando l'avanguardia dell'innovazione mobile con l'apprendimento automatico avanzato e il supporto per dispositivi emergenti come smartphone pieghevoli e con tecnologia 5G. Successivamente, Android 10 si concentra su privacy e sicurezza, con quasi 50 funzionalità che offrono agli utenti maggiore protezione, trasparenza e controllo. Infine, Android 10 espande i controlli di Benessere digitale degli utenti in modo che privati e famiglie possano trovare un equilibrio migliore con la tecnologia.

Ecco un'anteprima delle novità di Android 10 per gli sviluppatori e di come puoi utilizzarle oggi.

Innovazione e nuove esperienze

Con Android 10 puoi sfruttare le ultime innovazioni hardware e software per creare esperienze 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 sul solido supporto multi-finestra, Android 10 estende il multitasking alle finestre delle app e offre la continuità dello schermo per mantenere lo stato dell'app quando il dispositivo si piega o si apre. Android 10 aggiunge una serie di miglioramenti a onResume e onPause per supportare la ripresa multipla e notificare all'app quando è attiva. Inoltre, modifica il funzionamento dell'attributo del manifest resizeableActivity, per aiutarti a gestire la modalità di visualizzazione dell'app su schermi pieghevoli e di grandi dimensioni. Per aiutarti a sviluppare 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 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 ha 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 coinvolgenti agli utenti tramite il 5G.

Risposta rapida nelle notifiche

Android 10 utilizza il machine learning on-device per suggerire azioni contestuali nelle notifiche, come risposte rapide per i messaggi o l'apertura di una mappa per un indirizzo nella notifica. Le tue app possono sfruttare subito 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. Basta disattivare Risposta rapida per ogni notifica utilizzando setAllowGeneratedReplies() e setAllowSystemGeneratedContextualActions().

Risposta rapida può suggerire azioni in base al contenuto delle notifiche.

Tema scuro

Android 10 aggiunge un tema scuro a livello di sistema, ideale per condizioni di scarsa illuminazione e che consente di risparmiare batteria. Gli utenti possono attivare un nuovo tema scuro a livello di sistema andando su 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à Forza modalità Buio 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 delle versioni precedenti di Android. Per saperne di più, consulta la guida per gli sviluppatori.

Android 10 può creare un tema scuro per la tua app in modo dinamico con Force Dark.

Navigazione tramite gesti

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

Android 10 introduce una modalità di navigazione completamente basata sui gesti che elimina l'area della barra di navigazione e consente alle app di utilizzare l'intero schermo per offrire esperienze più ricche e coinvolgenti. Mantiene la navigazione familiare Indietro, Home e Recenti tramite scorrimento dai bordi anziché tramite pulsanti visibili. Per integrarsi perfettamente con la navigazione tramite gesti, devi andare da bordo a bordo, disegnando dietro la barra di navigazione per creare un'esperienza immersiva. Per implementare questa funzionalità, le app devono utilizzare l'API setSystemUiVisibility() per essere disposte a schermo intero e poi gestire WindowInsets in modo appropriato per garantire che le parti importanti della UI non siano oscurate. Inizia oggi stesso a ottimizzare la tua app e consulta la nostra serie di post del blog per saperne di più.

Pannelli delle impostazioni

Ora puoi mostrare le impostazioni di sistema chiave direttamente nel contesto della tua app, tramite una nuova API del pannello delle impostazioni. Un pannello delle impostazioni è un'interfaccia utente mobile che richiami per mostrare le impostazioni che gli utenti potrebbero aver bisogno, come la connettività a internet, l'NFC e il volume audio. Ad esempio, un browser potrebbe mostrare 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, 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 e questi vengono mostrati agli utenti nell'interfaccia utente di condivisione. Poiché vengono pubblicati in anticipo, l'interfaccia utente di condivisione si carica immediatamente all'avvio. 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 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 pensando alla privacy. Basandosi sulle versioni precedenti, Android 10 include modifiche estese per proteggere la privacy e dare 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 informazioni dettagliate su come supportare queste modifiche nelle tue app, consulta le modifiche alla privacy.

Ora gli utenti possono scegliere di concedere l'accesso alla posizione quando l'app è in primo piano.

Maggiore controllo degli utenti 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 mentre 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 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 di queste API richiedendo l'autorizzazione di accesso alla posizione esatta.

Prevenzione del monitoraggio dei dispositivi: le app non possono più accedere a identificatori di dispositivi non reimpostabili che potrebbero essere utilizzati per il monitoraggio, inclusi IMEI, numero di serie e identificatori simili. 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 consulta i dettagli qui.

Protezione dei dati utente nell'archiviazione esterna: Android 10 introduce una serie di modifiche per dare agli utenti un maggiore controllo sui file nell'archiviazione esterna 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 prendono il controllo di un'altra app. Scopri di più qui.

Sicurezza

Android 10 introduce una serie di funzionalità che proteggono maggiormente gli utenti grazie ai progressi in materia di crittografia, rafforzamento della piattaforma e autenticazione. Scopri di più sugli aggiornamenti della sicurezza di Android 10 qui.

Crittografia dell'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 attiva anche TLS 1.3 per impostazione predefinita, una revisione importante dello standard TLS con vantaggi in termini di prestazioni e maggiore sicurezza.

Rafforzamento della piattaforma: Android 10 include anche il rafforzamento 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 volto e aggiungendo 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 anche il fallback per le credenziali del dispositivo quando necessario. Scopri di più qui.

Fotocamera e contenuti multimediali

Profondità di campo dinamica per le foto

Ora le app possono richiedere un'immagine Dynamic Depth, che consiste in un JPEG, metadati XMP relativi a elementi correlati alla profondità e una mappa di profondità e confidenza incorporata nello stesso file. Queste opzioni ti consentono di offrire sfocature e bokeh specializzati nella tua app. Dynamic Depth è un formato aperto per l'ecosistema e stiamo collaborando con i nostri partner per portarlo 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 flusso 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 presente la protezione della privacy e del copyright, pertanto la possibilità per un'app di acquisire l'audio di un'altra app è limitata, il che consente alle app di controllare completamente se i loro stream audio possono essere acquisiti. 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 riprodurre in streaming contenuti video di alta qualità sui dispositivi Android utilizzando meno larghezza di banda. Inoltre, Android 10 supporta la codifica audio tramite Opus, un codec aperto e privo di royalty ottimizzato per lo streaming di voce e musica, e HDR10+ per video 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 frame rate supportati.

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. Prova 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 frontale per la registrazione audio (se presente). Inoltre, questa API introduce un modo standardizzato di controllare i microfoni zoomabili, consentendo alla tua app di controllare la 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 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 una raccomandazione 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 internet

Abbiamo eseguito il refactoring dello 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 il suggerimento di connessioni a internet, senza richiedere l'autorizzazione 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 per i suggerimenti 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à a prestazioni elevate e bassa latenza. Questi possono essere un grande vantaggio laddove la bassa latenza è 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 il requisito con il consumo energetico più basso. Per utilizzare le nuove modalità di rendimento, chiama WifiManager.WifiLock.createWifiLock() con WIFI_MODE_FULL_LOW_LATENCY o WIFI_MODE_FULL_HIGH_PERF. In queste modalità, la piattaforma funziona con il firmware del dispositivo per soddisfare il requisito con il consumo energetico più basso.

Elementi di base di Android

Ottimizzazioni ART

I miglioramenti nel runtime ART aiutano le tue app ad avviarsi più rapidamente, 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 prima ancora che venga eseguita. In fase di runtime, Android 10 aggiunge la raccolta dei rifiuti generazionale al raccoglitore di rifiuti con copia simultanea (CC) di ART per rendere la raccolta dei rifiuti più efficiente in termini di tempo e CPU, ridurre i problemi di scattosità 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 testate utilizzando i profili 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. Ciò pone 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 framework di machine learning popolari come TensorFlow per ottimizzare e implementare il supporto di NNAPI 1.2.

API Thermal

Quando i dispositivi si surriscaldano troppo, potrebbero limitare la CPU e/o la GPU e ciò può influire su app e giochi in modi inaspettati. Ora in Android 10, app e giochi possono utilizzare un' API termica per monitorare le modifiche sul dispositivo e intervenire per ripristinare la temperatura normale. Ad esempio, le app di streaming possono ridurre la risoluzione/il bit rate o il traffico di rete, un'app fotocamera potrebbe disattivare il flash o il miglioramento intensivo delle immagini oppure un gioco potrebbe ridurre il frame rate o la tassellatura dei poligoni. Scopri di più qui.

Compatibilità tramite API pubbliche

Android 10 continua a espandere le limitazioni alle interfacce non SDK, in modo che le app passino gradualmente all'utilizzo esclusivo di API pubbliche. Se un'interfaccia che utilizzi attualmente è soggetta a limitazioni, puoi richiedere una nuova API pubblica per quell'interfaccia. Per aiutarti a effettuare la transizione e a evitare che le tue app smettano di funzionare, stiamo attivando 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 Project Treble, che fornisce un'interfaccia coerente e testabile tra Android e il codice del dispositivo sottostante di produttori di dispositivi e produttori di silicio. 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 del 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. Grazie agli aggiornamenti di sistema Google Play, possiamo 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 di Android 10 contribuiscano a garantire la coerenza dell'implementazione della piattaforma su tutti i dispositivi e, nel tempo, a uniformare maggiormente la piattaforma, riducendo i costi di sviluppo e test.

Inizia

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