Android 10 per sviluppatori

Android 10 si basa su tre temi importanti. Innanzitutto, Android 10 sta dando forma all'avanguardia dell'innovazione mobile con machine learning avanzato e supporto per dispositivi emergenti come pieghevoli e 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 relativi al benessere digitale degli utenti affinché individui e famiglie possano trovare un equilibrio migliore con la tecnologia.

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

Innovazione ed esperienze nuove

Con Android 10 puoi sfruttare le innovazioni più recenti in termini di hardware e software e creare esperienze di app eccezionali per gli utenti.

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

Pieghevoli

Basandosi su un solido supporto della modalità multi-finestra, Android 10 estende il multitasking a tutte le finestre dell'app e garantisce la continuità dello schermo per mantenere lo stato dell'app man mano che il dispositivo si piega o si apre. Android 10 aggiunge una serie di miglioramenti a onRiprendi e onPause per supportare il ripristino multiplo e la notifica dell'app quando è attiva. Cambia inoltre il funzionamento dell'attributo manifest resizeableActivity per aiutarti a gestire la modalità di visualizzazione dell'app su schermi pieghevoli e di grandi dimensioni. Per aiutarti a creare per i dispositivi pieghevoli, puoi configurare un emulatore pieghevole come dispositivo virtuale (AVD) in Android Studio. Per dettagli su come ottimizzare le tue app per i pieghevoli, consulta la guida per gli sviluppatori.

Reti 5G

Il 5G promette velocità costantemente più elevate e minore latenza. 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 controllare se la connessione è a consumo. Grazie a questi giochi, le tue app e i tuoi giochi possono personalizzare esperienze ricche e coinvolgenti per gli utenti tramite 5G.

Risposta rapida nelle notifiche

Android 10 utilizza il machine learning on-device per suggerire azioni contestuali nelle notifiche, ad esempio risposte rapide per i 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 azioni e le risposte rapide fornite dal sistema vengono inserite direttamente nelle notifiche. Se vuoi, puoi comunque fornire le tue risposte e azioni. Disattiva Risposta rapida in base alle singole notifiche 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 in condizioni di scarsa illuminazione e che contribuisce a risparmiare batteria. Gli utenti possono attivare un nuovo tema scuro a livello di sistema andando a Impostazioni o attivando il risparmio energetico. La UI di sistema diventa scura e viene attivato il tema scuro per le app che lo supportano. Puoi creare un tema scuro personalizzato per la tua app o attivare una nuova funzionalità Forza scuro che consente al sistema di creare dinamicamente una versione scura del tema esistente. Puoi anche sfruttare la funzionalità DayNight di AppCompat per offrire un tema scuro agli utenti delle versioni precedenti di Android. Per ulteriori informazioni, consulta la guida per gli sviluppatori.

Android 10 può creare dinamicamente un tema scuro per la tua app usando la modalità Buio forzato.

Navigazione tramite gesti

La navigazione tramite gesti consente alle app di visualizzare i contenuti a schermo intero.

Android 10 introduce una modalità di navigazione completamente gestuale 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 familiare navigazione Indietro, Home e Recenti tramite scorrimenti sui bordi anziché pulsanti visibili. Per armonizzarti perfettamente con la navigazione tramite gesti, devi andare da un bordo all'altro, disegnando dietro la barra di navigazione per creare un'esperienza immersiva. Per implementarlo, le app devono usare l'API setSystemUi visibility() per impostare la modalità a schermo intero, quindi gestire WindowInsets in modo appropriato per garantire che le parti importanti dell'interfaccia utente non siano oscurate. Inizia a ottimizzare la tua app oggi stesso e consulta la nostra serie di post del blog per ulteriori informazioni.

Riquadri delle impostazioni

Ora puoi mostrare le principali impostazioni di sistema direttamente nel contesto dell'app, tramite una nuova API Settings Panel. Un riquadro delle impostazioni è una UI mobile che viene richiamata per mostrare le impostazioni di cui gli utenti potrebbero aver bisogno, come connettività internet, NFC e volume audio. Ad esempio, un browser potrebbe mostrare un riquadro con impostazioni di connettività come Modalità aereo, Wi-Fi (incluse le reti vicine) e Dati mobili. Per visualizzare un riquadro delle impostazioni, attiva un intent con una delle nuove azioni Settings.panel.

