Kit per Android

Android 4.4 su telefono e tablet

Ti diamo il benvenuto in Android 4.4 Lollipop

Android Marshmallow porta tutte le funzionalità più innovative, più belle e più utili di Android su più dispositivi, ovunque.

Questo documento offre una panoramica delle novità per gli sviluppatori.

Per ulteriori informazioni su Lollipop per i consumatori, visita il sito www.android.com.

Android per tutti

Android 4.4 è progettato per funzionare in modo veloce, fluido e reattivo su una gamma di dispositivi molto più ampia che mai, inclusi milioni di dispositivi base in tutto il mondo con appena 512 MB di RAM.

Lollipop semplifica tutti i componenti principali per ridurre l'utilizzo della memoria e introduce nuove API e strumenti per aiutarti a creare applicazioni innovative, reattive ed efficienti in termini di memoria.

Gli OEM che realizzano i dispositivi Android di nuova generazione possono sfruttare opzioni e consigli mirati per eseguire Android 4.4 in modo efficiente, anche su dispositivi con memoria ridotta. L'ottimizzazione della cache del codice JIT Dalvik, l'unione della stessa pagina del kernel (KSM), lo scambio su zRAM e altre ottimizzazioni aiutano a gestire la memoria. Le nuove opzioni di configurazione consentono agli OEM di regolare i livelli di esaurimento della memoria per i processi, di impostare le dimensioni della cache grafica, di controllare il recupero della memoria e altro ancora.

All'interno di Android, le modifiche apportate al sistema migliorano la gestione della memoria e riducono l'utilizzo di memoria. I processi di sistema principali sono tagliati per utilizzare meno heap e ora proteggono in modo più aggressivo la memoria di sistema dalle app che consumano grandi quantità di RAM. Quando più servizi vengono avviati contemporaneamente, ad esempio quando cambia la connettività di rete, Android ora lancia i servizi in serie, in piccoli gruppi, per evitare picchi di memoria.

Per gli sviluppatori, Android 4.4 consente di pubblicare app efficienti e reattive su tutti i dispositivi. La nuova API, ActivityManager.isLowRamDevice(), ti consente di ottimizzare il comportamento della tua app in modo che corrisponda alla configurazione della memoria del dispositivo. Puoi modificare o disattivare le funzionalità con memoria elevata in base alle esigenze, a seconda dei casi d'uso che vuoi supportare sui dispositivi di livello base. Scopri di più sull'ottimizzazione delle app per i dispositivi con memoria ridotta qui.

I nuovi strumenti forniscono inoltre informazioni approfondite sull'utilizzo della memoria da parte della tua app. Lo strumento procstats descrive in dettaglio l'utilizzo della memoria nel tempo, con tempi di esecuzione e utilizzo della memoria per le app in primo piano e i servizi in background. La visualizzazione on-device è disponibile anche come nuova opzione per gli sviluppatori. Lo strumento Meminfo è stato migliorato per facilitare l'individuazione di tendenze e problemi della memoria e rivela un ulteriore overhead di memoria che in precedenza non era visibile.

Nuove funzionalità NFC tramite l'emulazione della carta host

Android 4.4 introduce una nuova piattaforma che supporta le transazioni sicure basate su NFC tramite Host Card Emulation (HCE), per pagamenti, programmi fedeltà, accesso alle carte, pass per il trasporto pubblico e altri servizi personalizzati. Con HCE, qualsiasi app su un dispositivo Android può emulare una smart card NFC, consentendo agli utenti di toccare per avviare transazioni con un'app di loro scelta. Non è necessario alcun Secure Element (SE) di cui è stato eseguito il provisioning nel dispositivo. Le app possono anche utilizzare una nuova modalità Reader per agire da lettori per carte HCE e altre transazioni basate su NFC.

Simbolo pagamenti contactless

Android HCE emula le smart card basate su ISO/IEC 7816 che utilizzano il protocollo contactless ISO/IEC 14443-4 (ISO-DEP) per la trasmissione. Queste carte sono attualmente utilizzate da molti sistemi, inclusa l'infrastruttura di pagamento NFC EMVCO esistente. Android utilizza gli identificatori delle applicazioni (AID) come definiti nello standard ISO/IEC 7816-4 come base per il routing delle transazioni alle app per Android corrette.

Le app dichiarano gli AID supportati nei file manifest, insieme a un identificatore di categoria che indica il tipo di assistenza disponibile (ad esempio, "pagamenti"). Nei casi in cui più app supportino lo stesso AID nella stessa categoria, Android mostra una finestra di dialogo che consente all'utente di scegliere quale app utilizzare.

Quando l'utente tocca per pagare presso un terminale point of sale, il sistema estrae l'AID preferito e instrada la transazione all'applicazione corretta. L'app legge i dati della transazione e può utilizzare qualsiasi servizio locale o basato sulla rete per verificare e completare la transazione.

Android HCE richiede la presenza di un controller NFC nel dispositivo. Il supporto per HCE è già ampiamente disponibile sulla maggior parte dei controller NFC, che offrono supporto dinamico per le transazioni HCE e SE. I dispositivi Android 4.4 che supportano la tecnologia NFC includeranno la funzionalità Tap & Pay, che consente di effettuare pagamenti semplici tramite HCE.

Framework di stampa

