Nella giornata di ieri, verso le ore 19 (ora italiana) Google ha annunciato al mondo, dopo il susseguirsi di mesi e mesi di rumors, l’arrivo ufficiale di Android 4.4 KitKat e di Google Nexus 5. Del nuovo device ne abbiamo parlato in un nostro precedente articolo di ieri, oggi invece ci soffermeremo se tutte le caratteristiche che ha Android 4.4 KitKat.
Primo impatto con generalità di Android 4.4 KitKat
Google ha progettato e realizzato quesa versione di del sistema operativo Android per essere molto fluida, molto reattiva e per avere una piacevolezza di utilizzo massima anche per dispositivi non molto recenti. Infatti i produttori potranno rilasciare Android 4.4 KitKat su tutti gli smartphone che hanno 512 MB o più di memoria RAM (sappiamo che è praticamente impossibile che i dispositivi più datati vengano aggiornati dai produttori). Questo grazie ad un lavoro fatto dagli sviluppatori di Google sulla riduzione del consumo di memoria RAM del sistema durante la fase di inattività e anche grazie alle nuovi API introdotte con questa versione, che aiutano gli sviluppatori di terze parti a progettare applicazione che consumano un quantitativo di memoria RAM inferiore rispetto alle versioni precedenti di Android.
I produttori che immetteranno sul mercato nuovi smartphone con a bordo Android 4.4 KitKat, potranno ottenere vantaggi da linee guida mirate, dalla possibilità di settare la memoria cache della scheda grafica ed ulteriori opzioni per poter sfruttare la nuova versione Android in maniera efficiente, anche se dotati di poca memoria RAM. Codici Dalvik JIT, ottimizzazione della cache, e migliorie nella zRAM aiuteranno anch’essi a mantenere il sistema fluido anche nei dispositivi con poca memoria RAM.
Android 4.4 KitKat è capace di ridurre anche l’utilizzo del processore nelle operazioni che richiedono poca energia, ottimizzando e migliorando così l’autonomia del dispositivo su cui è installato. Inoltre esso è progettato per proteggersi in maniera aggressiva da tutte quelle applicazione che richiedono un elevato quantitativo di memoria RAM. Quando vengono avviati servizi multipli in una sola volta, come per esempio quando si cambia connessione di rete, Android non li avvia più tutti insieme, bensì avvia i servizi in maniera seriale, ovvero in piccoli gruppi, sempre allo scopo di ridurre i picchi di memoria RAM.
Interessante novità che riguarda tutti gli sviluppatori, è che ora è possibile, grazie alla nuova API, ActivityManager.isLowRamDevice(), settare il comportamento di ogni singola applicazione, nel senso che si possono disabilitare alcune funzioni per i dispositivi che hanno uno scarso quantitativo di memoria RAM, cosicchè avere in un certo senso l’applicazione completa di tutte le sue features nei dispositivi di fascia alta come il Samsung Galaxy Note 3, LG G2 o l’ultimissimo Google Nexus 5, e delle funzionalità ridotte in terminali di fascia bassa.
[divider]
Near Field Comunication (NFC) più sicuro con Android 4.4 KitKat
Questa nuova versione di Android introduce una nuova piattaforma di sicurezza per tutte le transazioni NFC (ancora non sviluppate in Italia se non in alcuni negozi di Milano). Adesso ogni singola applicazione può emulare una Smart Card NFC, consentendo agli utenti di “tappare” per avviare transazioni con un app di loro scelta. Inoltre le applicazioni possono utilizzare la nuova funzione Lettore, che permette loro di fungere da lettori di smart card NFC.
Questo nuovo sistema emula il protocollo di trasmissione ISO/IEC 7816 tipico delle smart card NFC riproducendolo leggermente modificato in ISO/IEC 14443-4. Nel caso che più applicazioni utilizzano lo stesso protocollo contemporaneamente, il sistema farà decidere di volta in volta all’utente con quale applicazione continuare. Il protocollo delle smart card NFC è molto usato nelle struture che offrono il pagamento tramite NFC (ripeto, in Italia questo servizio è sviluppato pochissimo).
Il pagamento su Android 4.4 KitKat tramite NFC avverrà in maniera quasi istantanea. Infatti dopo che avremo dato il consenso all’acquisto tramite NFC, il sistema verificherà che il protocollo di trasmissione dati sia utilizzato da una sola applicazione, nel caso che ci sia un conflitto, verrà lasciato decidere all’utente, dopo di che il sistema verificherà che tutto il processo sia avvenuto senza problemi ed infine ultimerà la transazione. Questi pagamenti NFC saranno introdotti per tutti i devices Android che saranno aggiornati alla versione 4.4 e che saranno dotati di tecnologia NFC.
[divider]
Funzione di stampa via WiFi di Android 4.4 KitKat
Con l’introduzione dell’ultima versione di Android, adesso è possibile sfruttare tutte le stampanti che abbiamo collegate sia da WLAN (Wireless Local Are Network) sia da remoto per stampare direttamente da dispositivo mobile. Inoltre i dispositivi aggiornati a questa versione saranno in grado di settare diverse opzioni, come la stampante da utilizzare per la stampa (in caso di più stampanti connesse), il tipo di carta utilizzata (classica, per fotografie), la dimensione della carta utilizzata (A4, A5) e la scelta di quali pagine stampare (tutte, solo quelle pari, solo quelle dispari).
Questo è disponibile sempre grazie alle nuovi API introdotte con Android 4.4 KitKat, che gestiscono tutte le informazioni che passano tra le applicazioni che richiedono la stampa di un file e la specifica stampante che riceve tale file. Quindi tutte le applicazioni che introdurranno queste nuove API nel loro codice potranno sfruttare la funzionalità di stampa. Inoltre un servizio di printing manager assicurerà la sicurezza delle informazioni che passeranno tra le applicazioni e le stampanti.
Nativamente, questo servizio utilizzerà il formato PDF come file di stampa. Se l’applicazione che richiede la stampa è capace di convertire il file, qualora fosse in un altro formato, nel formato PDF, tutto il processo sembrerà immediato; invece se l’applicazione non sarà in grado di farlo, dovrà necessariamente utilizzare delle API di Android che permettono questa trasformazione. Dunque in questo caso, il tempo impiegato sarà di qualche secondo in più (niente comunque di così trascendendale).
Le nuove API dovranno essere utilizzate necessariamente anche dai produttori di stampanti che vorranno sfruttare questo servizio.
[divider]
Accesso ai dati
Un nuovo sistema di visualizzazione delle immagini, dei documenti e di tutti i files presenti sia in locale che in cloud è stato introdotto con Android 4.4 KitKat. In soldoni questo sarà un file manager che potrà incorporare al suo interno tutti i files, locali o stipati nel cloud (non necessariamente Google Drive), delle applicazioni che aggiorneranno il proprio codice introducendo le nuovi API Google. Chiaramente tutti i files saranno sincronizzati tra tutti i devices che saranno aggiornati ad Android 4.4 KitKat e che potranno quindi accedere a questo file manager.
Se si crea per esempio un document provider per un servizio cloud o locale, è possibile fornirlo agli utenti come parte della tua applicazione Android, cosicchè dopo aver scaricato e installato l’applicazione, gli utenti avranno accesso immediato al vostro servizio da qualsiasi applicazione che partecipa al progetto.
[divider]
Supporto di Android 4.4 KitKat ai sensori a basso consumo energetico
Il nuovo sistema operativo di Google introduce il supporto a nuove tipologie di sensori a basso consumo di energia. Essi sono tre e sono: sensore di dosaggio, sensore di rilevamento passi e contapassi.
- Il sensore di dosaggio riduce drasticamente il consumo energetico di tutti i sensori, attivandoli solamente quando se ne ha bisogno. Infatti tutti i sensori rimangono in fase di stand-by durante l’uso quotidiano dello smartphone: essi vengono attivati solamente ad intervalli regolari, i quali possono essere gestiti e modificati direttamente dall’utente. Questo sensore per il momento è disponibile sul nuovo Nexus 5, ma Google sta lavorando con i produttori di SoC per l’introduzione di esso all’interno dei chip che andranno ad equipaggiare i dispositivi futuri.
- Android 4.4 KitKat supporta poi anche il sensore di rilevamento passi ed il contapassi, i quali vengono attivati solamente quando lo smartphone avverte che stiamo camminando, correndo o salendo le scale. Anche questi sensori hanno un consumo energetico ridotto all’osso. Il sensore di rilevamento passi sfrutta l‘accellerometro per capire quando l’utente sta facendo un passo mentre il contapassi, come dice la parola stessa, tiene il conto di tutta l’attività fisica che è stata svolta. Siccome l’algoritmo che fa funzionare questi due sensori è scritto direttamente nel sistema, gli sviluppatori non dovranno fare i salti mortali per aggiornare le loro applicazione ed aggiungere questa nuova feature. Così come il sensore di dosaggio, questi due sensori sono presenti a bordo del Nexus 5 e saranno presto presenti anche negli altri smartphone futuri.
[divider]
Sistema di gestione degli SMS di Android 4.4 KitKat
Con Android 4.4 KitKat è stato introdotto l’aggiornamento dell’applicazione Google Hangouts che da adesso in poi sarà in grado di gestire anche gli SMS. Molti produttori però, hanno già la loro applicazione degli SMS. Per evitare che queste applicazioni dello stesso genere vadano in conflitto, Google, nella nuova versione di Android, ha introdotto delle nuovi API capaci di gestire l’arrivo e l’invio degli SMS disabilitando momentaneamente l’applicazione che l’utente non ha scelto come principale per la gestione degli SMS. Questa nuova funzione aiuterà tutti quegli utenti i cui smartphone saranno dotati di diverse applicazioni di messaggistica
[divider]
Nuovi splendidi modi di sviluppare in Android
Tantissime nuove features per gli sviluppatori sono state introdotte con Android 4.4 KitKat, con la possibilità ora di sfruttare ogni singolo pixel presente nel display: infatti da ora sarà possibile creare applicazioni in full screen. Quindi la barra delle notifiche e la barra di navigazione potranno essere fatte scomparire all’interno di determinate applicazioni. Questa è una “manna dal cielo” per tutte quelle applicazioni che sono utilizzate per la visualizzazione di video, immagini o anche per i giochi. Questa funzione dà la possibilità agli sviluppatori di creare delle meravigliose app, con meravigliose interfacce grafiche senza la barra di notifica e di navigazione che macchiavano in un certo senso l’intera UI.
Per essere sicura che tutti gli utenti trovassero facile ritornare alla modalità classica, Google ha introdotto in Android 4.4 KitKat una nuova gesture con la quale sarà possibile riabilitarele due barre. Sarà infatti sufficiente effettuare uno swipe dal margine del alto del display o dal margine basso del display per far riemergere l’applicazione nella modalità classica.
In molte applicazioni, sono presenti anche degli effetti di transizione tra una schermata e l’altra. Con Android 4.4 KitKat, Google ha deciso di immettere nuovi effetti aumentando sensibilmente le scelte degli sviluppatori. Altra miglioria apportata da Android 4.4 KitKat per gli sviluppatori è la possibilità di rendere la barra delle notifiche e la barra di navigazione completamente trasparente, mostrando così l’intero contenuto del display: tipico uso di questa funzione è quella di integrarla in un’applicazione che necessita di far vedere in alcune schermate una modalità full screen.
Ultime novità per gli sviluppatori riguardano la barra delle notifiche e il browser web. La barra delle notifiche è stata ridisegnata permettendo l’introduzione, oltre che delle classiche notifiche, anche del testo, delle immagini, del cronometro, dei progressi delle varie applicazioni e molte altre. Per quanto riguarda il browser web, Android 4.4 KitKat introduce una completa nuova implementazione della vista web basata su Chrominium Web. L’ultimissima versione di Chrominium Web supporta tutti i più moderni standard, dando più stabilità e più fluidità nella costruzioni di tutti i contenuti basati sul web. Chrominium Web supporta anche l’HTML5, i CSS3 ed il Javascript. A proposito di Javascript, Chrominium Web porta con se una versione aggiornata del motore Javascript (V8), il quale incrementa significativamente la performance del Javascript. Il nuovo Chrominium Web sarà compatibile solamente con devices che hanno a bordo Android 4.4 KitKat o superiori.
[divider]
Nuove capacità multimediali di Android 4.4 KitKat
Catturare screen shot è sempre stato facile con i devices Android, mentre per catturare un video del proprio display era un po più difficile, perchè ci si doveva affidare ad applicazioni di terze parti che richiedevano molto spesso i permessi di root. Con Android 4.4 KitKat tutto questo è passato, in quanto è disponibile una nuova feature che permette appunto lo screen recording. Il video salvato viene archiviato come file MP4 con codec H.264, quindi occupando meno spazio nel disco. Questa funzione può essere utile senza dubbio a tutti i blogger che desiderano fare una recensione di un qualsiasi terminale; in questo modo, non ci sarà più bisogno di munirsi di video camera, tre piedi e quant’altro per fare le riprese.
Android 4.4 KitKat porta con se anche l’adattamento della risoluzione dei video che guardiamo sul nostro devices Android. L’adattamento della risoluzione è una feature che è già presente nei video con formato MPEG-DASH, ed ora è stata portata anche su Android. Sarà dunque possibile cambiare la risoluzione di un video in streaming durante la riproduzione e se, la rete supporta pienamente la nuova risoluzione, non ci sarà nessun blocco dell’immagine e l’utente non si accorgerà di nulla, tranne chiaramente della diversa qualità del video.
E’ stato introdotto anche il supporto all’ HTTP Live Streaming (HLS), che principalmente migliora tantissimo la qualità delle video chiamate supportando la versione 7 dell’HLS.
Per quanto riguarda le novità dell’audio, con Android 4.4 KitKat è stato introdotto il supporto al chip DSP, il quale ottimizzerà e ridurrà al minimo il consumo di batteria durante la riproduzione audio di contenuti multimediali. L’incremento dell’autonomia è netto secondo quanto dice Google. Per esempio, il chip DSP è presente nel nuovo Nexus 5 e regala ad esso un incremento durante la riproduzione della musica con il display spento di un ben 50%, facendo passare da 30 (ore di riproduzione media negli altri devices) a 60 ore di ascolto continuato. Come detto questo chip è presente nel Nexus 5, ma Google sta lavorando per poterlo esportare nei SoC degli altri smartphone.
Anche il WiFi Miracast riceve qualche aggiornamento con Android 4.4 KitKat. Sarà infatti adesso possibile accedere a numerose impostazioni da sviluppatore semplicemente andando nelle impostazioni > opzioni sviluppatore > certificazioni wireless display
[divider]
Miglioramenti grafici
Dal punto di vista della grafica, Android 4.4 KitKat introduce dei miglioramenti a livello di codice introducendo il RenderScript. Questa nuova funzione migliora notevolmente l’accellerazione grafica della GPU, rendendola più performante senza aumentare di molto i consumi energetici. Il RenderScript sarà introdotto come detto con Android 4.4 KitKat e per il momento i devices supportati sono, oltre al Nexus 5, il Nexus 7 2013, il Nexus 10 ed il Nexus 4.
Il nuovo sistema operativo introduce miglioramenti anche per quanto riguarda la gestione delle multi texture. Questi miglioramenti sono possibili grazie all’aggiornamento dall’OpenGL ES 1.0 all’OpenGL ES 2.0
[divider]
Nuove tipologie di connessioni
Con la versione Android 4.4 KitKat sono stati introdotti numerosi nuovi tipi di connessione tra dispositivi. Uno fra tutti è il bluetotth HID, capace di migliorare la portata del segnale e contemporaneamente il consumo energetico che risulta essere molto inferiore.
Successivamente abbiamo l’introduzione del supporto alla porta infrarossi, già disponibile in tanti smartphone non Nexus, che permette di controllare tutti i dispositivi dotati di porta infrarossa come i televisori, gli hi-fi, i condizionatori ecc…
[divider]
Nuove opzioni all’interno del menu accessibilità
Nel menu delle accessibilità sono state introdotte delle nuove opzioni, come il settaggio delle scritte all’interno del telefono, con la possibilità di ridurre o ingrandire la grandezza del testo, di cambiarne il colore, e di cambiare la lingua all’intero telefono. Inoltre è possibile cambiare la tipologia di font utilizzato, per adattarla la meglio alle esigenze degli utenti.
Introdotte anche altre opzioni per gli sviluppatori, che adesso, grazie alle nuovi API, possono avere un supporto ad una struttura più precisa ed una descrizione semantica degli oggetti mostrati nello schermo.
[divider]
Miglioramenti alla sicurezza dell’interno sistema
Android 4.4 KitKat migliora tutta la sicurezza generale del sistema, con però alcuni miglioramenti più mirati. Ad esempio viene aggiornata la configurazione SELinux passando da “permissiva” a “far rispettare”. Questo significa che qualsiasi applicazione violi potenzialmente la sicurezza del sistema eludendo il controllo del SELinux, questa verrà automaticamente bloccata e segnalata.
Un altro miglioramento alla sicurezza sta nell’adozione di due nuovi algoritmi di crittografia e al supporto dell’Elliptic Curve Digital Signature Algorithm (ECDSA), che rendono più sicura la firma digitale.
All’interno del multi utente è stato introdotta la possibilità di creare una rete VPN singola per ogni utente. Questo permette di indirizzare tutto il traffico derivante dalla connessione di quel determinato utente all’interno dell’area personale di quell’utente, senza inondare le altri reti VPN degli altri utenti di dati. Inoltre adesso Android 4.4 KitKat supporta il livello 2 di FORTIFY_SOURCE , con il quale sono compilati tutti i codici del sistema.
[divider]
Tools per migliorare l’analisi dell’uso della memoria da parte delle applicazioni
Un nuovo tool chiamato procstats, aiuta ad analizzare l’utilizzo di memoria di ogni singola applicazione e di ogni singolo servizio attivo nel sistema. Questo tool mantiene traccia nel corso del tempo della memoria occupata periodicamente dalle applicazioni e dai servizi e ne determina la loro efficienza. Questo è molto importante per le applicazioni che cominciano ad avviare servizi in background. In questo modo, si ha un aiuto in più per scovare quelle applicazioni che, avviando tanti servizi, consumano molta memoria RAM rallentando l’intero sistema. Procstats è accessibile tramite l’adb tool integrato nell’SDK di Android adb shell dumpsys procstats.
Android 4.4 KitKat introduce anche un nuovo tool che si chiama Process Stats utile per gli sviluppatori in quanto serve a monitorare il profilo della memoria della tua applicazione mentre sta funzionando in un emulatore o in un altro device. Questo è utile per scoprire come si comporta l’applicazione in dispositivi dotati di poca memoria RAM. Il tool è accessibile seguendo questi passaggi: Impostazioni > Opzioni sviluppatore > Process stats.
Questo tool mostra i picchi dell’uso della memoria RAM utilizzata dall’applicazione: i dati sono raccolti utilizzando Procstats. Nella schermata principale, viene mostrato il sommario di tutte le attività della nostra applicazione attraverso una barra. La parte verde della barra indica i periodi in cui l’applicazione ha usato poca memoria RAM, la parte gialla i periodi in cui ha utilizzato una normale quantità di memoria RAM e la parte rossa indica i momenti critici in cui è stata utilizzata un’elevata quantità di memoria RAM.
Sotto questa barra, vengono riportate tutte le applicazioni di cui Procstats ha assimilato i dati. La barra blu al di sotto del nome delle applicazioni rappresenta il carico di memoria calcolata dal sistema mentre la percentuale presente accanto al nome delle applicazioni rappresenta l’effettivo tempo che le applicazioni hanno passato in background. Si possono inoltre filtrare i risultati mostrando solamente le applicazioni che sono attive in primo piano, solo quelle in backgroud, solamente i processi cache o solamente i processi di sistema. Si può inoltre regolare la durata della raccolta dati, passando da 3, 6 , 12 o 24 ore. Per aprire il sommario di una singola voce, basta “tappare” su di essa e verrà mostrata con le tre barre verde, gialla e rossa del sommario.
Con questo importante tool dunque, è possibile monitorare nel tempo il consumo effettivo che ha la nostra applicazione di memoria RAM. E’ anche possibile eventuali problemi che riporta la nostra applicazione