Scorciatoie di condivisione

La condivisione delle scorciatoie rende la condivisione più facile e veloce, 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 vengono mostrati agli utenti nell'interfaccia utente di condivisione. Poiché sono pubblicate in anticipo, l'interfaccia utente di condivisione si carica immediatamente. Condivisione delle scorciatoie è simile alle scorciatoie app e utilizza la stessa API ScorciatoiaInfo. L'API è supportata anche nella libreria AndroidX ShareTarget. Per i dettagli, guarda 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 degli utenti

La privacy è un aspetto centrale in Android 10, dalle protezioni più efficaci all'interno della piattaforma alle nuove funzionalità progettate tenendo conto della privacy. Rispetto alle release precedenti, Android 10 include modifiche significative per proteggere la privacy e offrire agli utenti maggiore controllo, con UI di sistema migliorata, autorizzazioni più rigide e limitazioni sui dati utilizzabili dalle app. 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.

Offrire agli utenti un maggiore controllo sui dati sulla posizione: gli utenti hanno maggiore controllo sui dati sulla loro 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). Questo fornisce un livello di accesso sufficiente per la maggior parte delle app, mentre per gli utenti rappresenta un notevole miglioramento in termini di trasparenza e controllo. Per scoprire di più sulle modifiche delle località, consulta la guida per gli sviluppatori o il nostro post del blog.

Protezione dei dati sulla posizione nelle scansioni della rete: la maggior parte delle API per la scansione delle reti richiede già l'autorizzazione di accesso alla posizione approssimativa. Android 10 aumenta la protezione intorno a queste API richiedendo invece l'autorizzazione di accesso alla posizione precisa.

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

Protezione dei dati utente nell'unità di archiviazione esterna: Android 10 introduce una serie di modifiche per offrire agli utenti un maggiore controllo sui file nella memoria 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 usare 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 i lanci delle app in background che vengono improvvisamente spostati in primo piano e vengono sovrascritti da un'altra app. Scopri di più qui.

Sicurezza

Android 10 introduce una serie di funzionalità che mantengono gli utenti più al sicuro grazie ai progressi nella crittografia, nella protezione 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 che vengono lanciati con Android 10 devono criptare i dati utente e, per rendere questo sistema 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 sicurezza avanzata.

Protezione della piattaforma: Android 10 include anche l'hardening della piattaforma in diverse aree critiche per la sicurezza.

Biometria migliorata: Android 10 estende il framework BiometricPrompt per supportare metodi di autenticazione passiva, ad esempio i volti, 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 anche la riserva delle credenziali del dispositivo quando necessario. Scopri di più qui.

Fotocamera e contenuti multimediali

Profondità dinamica per le foto

Le app ora possono richiedere un'immagine profondità dinamica, composta da metadati JPEG e XMP relativi agli elementi correlati alla profondità, e una mappa di profondità e confidenza incorporata nello stesso file. che ti consentono di offrire sfocature specializzate e opzioni bokeh nella tua app. La profondità dinamica è un formato aperto per l'ecosistema e stiamo collaborando con i nostri partner per estenderla ai dispositivi con Android 10 e versioni successive.

Con l'immagine Profondità dinamica puoi offrire sfocature specializzate e opzioni bokeh nella tua app.

Acquisizione riproduzione audio

Ora qualsiasi app che riproduce audio può consentire ad altre app di acquisire il proprio stream audio utilizzando una nuova API di acquisizione della riproduzione audio. Oltre ad abilitare i sottotitoli, l'API consente di supportare casi d'uso comuni, come i giochi in live streaming. Abbiamo sviluppato questa nuova funzionalità tenendo conto della protezione della privacy e del copyright, pertanto la capacità di un'app di acquisire l'audio di un'altra app è limitata, dando alle app il pieno controllo sulla possibilità o meno 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 riprodurre 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 e senza royalty ottimizzato per lo streaming vocale e musicale, e HDR10+ per i video ad alta definizione dinamica 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 delle dimensioni e delle 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 NDK. Questa API consente di recuperare i dati MIDI all'interno di un callback audio utilizzando una lettura che non blocca, consentendo l'elaborazione a bassa latenza dei messaggi MIDI. Provalo con l'app di esempio e il codice sorgente qui.