Ora le app per Android possono stampare qualsiasi tipo di contenuti tramite Wi-Fi o servizi ospitati nel cloud come Google Cloud Print. Nelle app compatibili con la stampa, gli utenti possono scoprire le stampanti disponibili, modificare i formati della carta, scegliere pagine specifiche da stampare e stampare quasi ogni tipo di documento, immagine o file.

Android 4.4 introduce il supporto nativo della piattaforma per la stampa, insieme ad API per la gestione della stampa e l'aggiunta di nuovi tipi di supporto per le stampanti. La piattaforma fornisce un gestore di stampa che funge da mediatore tra le app che richiedono la stampa e i servizi di stampa installati che gestiscono le richieste di stampa. Il gestore di stampa fornisce servizi condivisi e un'interfaccia utente di sistema per la stampa, offrendo agli utenti un controllo coerente sulla stampa da qualsiasi app. Inoltre, garantisce la sicurezza dei contenuti mentre vengono trasmessi tra processi, da un'app a un servizio di stampa.

Dispositivo mobile con orientamento orizzontale che mostra le funzionalità di supporto della stampante

Puoi aggiungere il supporto per la stampa alle tue app o sviluppare servizi di stampa per supportare tipi di stampanti specifici.

I produttori di stampanti possono utilizzare nuove API per sviluppare i propri servizi di stampa, ovvero componenti modulari che aggiungono logica e servizi specifici del fornitore per la comunicazione con determinati tipi di stampanti. Possono creare servizi di stampa e distribuirli tramite Google Play, semplificando la ricerca e l'installazione da parte degli utenti sui propri dispositivi. Come con altre app, puoi aggiornare i servizi di stampa over-the-air in qualsiasi momento.

Le app client possono utilizzare nuove API per aggiungere funzionalità di stampa alle proprie app con modifiche minime al codice. Nella maggior parte dei casi, dovresti aggiungere un'azione di stampa alla barra delle azioni e un'interfaccia utente per la scelta degli elementi da stampare. Puoi inoltre implementare le API per creare processi di stampa, richiedere lo stato del gestore di stampa e annullare i processi. In questo modo puoi stampare quasi ogni tipo di contenuti, da immagini e documenti locali a dati di rete o una visualizzazione visualizzata su una tela.

Per una compatibilità più ampia, Android utilizza PDF come formato file principale per la stampa. Prima di stampare, l'app deve generare una versione PDF impaginata correttamente dei contenuti. Per comodità, l'API di stampa offre classi helper native e WebView per consentirti di creare PDF utilizzando le API di disegno standard di Android. Se la tua app sa come disegnare i contenuti, può creare rapidamente un PDF da stampare.

La maggior parte dei dispositivi con Android 4.4 includerà Google Cloud Print come servizio di stampa preinstallato, nonché diverse app Google che supportano la stampa, tra cui Chrome, Drive, Gallery e QuickOffice.

Framework Storage Access

Un nuovo framework di accesso allo spazio di archiviazione consente agli utenti di sfogliare e aprire facilmente documenti, immagini e altri file in tutti i loro fornitori di archiviazione dei documenti preferiti. Un'interfaccia utente standard facile da usare consente agli utenti di sfogliare i file e di accedere ai file recenti in modo coerente in tutte le app e i provider.

Dispositivo mobile che mostra una barra laterale aperta all'interno del nuovo framework Storage Access Visualizzazione mobile dei servizi Box integrati all'interno del nuovo framework di accesso allo spazio di archiviazione

Box e altre aziende hanno integrato i propri servizi nel framework di accesso a Storage, consentendo agli utenti di accedere facilmente ai propri documenti dalle app di tutto il sistema.

I servizi di archiviazione cloud o locali possono partecipare a questo ecosistema implementando una nuova classe di provider di documenti che incapsula i loro servizi. La classe provider include tutte le API necessarie per registrare il provider nel sistema e gestire navigazione, lettura e scrittura di documenti nel provider. Il fornitore di documenti può consentire agli utenti di accedere a qualsiasi dato remoto o locale che può essere rappresentato come file: testo, foto e sfondi a video, audio e altro ancora.

Se crei un fornitore di documenti per un servizio cloud o locale, puoi fornirlo agli utenti come parte della tua app per Android esistente. Dopo aver scaricato e installato l'app, gli utenti avranno accesso immediato al tuo servizio da qualsiasi app che partecipa al framework. Questo può aiutarti a ottenere visibilità e coinvolgimento degli utenti, poiché questi ultimi troveranno i tuoi servizi più facilmente.

Se sviluppi un'app client che gestisce file o documenti, puoi integrarla con Storage Access Framework semplicemente utilizzando nuovi intent CREATE_DOCUMENT o OPEN_DOCUMENT per aprire o creare file. Il sistema visualizza automaticamente l'UI standard per la consultazione dei documenti, inclusi tutti i fornitori di documenti disponibili.

Puoi integrare l'app client una sola volta, per tutti i provider, senza alcun codice specifico del fornitore. Man mano che gli utenti aggiungono o rimuovono fornitori, continueranno ad avere accesso ai servizi preferiti dalla tua app, senza necessità di modifiche o aggiornamenti nel codice.

Il framework di accesso allo spazio di archiviazione è integrato con l'intent GET_CONTENT esistente, pertanto gli utenti possono accedere anche a tutte le origini dati e contenuti precedenti dalla nuova UI di sistema per la navigazione. Le app possono continuare a utilizzare GET_CONTENT per consentire agli utenti di importare dati. Il framework di accesso allo spazio di archiviazione e la UI di sistema per la navigazione semplificano la ricerca e l'importazione dei dati da parte degli utenti da una gamma più ampia di origini.

La maggior parte dei dispositivi con Android 4.4 includerà Google Drive e lo spazio di archiviazione locale preintegrati come provider di documenti. Anche le app Google che supportano i file utilizzeranno il nuovo framework.

Sensori a bassa potenza

Raggruppamento dei sensori

Android 4.4 introduce il supporto della piattaforma per il batching dei sensori hardware, una nuova ottimizzazione che può ridurre drasticamente il consumo di energia consumato dalle attività continue dei sensori.

Grazie al raggruppamento dei sensori, Android interagisce con l'hardware del dispositivo per raccogliere e inviare in modo efficiente gli eventi dei sensori in batch, anziché singolarmente man mano che vengono rilevati. Ciò consente al processore delle applicazioni del dispositivo di rimanere in uno stato di inattività a basso consumo fino alla pubblicazione dei batch. Puoi richiedere eventi in batch da qualsiasi sensore utilizzando un listener di eventi standard e puoi controllare l'intervallo di ricezione dei batch. Puoi anche richiedere la consegna immediata degli eventi tra cicli batch.

Il raggruppamento dei sensori è ideale per casi d'uso a basso consumo e a lunga esecuzione, come fitness, monitoraggio della posizione, monitoraggio e altro ancora. Può rendere la tua app più efficiente e ti consente di monitorare continuamente gli eventi dei sensori, anche quando lo schermo è spento e il sistema è in sospensione.

Il raggruppamento dei sensori è attualmente disponibile su Nexus 5 e stiamo collaborando con i nostri partner di chipset per renderlo disponibile su più dispositivi il prima possibile.

Dispositivo mobile che mostra il supporto del nuovo rilevatore di passi Dispositivo mobile che mostra il nuovo supporto del contapassi

Movimenti e Runtastic Pedometer utilizzano il rilevatore di passi hardware per offrire servizi a lunga durata e a basso consumo.

Rilevatore di passi e contapassi

Android 4.4 aggiunge inoltre il supporto della piattaforma per due nuovi sensori compositi (rilevatore di passi e contapassi) che consentono alla tua app di monitorare i passi quando l'utente cammina, corre o sale le scale. Questi nuovi sensori sono implementati nell'hardware per un basso consumo energetico.

Il rilevatore di passi analizza l'input dell'accelerometro per riconoscere quando l'utente ha effettuato un passo, quindi attiva un evento per ogni passaggio. Il contatore di passi monitora il numero totale di passi dall'ultimo riavvio del dispositivo e attiva un evento per ogni modifica nel conteggio dei passi. Poiché la gestione della logica e dei sensori è integrata nella piattaforma e nell'hardware sottostante, non è necessario gestire i tuoi algoritmi di rilevamento nell'app.

I sensori di rilevamento dei passi e contatore sono disponibili su Nexus 5; stiamo inoltre collaborando con i nostri partner di chipset per renderli disponibili su nuovi dispositivi il prima possibile.

Fornitore di servizi SMS

Se sviluppi un'app di messaggistica che utilizza SMS o MMS, ora puoi utilizzare un provider di SMS condiviso e nuove API per gestire l'archiviazione e il recupero dei messaggi nell'app. Il nuovo provider di SMS e le nuove API definiscono un modello di interazione standardizzato per tutte le app che gestiscono SMS o MMS.

Oltre al nuovo provider e alle nuove API, Android 4.4 introduce una nuova semantica per la ricezione di messaggi e la scrittura al provider. Quando un messaggio viene ricevuto, il sistema lo indirizza direttamente all'app di messaggistica predefinita dell'utente utilizzando il nuovo intent SMS_DELIVER. Altre app possono comunque ascoltare i messaggi in arrivo utilizzando l'intent SMS_RECEIVED. Inoltre, il sistema ora consente solo all'app predefinita di scrivere dati dei messaggi al provider, anche se altre app possono leggere in qualsiasi momento. Le app che non sono predefinite dell'utente possono comunque inviare messaggi: il sistema gestisce la scrittura di questi messaggi al provider per conto dell'app, in modo che gli utenti possano vederli nell'app predefinita.

Il nuovo provider e la nuova semantica aiutano a migliorare l'esperienza dell'utente quando sono installate più app di messaggistica e a creare nuove funzionalità di messaggistica con API completamente supportate e compatibili con l'inoltro.

Nuovi modi per creare app fantastiche

Dispositivo mobile su cui è visualizzata la nuova funzionalità modalità immersiva

Una nuova modalità immersiva consente alle app di utilizzare ogni pixel sullo schermo per mostrare contenuti e acquisire eventi touch.

Modalità immersiva a schermo intero

Ora le tue app possono utilizzare ogni pixel sullo schermo del dispositivo per mostrare i tuoi contenuti e acquisire eventi touch. Android 4.4 aggiunge una nuova modalità immersiva a schermo intero che ti consente di creare UI a schermo intero che raggiungono i livelli da bordo a bordo su telefoni e tablet, nascondendo tutta l'UI di sistema come la barra di stato e la barra di navigazione. È ideale per contenuti visivi ricchi come foto, video, mappe, libri e giochi.