Microfoni direzionali con zoom

Android 10 ti offre un maggiore controllo sull'acquisizione audio grazie alla nuova API MicrofonoDirection. Puoi usare l'API per specificare una direzione preferita del microfono quando acquisisci una registrazione audio. Ad esempio, quando l'utente sta registrando un video "selfie", puoi richiedere il microfono anteriore per la registrazione audio (se esistente). Inoltre, questa API introduce un modo standardizzato di controllare i microfoni con zoom, consentendo all'app di avere il controllo della dimensione del campo di registrazione.

Vulkan ovunque

Android 10 espande l'impatto di Vulkan grazie alla 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 una raccomandazione per tutti i dispositivi a 32 bit. Stiamo già assistendo a un notevole slancio per il supporto di Vulkan nell'ecosistema: tra i dispositivi con Android N o versioni successive, il 53% supporta Vulkan 1.0.3 o versioni successive. In seguito al nuovo requisito di Android 10, prevediamo che l'adozione aumenterà ulteriormente nel prossimo anno.

Connettività

Miglioramento della connettività internet e peer-to-peer

Abbiamo 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 il suggerimento di connessioni a internet, senza richiedere l'autorizzazione di accesso alla posizione. Le API di connessione di rete semplificano la gestione dei dispositivi IoT sulla rete 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 abilitando 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 giochi in tempo reale, chiamate vocali attive e casi d'uso simili. La piattaforma funziona con il firmware del dispositivo per soddisfare i requisiti con il minor consumo di energia. 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 funziona 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 di avviare le app più velocemente, consumare meno memoria ed eseguire in modo più fluido, senza richiedere alcun intervento da parte tua. I profili ART pubblicati 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 generativa alla Garbage Collector di Concurrent copy (CC) di ART per rendere la garbage collection più efficiente in termini di tempo e CPU, riduce il jank e aiuta le app a funzionare meglio sui dispositivi di fascia bassa.

Questo grafico mostra il miglioramento percentuale del tempo di avvio di app specifiche durante il test con i profili di Google 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. Questo getta le basi per accelerare una gamma molto più ampia di modelli, come quelli per il rilevamento degli 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 per NNAPI 1.2.

API Thermal

Quando i dispositivi si scaldano troppo, possono limitare la CPU e/o la GPU, con ripercussioni su app e giochi in modi imprevisti. Ora in Android 10, le app e i giochi possono usare un' API termica per monitorare le modifiche sul dispositivo e intervenire per ripristinare la normale temperatura. Ad esempio, le app di streaming possono ridurre la risoluzione/frequenza di bit o il traffico di rete, un'app Fotocamera potrebbe disattivare il flash o il miglioramento intensivo delle immagini oppure un gioco potrebbe ridurre la frequenza fotogrammi o la tassellatura dei poligoni. Scopri di più qui.

Compatibilità tramite API pubbliche

Android 10 continua a espandere le limitazioni sulle interfacce non SDK, in modo che le app passino gradualmente verso l'utilizzo solo di API pubbliche. Se un'interfaccia che stai utilizzando al momento è limitata, puoi richiedere una nuova API pubblica per quell'interfaccia. Per aiutarti a effettuare la transizione e evitare che le tue app vengano interrotte, le limitazioni verranno attivate 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 testabile tra Android e il codice dispositivo sottostante da parte dei produttori e dei produttori di chip di silicio. Tramite Treble, i produttori possono portare Android 10 su dispositivi compatibili con Treble in modo più rapido e a costi inferiori.

Android 10 è inoltre 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 i loro dispositivi aggiornati con importanti modifiche al codice direttamente da Google Play. Grazie agli 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 di sistema completo al produttore del dispositivo.

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

Inizia

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