Nella nuova modalità, l'interfaccia utente di sistema rimane nascosta, anche mentre gli utenti interagiscono con l'app o il gioco: puoi acquisire eventi touch da qualsiasi punto dello schermo, anche nelle aree che altrimenti sarebbero occupate dalle barre di sistema. Questo è un ottimo modo per creare un'interfaccia utente più grande, ricca e coinvolgente nella tua app o nel tuo gioco, nonché per ridurre le distrazioni visive.

Per garantire che gli utenti abbiano sempre un accesso facile e coerente all'interfaccia utente di sistema dalla modalità immersiva a schermo intero, Android 4.4 supporta un nuovo gesto: in modalità immersiva, ora un gesto di scorrimento laterale dalla parte superiore o inferiore dello schermo rivela l'UI di sistema.

Per tornare alla modalità immersiva, gli utenti possono toccare lo schermo al di fuori dei limiti delle barre o attendere un breve periodo di tempo prima che le barre vengano nascoste automaticamente. Per un'esperienza utente coerente, il nuovo gesto funziona anche con i metodi precedenti per nascondere la barra di stato.

Framework di transizioni per animare le scene

La maggior parte delle app struttura i propri flussi in base a diversi stati chiave dell'interfaccia utente che espongono azioni diverse. Molte app utilizzano anche l'animazione per aiutare gli utenti a comprendere i loro progressi in questi stati e le azioni disponibili in ciascuno. Per semplificare la creazione di animazioni di alta qualità nella tua app, Android 4.4 introduce un nuovo framework per le transizioni.

Il framework delle transizioni consente di definire scene, in genere di visualizzare gerarchie e transizioni, che descrivono come animarle o trasformarle quando l'utente le entra o le esce. Puoi utilizzare diversi tipi di transizione predefiniti per animare le scene in base a proprietà specifiche, come i limiti di layout o la visibilità. Esiste anche un tipo di transizione automatica che dissolve, sposta e ridimensiona automaticamente le visualizzazioni durante un cambio di scena. Inoltre, puoi definire transizioni personalizzate che animano le proprietà più importanti per la tua app e, se necessario, inserire i tuoi stili di animazione.

Con il framework delle transizioni puoi anche animare le modifiche all'interfaccia utente all'istante, senza dover definire le scene. Ad esempio, puoi apportare una serie di modifiche a una gerarchia di viste, per poi fare in modo che Transizione Manager esegua automaticamente una transizione ritardata di queste modifiche.

Una volta configurate le transizioni, è facile richiamarle dalla tua app. Ad esempio, puoi chiamare un singolo metodo per iniziare una transizione, apportare varie modifiche nella gerarchia delle visualizzazioni e nel frame successivo inizierà automaticamente un'animazione che anima le modifiche specificate.

UI di sistema semitrasparente

Le app possono usare nuovi stili di finestre per richiedere barre di sistema traslucide.

Per un controllo personalizzato sulle transizioni che vengono eseguite tra scene specifiche nel flusso dell'applicazione, puoi utilizzare Transizione Manager. Transizione Manager consente di definire la relazione tra le scene e le transizioni che avvengono per cambi di scena specifici.

Stili dell'interfaccia utente di sistema traslucidi

Per ottenere il massimo dai tuoi contenuti, ora puoi utilizzare nuovi stili e temi delle finestre per richiedere un'UI di sistema traslucido, incluse sia la barra di stato che la barra di navigazione. Per garantire la leggibilità dei pulsanti della barra di navigazione o delle informazioni della barra di stato, dietro le barre di sistema vengono mostrate sottili sfumature. Un caso d'uso tipico è un'app che deve essere visualizzata tramite uno sfondo.

Accesso alle notifiche migliorato

I servizi listener di notifiche ora possono visualizzare ulteriori informazioni sulle notifiche in arrivo create utilizzando le API del generatore di notifiche. I servizi listener possono accedere alle azioni di una notifica nonché a nuovi campi aggiuntivi (testo, icona, immagine, avanzamento, cronometro e molti altri) per estrarre informazioni più chiare sulla notifica e presentarle in un modo diverso.

Logo di Chromium WebView

Chromium WebView

Android 4.4 include un'implementazione completamente nuova di WebView basata su Chromium. La nuova versione di Chromium WebView offre le più recenti funzionalità di supporto, prestazioni e compatibilità degli standard per creare e visualizzare i tuoi contenuti basati sul web.

Chromium WebView offre un ampio supporto per HTML5, CSS3 e JavaScript. Supporta la maggior parte delle funzionalità HTML5 disponibili in Chrome per Android 30. Include inoltre una versione aggiornata del motore JavaScript (V8) che offre prestazioni JavaScript notevolmente migliorate.

Inoltre, il nuovo Chromium WebView supporta il debug remoto tramite Chrome DevTools. Ad esempio, puoi utilizzare Chrome DevTools sulla tua macchina di sviluppo per ispezionare, eseguire il debug e analizzare i contenuti di WebView in tempo reale su un dispositivo mobile.

Il nuovo Chromium WebView è incluso in tutti i dispositivi compatibili con Android 4.4 e versioni successive. Puoi sfruttare subito il nuovo WebView e apportare modifiche minime alle app e ai contenuti esistenti. Nella maggior parte dei casi, la migrazione dei tuoi contenuti alla nuova implementazione verrà eseguita senza problemi.

Nuove funzionalità multimediali

Registrazione dello schermo

Ora è facile creare video di alta qualità per la tua app direttamente dal tuo dispositivo Android. Android 4.4 aggiunge il supporto per la registrazione dello schermo e fornisce un'utilità di registrazione dello schermo che consente di avviare e interrompere la registrazione su un dispositivo collegato al tuo ambiente SDK Android tramite USB. È un nuovo modo fantastico per creare procedure dettagliate e tutorial per la tua app, materiali di test, video di marketing e altro ancora.

Con l'utilità di registrazione dello schermo, puoi acquisire video dei contenuti sullo schermo del dispositivo e archiviarli come file MP4 sul dispositivo. Puoi registrare a qualsiasi risoluzione e velocità in bit supportate dal dispositivo e l'output manterrà le proporzioni del display. Per impostazione predefinita, l'utilità seleziona una risoluzione uguale o simile a quella del display del dispositivo nell'orientamento corrente. Al termine della registrazione, puoi condividere il video direttamente dal tuo dispositivo o eseguire il pull del file MP4 sul tuo computer host per la post-produzione.

Se l'app riproduce video o altri contenuti protetti che non vuoi che vengano acquisiti dal registratore dello schermo, puoi utilizzare SurfaceView.setSecure() per contrassegnare i contenuti come sicuri.

Puoi accedere alla registrazione dello schermo tramite lo strumento ADB incluso nell'SDK Android, utilizzando il comando adb shell screenrecord. Puoi anche avviarlo tramite logcat in Android Studio.

Cambio della risoluzione tramite riproduzione adattiva

Android 4.4 introduce il supporto formale per la riproduzione adattiva nel framework multimediale Android. La riproduzione adattiva è una funzionalità facoltativa dei decodificatori video per MPEG-DASH e altri formati che consente una variazione continua della risoluzione durante la riproduzione. Il client può iniziare a fornire ai frame video di input del decoder una nuova risoluzione e la risoluzione dei buffer di output cambia automaticamente, senza un divario significativo.

La scelta della risoluzione in Android 4.4 consente alle app multimediali di offrire un'esperienza video in streaming notevolmente migliore. Le app possono verificare il supporto della riproduzione adattiva in runtime utilizzando le API esistenti e implementare il cambio di risoluzione utilizzando le nuove API introdotte in Android 4.4.

Crittografia comune per DASH

Android ora supporta il protocollo CENC (Common Encryption) per MPEG-DASH, che fornisce uno schema DRM multipiattaforma standard per la gestione della protezione dei contenuti. Le app possono sfruttare CENC tramite il framework DRM modulare di Android e le API della piattaforma per supportare DASH.

Live streaming HTTP

Android 4.4 aggiorna il supporto del live streaming HTTP (HLS) della piattaforma a un soprainsieme della versione 7 della specifica HLS (versione 4 del protocollo). Per i dettagli, consulta la bozza di IETF.

Tunneling audio in DSP

Per una riproduzione audio a basso consumo ad alte prestazioni, Android 4.4 aggiunge il supporto della piattaforma per il tunneling audio a un processore di segnale digitale (DSP) nel chipset del dispositivo. Con il tunneling, la decodifica audio e gli effetti di output vengono scaricati sul DSP, riattivando il processore dell'applicazione con minore frequenza e consumando meno batteria.

Il tunneling audio può migliorare notevolmente la durata della batteria in casi d'uso come l'ascolto di musica con le cuffie con lo schermo spento. Ad esempio, con il tunnel audio, il Nexus 5 offre fino a 60 ore di riproduzione audio fuori rete, con un aumento di oltre il 50% rispetto all'audio non tunnel.

Le applicazioni multimediali possono sfruttare il tunneling audio sui dispositivi supportati senza dover modificare il codice. Il sistema applica il tunneling per ottimizzare la riproduzione audio ogni volta che è disponibile sul dispositivo.

Visualizzatore che mostra l'effetto audio del miglioramento del volume

Visualizzazione di come l'effetto LoudnessEnhancer può rendere più udibili i contenuti vocali.

Il tunneling audio richiede il supporto dell'hardware del dispositivo. Al momento il tunneling audio è disponibile su Nexus 5 e stiamo collaborando con i nostri partner di chipset per renderlo disponibile su più dispositivi il prima possibile.

Monitoraggio audio

Le app possono usare nuovi strumenti di monitoraggio nell'effetto Visualizzatore per ricevere aggiornamenti sui livelli di picco e RMS di qualsiasi audio attualmente in riproduzione sul dispositivo. Ad esempio, puoi utilizzarla in modo creativo nei visualizzatori di musica o per implementare la misurazione della riproduzione in un media player.

Potenziatore di volume

Le applicazioni di riproduzione multimediale possono aumentare il volume dei contenuti vocali utilizzando il nuovo effetto LoudnessEnhancer, che funge da compressione con costanti di tempo specificamente ottimizzate per il parlato.

Timestamp audio per una migliore sincronizzazione AV

Il framework audio è ora in grado di segnalare i timestamp di presentazione dall'HAL di output audio alle applicazioni, per una migliore sincronizzazione audio-video. I timestamp audio consentono all'app di determinare quando un fotogramma audio specifico verrà (o è stato) presentato al di fuori del dispositivo all'utente. Puoi utilizzare le informazioni del timestamp per sincronizzare in modo più accurato l'audio con i frame video.

MiracastTM con certificazione Wi-Fi

I dispositivi Android 4.4 possono ora essere certificati secondo le specifiche del display Wi-Fi di Wi-Fi Alliance come compatibili con Miracast. Per facilitare i test, una nuova opzione per sviluppatori di display wireless espone impostazioni e controlli di configurazione avanzati per la certificazione dei display wireless. Puoi accedere all'opzione in Impostazioni > Opzioni sviluppatore > Certificazione display wireless. Nexus 5 è un dispositivo display wireless certificato Miracast.

Computing RenderScript

Grafico delle ottimizzazioni di Renderscipt

I benchmark delle prestazioni per Android 4.4 rispetto ad Android 4.3 vengono eseguiti sugli stessi dispositivi (Nexus 7, Nexus 10).

Miglioramenti costanti del rendimento

Quando le tue app utilizzano RenderScript, traggono vantaggio dall'ottimizzazione continua delle prestazioni nel runtime RenderScript stesso, senza la necessità di ricompilazione. Il grafico a destra mostra i miglioramenti nelle prestazioni di Android 4.4 su due chipset più diffusi.

Accelerazione GPU

Qualsiasi app che utilizza RenderScript su un dispositivo supportato beneficia dell'accelerazione GPU, senza modifiche o ricompilazioni del codice. Da quando il Nexus 10 ha presentato per la prima volta l'accelerazione GPU RenderScript, vari altri partner hardware hanno aggiunto supporto.

Ora con Android 4.4, l'accelerazione GPU è disponibile su Nexus 5, Nexus 4, Nexus 7 (2013) e Nexus 10. Stiamo collaborando con i nostri partner per renderla disponibile il prima possibile su più dispositivi.

RenderScript in NDK per Android

Ora puoi sfruttare RenderScript direttamente dal tuo codice nativo. Una nuova API C++ nel Native Development Kit (NDK) di Android ti consente di accedere alle stesse funzionalità RenderScript disponibili tramite le API del framework, incluse funzionalità intrinseche degli script, kernel personalizzati e altro ancora.

Se devi gestire attività di grandi dimensioni che richiedono prestazioni elevate da gestire nel codice nativo, puoi eseguirle utilizzando RenderScript e integrarle con il tuo codice nativo. RenderScript offre ottime prestazioni su una vasta gamma di dispositivi, con supporto automatico per CPU multi-core, GPU e altri processori.

Quando crei un'app che utilizza RenderScript tramite NDK, puoi distribuirla su qualsiasi dispositivo con Android 2.2 o versioni successive, proprio come con la libreria di supporto di RenderScript disponibile per le API framework.

Grafica

SurfaceFlinger GLES2.0

Android 4.4 aggiorna il suo SurfaceFlinger da OpenGL ES 1.0 a OpenGL ES 2.0.

Nuovo supporto di Hardware Composer per i display virtuali

L'ultima versione dell'hardware Android Composer, HWComposer 1.3, supporta la composizione hardware di un display virtuale oltre al display principale esterno (ad es. HDMI) e ha migliorato l'interoperabilità di OpenGL ES.

Nuovi tipi di connettività

Nuovi profili Bluetooth

Supporto di Android 4.4 per due nuovi profili Bluetooth, che consentono alle app di supportare una gamma più ampia di interazioni multimediali e a basso consumo. Bluetooth HID over GATT (HOGP) fornisce alle app un collegamento a bassa latenza con dispositivi periferici a bassa potenza come mouse, joystick e tastiere. Bluetooth MAP consente alle tue app di scambiare messaggi con un dispositivo nelle vicinanze, ad esempio un terminale per auto per l'uso in vivavoce o un altro dispositivo mobile. Come estensione del Bluetooth AVRCP 1.3, gli utenti possono ora impostare il volume assoluto sul sistema dai loro dispositivi Bluetooth.

Il supporto della piattaforma per HOGP, MAP e AVRCP si basa sullo stack Bluetooth Bluedroid introdotto da Google e Broadcom in Android 4.2. L'assistenza è disponibile immediatamente sui dispositivi Nexus e altri dispositivi compatibili con Android che offrono funzionalità Bluetooth compatibili.

Blaster IR

Android 4.4 introduce il supporto della piattaforma per i Blaster IR integrati, insieme a una nuova API e a un nuovo servizio di sistema che ti consente di creare app per sfruttarli.

Utilizzando la nuova API, puoi creare app che consentono agli utenti di controllare da remoto TV, sintonizzatori, interruttori e altri dispositivi elettronici nelle vicinanze. L'API consente all'app di verificare se lo smartphone o il tablet dispone di un emettitore a infrarossi, eseguire query sulla frequenza dell'operatore e inviare segnali a infrarossi.

Poiché l'API è standard su tutti i dispositivi Android con Android 4.4 o versioni successive, la tua app può supportare la più ampia gamma possibile di fornitori senza scrivere codice di integrazione personalizzato.

Supporto di TDLS Wi-Fi

Android 4.4 introduce un modo semplice per trasmettere in streaming contenuti multimediali e altri dati più velocemente tra dispositivi già collegati alla stessa rete Wi-Fi supportando il Wi-Fi Tunneled Direct Link Config (TDLS).

Accessibilità

Impostazioni a livello di sistema per i sottotitoli codificati

Android 4.4 ora supporta una migliore esperienza di accessibilità tra le app aggiungendo preferenze a livello di sistema per i sottotitoli. Gli utenti possono andare a Impostazioni > Accessibilità > Sottotitoli per impostare preferenze globali per i sottotitoli, ad esempio se mostrare o meno i sottotitoli e la lingua, la dimensione del testo e lo stile del testo da utilizzare.

Le app che utilizzano i video ora possono accedere alle impostazioni dei sottotitoli codificati dell'utente e modificare la presentazione in base alle preferenze dell'utente. Una nuova API Captioning Manager consente di controllare e monitorare le preferenze dell'utente per le didascalie. Gestione sottotitoli fornisce lo stato preferito per i sottotitoli codificati dall'utente, oltre alle impostazioni internazionali preferite, il fattore di ridimensionamento e lo stile del testo. Lo stile di testo include colori di sfondo e di primo piano, proprietà dei bordi e tipo di carattere.

Dispositivi mobili con orientamento orizzontale che mostra sottotitoli codificati a livello di sistema

Ora le app possono fare riferimento alle preferenze sottotitoli a livello di sistema dell'utente. Un esempio dello stile di visualizzazione previsto è mostrato direttamente nelle impostazioni.

Inoltre, le app che usano VideoView possono usare una nuova API per trasmettere uno stream di sottotitoli codificati insieme a uno stream video per il rendering. Il sistema gestisce automaticamente la visualizzazione dei sottotitoli nei frame video in base alle impostazioni a livello di sistema dell'utente. Attualmente, VideoView supporta la visualizzazione automatica dei sottotitoli solo in formato WebVTT.

Tutte le app che mostrano sottotitoli devono assicurarsi di controllare le preferenze dei sottotitoli a livello di sistema dell'utente e di eseguire il rendering dei sottotitoli il più fedelmente possibile a tali preferenze. Per ulteriori informazioni su come dovrebbero apparire specifiche combinazioni di impostazioni, puoi guardare un'anteprima dei sottotitoli in lingue, dimensioni e stili diversi direttamente nell'app Impostazioni.

API per l'accessibilità avanzata

Android 4.4 estende le API di accessibilità per supportare descrizioni strutturali e semantiche più precise e l'osservazione degli elementi sullo schermo. Con le nuove API, gli sviluppatori possono migliorare la qualità dei feedback accessibili fornendo ai servizi di accessibilità maggiori informazioni sugli elementi sullo schermo.

Nei nodi di accessibilità, gli sviluppatori ora possono determinare se un nodo è un popup, ottenerne il tipo di input e altro ancora. Puoi anche utilizzare nuove API per lavorare con nodi contenenti informazioni di tipo griglia, come elenchi e tabelle. Ad esempio, ora puoi specificare nuove azioni supportate, informazioni sulla raccolta, modalità Live Region e altro ancora.

I nuovi eventi di accessibilità consentono agli sviluppatori di seguire più da vicino i cambiamenti che si verificano nei contenuti delle finestre e ora possono ascoltare i cambiamenti nella modalità di esplorazione touch sul dispositivo.

Supporto per utenti internazionali

Mirroring disegnabile per le impostazioni internazionali RTL

Se la tua app ha come target utenti che utilizzano script RTL, puoi usare una nuova API per dichiarare che un disegnabile deve essere sottoposto a mirroring automatico quando le impostazioni internazionali dell'utente includono una lingua RTL.

Dichiarare un elemento disegnabile come mirroring automatico ti aiuta a impedire la duplicazione di asset nella tua app e riduce le dimensioni dell'APK. Quando i tuoi disegni sono riutilizzabili per le presentazioni LTR e RTL, puoi dichiarare le versioni predefinite come sottoposte a mirroring automatico e quindi ometterli dalle risorse RTL.

L'opzione Forza layout RTL semplifica il test della localizzazione dell'app.

Puoi dichiarare vari tipi di disegnabili come sottoposti a mirroring automatico nel codice dell'applicazione, ad esempio bitmap, nove-patch, livelli, elenchi di stati e altri disegnabili. Puoi anche dichiarare un trainabile come sottoposto a mirroring automatico nei file di risorse utilizzando un nuovo attributo.

Forza layout RTL

Per semplificare il test e il debug dei problemi di mirroring del layout senza passare a un linguaggio RTL, Android include una nuova opzione per sviluppatori per forzare la direzione del layout RTL in tutte le app.

L'opzione Forza layout RTL consente di attivare il layout RTL del dispositivo per tutte le impostazioni internazionali e di visualizzare il testo nella lingua corrente. In questo modo puoi trovare problemi di layout nella tua app, senza dover mostrare l'app in una lingua RTL. Puoi accedere all'opzione in Impostazioni > Opzioni sviluppatore > Forza direzione layout RTL.

Miglioramenti alla sicurezza

SELinux (modalità di applicazione)

Android 4.4 aggiorna la configurazione di SELinux da "permissiva" ad "enforcing". Ciò significa che le potenziali violazioni dei criteri all'interno di un dominio SELinux con un criterio di applicazione verranno bloccate.

Algoritmi crittografici migliorati

Android ha migliorato ulteriormente la sicurezza aggiungendo il supporto di altri due algoritmi crittografici. Al provider dell'archivio chiavi è stato aggiunto il supporto dell'algoritmo di firma digitale Elliptic Curve Digital Signature Algorithm (ECDSA) per migliorare la sicurezza della firma digitale, applicabile a scenari come la firma di un'applicazione o di una connessione dati. La funzione di derivazione della chiave Scrypt è implementata per proteggere le chiavi di crittografia utilizzate per la crittografia dell'intero disco.

Ulteriori miglioramenti

Sui dispositivi multiutente, le VPN vengono ora applicate per utente. In questo modo un utente può instradare tutto il traffico di rete attraverso una VPN senza influire sugli altri utenti del dispositivo. Inoltre, Android ora supporta il livello 2 FORTIFY_SOURCE e tutto il codice è compilato con queste protezioni. FORTIFY_SOURCE è stato migliorato per funzionare con il clang.

Strumenti per l'analisi dell'uso della memoria

Procstat

Un nuovo strumento chiamato procstats ti aiuta ad analizzare le risorse di memoria utilizzate dalla tua app, nonché quelle usate da altre app e servizi in esecuzione sul sistema.

Procstats tiene traccia dell'esecuzione delle app nel tempo, fornendo dati sulla durata delle esecuzioni e sull'utilizzo della memoria per determinarne l'efficienza. Questo è particolarmente importante per le app che avviano servizi in esecuzione in background, poiché consentono di monitorare il tempo di esecuzione e la quantità di RAM utilizzata durante questa operazione. Procstats raccoglierà anche i dati per le applicazioni in primo piano sull'utilizzo della memoria nel tempo per determinare il profilo di memoria complessivo dell'app.

Procstats può aiutarti a identificare i servizi in background avviati dalla tua app. Puoi tenere traccia del tempo di esecuzione di questi servizi e della quantità di RAM che utilizzano durante questa operazione. Procstats ti consente anche di profilare la tua app mentre è in primo piano, utilizzando la memoria utilizzata nel tempo per determinarne il profilo complessivo di memoria.

Il nuovo strumento procstats consente di controllare l'utilizzo della memoria di app e servizi nel tempo.

Lo strumento avanzato meminfo consente di visualizzare i dettagli della memoria utilizzata per un'app.

Puoi accedere ai procstat dallo strumento ADB incluso nell'SDK Android, adb shell dumpsys procstats. Inoltre, per la profilazione sul dispositivo, consulta l'opzione per sviluppatori di Statistiche di processo di seguito.

Stato della memoria e profilazione sul dispositivo

Android 4.4 include una nuova opzione per sviluppatori che semplifica l'analisi del profilo di memoria della tua app mentre è in esecuzione su qualsiasi dispositivo o emulatore. È particolarmente utile avere una visione del modo in cui l'app utilizza la memoria e le prestazioni sui dispositivi con RAM ridotta. Puoi accedere all'opzione in Impostazioni > Opzioni sviluppatore > Statistiche di processo

Dispositivi mobili che mostrano la nuova opzione Statistiche di processo Visualizzazione dei dettagli sull'utilizzo da parte dei dispositivi mobili nella nuova opzione Statistiche dei processi

Le statistiche di processo sono un modo pratico per controllare l'utilizzo della memoria da parte della tua app. Puoi confrontare la tua app con altre app e aumentare lo zoom su dati specifici relativi alla tua app o ai suoi servizi in background.

L'opzione Statistiche di processo mostra una serie di metriche di alto livello sull'utilizzo della memoria della tua app, in base ai dati raccolti utilizzando il nuovo servizio procstats. Nella schermata principale puoi vedere un riepilogo dello stato della memoria di sistema. Il verde indica la quantità relativa di tempo trascorso con un utilizzo ridotto della RAM, il giallo indica un utilizzo moderato della RAM e il rosso indica un utilizzo elevato (critico) della RAM

Di seguito è riportato un elenco che riassume il carico di memoria nel sistema di ciascuna app. Per ogni app, una barra blu indica il carico relativo della memoria calcolata (runtime x avg_pss) del suo processo, mentre una percentuale indica la quantità relativa di tempo trascorso in background. Puoi filtrare l'elenco in modo da visualizzare solo i processi in primo piano, in background o memorizzati nella cache e puoi includere o escludere i processi di sistema. Puoi anche modificare la durata dei dati raccolti in 3, 6, 12 o 24 ore e puoi includere o escludere la memoria uss.

Tocca l'app per esaminare più da vicino l'utilizzo della memoria di una specifica app in modo isolato, tocca l'app. Per ogni app, ora puoi vedere un riepilogo della memoria consumata e della percentuale dell'intervallo di raccolta eseguito dall'app. Puoi anche visualizzare l'utilizzo medio e massimo nel periodo di raccolta, nonché sotto i servizi dell'app e la percentuale di tempo di esecuzione.

L'analisi dell'app utilizzando i dati in Statistiche di processo può rivelare problemi e suggerire possibili ottimizzazioni per l'app. Ad esempio, se l'app è in esecuzione più a lungo del dovuto o utilizza troppa memoria in un determinato periodo di tempo, potrebbero esserci bug nel codice che puoi risolvere per migliorare le prestazioni dell'app, soprattutto se in esecuzione su un dispositivo con poca RAM.