Android 6.0 Marshmallow rilasciato: prime impressioni

Lunedì 5 ottobre 2015, a 6 giorni dal keynote di presentazione dei nuovi Nexus 5X e 6P, alle 18 ore italiane, Google ha pubblicato le factory image di Android 6.0 per tutti i Nexus supportati (5, 6, 7 2013, 9 e Player), insieme a quelle di Lollipop relative alle patch di sicurezza di ottobre (queste anche per i device che non potranno più ricevere le major release, cioè i Nexus 4, 7 2012 e 10).
Poche ore dopo ha preso il via anche il rollout OTA di entrambe le tipologie di aggiornamento per quasi tutti i Nexus (l’elenco si è andato ad infoltire durante i giorni successivi) e nella nottata tra il 5 e il 6, ha finito di caricare i sorgenti di Marshmallow nell’AOSP, per dare quindi il via anche ai lavori sulle varie ROM alternative. Per completare il tutto, ha avviato immediatamente il roll out anche sugli Android One, la gamma di dispositivi di fascia bassa supportati da Google.

Da quel che ricordo, Google non è mai stata così rapida nel rilasciare un aggiornamento, il rollout di Lollipop sui Nexus impiegò diverse settimane, addirittura sulle versioni 3G e LTE dei tablet si dovette aspettare più di un mese. Questa volta invece ha aggiornato i vecchi Nexus prima ancora che i nuovi siano in vendita (siamo in fase di prevendita, la vendita vera e propria dovrebbe iniziare il 19 ottobre, anche in Italia) ed è arrivata a far partire il rollout OTA a poche ore da quello delle factory image. Questo potrebbe dare una spinta anche ai vari partner che hanno da mesi una base a disposizione su cui lavorare.

Finita questa digressione sul rilascio, mi accingo ad illustrare le mie impressioni a caldo su Marshmallow.
Prima di iniziare, se volete conoscere le novità di M, vi rimando all’articolo pubblicato sul nostro blog (aggiornato da poco con gli ultimi dettagli trapelati con la versione stabile) e al mini-sito predisposto da Google per presentare Marshmallow.
Lunedì sera ho installato M sul mio Nexus 5 tramite la factory image, quindi eccovi il riscontro dei primi 5 o 6 giorni di utilizzo.

Ad un primo sguardo sembra di avere ancora Lollipop, l’interfaccia non è cambiata, tra l’altro il Material Design è un linguaggio di stile giovanissimo, difficile pensare che Google abbia già voglia di qualcosa di nuovo, inoltre molte app non seguono ancora i nuovi canoni (ma vedo che viene adottato abbastanza velocemente, in rapporto a quanto sono poco propensi gli sviluppatori ad aggiornare alle novità, visto che la base di utenza di una nuova versione aumenta molto lentamente).
Ovviamente l’interfaccia non è tutto, infatti sotto il cofano troviamo molti cambiamenti (nonostante già Lollipop sia stato uno stravolgimento). Da Android 5.1.1 ad Android 6.0 ci sono oltre 27.000 commit; qualcuno ha azzardato che forse è la versione di Android in cui sono stati effettuati più cambiamenti in assoluto.
A dire il vero qualcosa nell’interfaccia è cambiato, c’è il nuovo launcher, con un drawer completamente diverso, ma non mi interessa, soppiantato all’istante da Nova Prime. Quello che salta all’occhio sono le nuove animazioni e transizioni, molto più piacevoli e in linea con i dettami del Material Design, come l’animazione di apertura delle app che si sviluppa dall’icona invece di partire dal basso. Ogni tanto ho trovato incertezze, ma qualche bug di gioventù bisogna sempre aspettarselo.
Tutto sommato l’interfaccia è molto reattiva e fluida, l’apertura delle app è quasi istantanea (come su Lollipop).

Veniamo ad un “dispiacere”, annunciato a dire il vero, Now Ovunque (Now on Tap). Effettuando una pressione prolungata sul tasto Home viene avviato il classico Google Now, nessuna traccia dell’assistente contestuale promesso. Questo comportamento è normale, poichè attualmente la funzione è disponibile solo in lingua inglese (quella di sistema, non di Google), quindi a Mountain View avranno pensato che è meglio fornire qualcosa di funzionante, piuttosto di un avviso che invita ad attendere il supporto della propria lingua. In ogni caso avrei preferito che, almeno la prima volta, l’utente fosse avvisato della sua temporanea assenza, in modo che chiunque si aspetti l’apertura di On Tap, non si ritrovi spaesato vedendo che non c’è.
Trovo negativo che a 5 mesi dall’annuncio, ci sia una sola lingua supportata, molto negativo, considerando che questa potrebbe essere la killer feature di M, Google avrebbe potuto renderlo disponibile già con le Developer Preview e quindi iniziare ad affinarlo, per poi proporlo ad un pubblico più ampio al momento del debutto ufficiale.
Comunque, impostando il sistema in inglese, l’ho provato per qualche minuto, funziona abbastanza bene, ma non sempre è in grado di fornire informazioni. A volte, su tante parole significative presenti nella schermata, fornisce riscontri soltanto su una di quelle.
Dà il meglio di sè quando si tratta di fornire informazioni su contenuti che hanno senso anche in inglese, come ad esempio brani, film internazionali o luoghi di una certa rilevanza, sintomo che il supporto della lingua è necessario e per questo Google avrà deciso di limitarlo in base a quella di sistema e non a quelle inserite nelle impostazioni di Google (in quest’ultimo caso l’avrebbero attivato tutti e via con le lamentele).
In conclusione, devo dire che è apprezzabile la scelta di sostituire lo swipe dal tasto Home con la sua pressione prolungata, uniforma l’esperienza d’uso tra dispositivi con navbar virtuale e quelli con tasti fisici e non permette di avviare Now per errore (mi è capitato tante volte di avviarlo con semplici scroll, nel browser ad esempio) e questa nuova gesture, unita alla nuova animazione di apertura nasconde in modo efficace il tempo di caricamento dell’assistente, rendendo una transizione fluida e senza rendering a schermo, al contrario di quello che avveniva prima.

Now_1 Now_2 Now_3
Now_4 Now_5 Now_6

Passiamo ad altro, a qualcosa sicuramente più interessante e atteso, poichè Google ha fatto nuove promesse in merito, l’autonomia.
Sappiamo tutti che Google promise miracoli già con Lollipop, ma alla fine le aspettative furono deluse, sia per l’immagine che diede di Project Volta, sia per alcuni bug che hanno causato e continuano a causare un drain esagerato.
Personalmente Lollipop non mi ha creato grossi problemi in questo senso, la funzione di risparmio energetico permetteva (e permette ancora in M) di recuperare qualche ora in emergenza, cioè con batteria agli sgoccioli (Google avrebbe dovuto sottolineare che, per come è concepito, il risparmio energetico e quindi quei famosi 90 minuti in più di autonomia, sono da intendersi con batteria quasi a terra e quindi sfruttabili solo in casi estremi), ma di fatto non aumenta l’autonomia durante il normale uso; le API per lo scheduling dei job, la seconda componente di Volta, penso non siano mai state utilizzate dagli sviluppatori, se non in qualche caso eccezionale, quindi non hanno potuto influire positivamente sull’autonomia. Comunque L mi garantiva lo stesso uso di KitKat sotto WiFi, ma c’erano effettivamente dei problemi quando si passava ai dati (cosa molto frequente durante l’uso quotidiano), c’era un bug nel modulo radio che, una volta aperta una connessione da parte di un’app, non ne permetteva la corretta chiusura, causando un drain esagerato (mediamente con utilizzo misto WiFi/dati o solo dati, si arrivava a dimezzare l’autonomia, se non peggio). Google è venuta a conoscenza di questo bug, ma purtroppo ha deciso di risolverlo solo in M, lasciando così quasi il 25% dell’utenza Android (percentuale che probabilmente aumenterà, anche con M sulla piazza) con seri problemi di autonomia.
Finita questa parentesi su Lollipop, dò le mie impressioni sull’autonomia di Marshmallow.
Stavolta Google sembra aver lavorato bene, il bug della radio pare essere stato risolto e inoltre M ha accorgimenti (Doze e App Standby) che aumentano effettivamente l’autonomia durante l’uso quotidiano (non soltanto in situazioni di emergenza, come in Lollipop).
Doze mi sembra molto efficace, durante la notte posso tranquillamente lasciare il Nexus 5 acceso e connesso, in 10 ore perde appena un 5% di batteria, senza influire in maniera significativa sulle app in esecuzione, le mail continuano ad arrivare ed essere notificate; GravityScreen (l’app che uso per accendere e spegnere automaticamente il display) accende immediatamente lo schermo appena prendo lo smartphone la mattina; altre app come social (Twitter nel mio caso) o messaggistica si sincronizzano tranquillamente.
Ovviamente rimane una soluzione drastica e aggressiva, ad esempio i messaggi istantanei, con Doze in funzione, potrebbero non essere così instantanei (dipende dal sistema utilizzato dalle app per la gestione delle notifiche push, se viene sfruttato GCM le notifiche ad alta priorità continuano ad essere istantanee), ma per come è concepita, l’utente non dovrebbe accorgersi di nulla, visto che entra in funzione proprio quando ci sono molte probabilità che non stiamo usando il device e, appena lo afferriamo, Doze smette di funzionare e parte la sincronizzazione di tutte le app. Inoltre ottimizzandole a dovere (utilizzando le API fornite da Google)  l’impatto su queste sarebbe minimo.
Dall’altro lato, App Standby dovrebbe invece migliorare l’autonomia proprio con device in uso (che può essere in tasca, quindi non stazionario, requisito necessario per l’intervento di Doze, o con schermo acceso). Questo si occupa di mettere le app che non usiamo tanto spesso (e che non hanno processi in foreground o notifiche) in condizione di non nuocere alla batteria (dalle Opzioni sviluppatore è possibile vedere le app messe in stato di non attività e magari modificarne la condizione). Nel mio uso, siccome non installo app che non utilizzo spesso, App Standby ha un impatto minimo. Potrebbe essere molto più efficace sui dispositivi distribuiti dagli OEM in quanto forniti di bloatware.
Inoltre è da vedere come interverranno i developer per adattare le proprie app, se da un lato Doze li obbliga ad ottimizzarle al meglio (non vengono accettati compromessi), App Standby permette qualche escamotage (ad esempio inserire una notifica permanente o un processo in foreground) e quindi magari usare soluzioni di più rapida implementazione, ma anche che vanno nel verso opposto allo scopo di queste nuove ottimizzazioni.
Complessivamente l’autonomia mi sembra che sia effettivamente aumentata, il mio Nexus 5 può stare per molto più tempo acceso (e non in carica) e garantirmi lo stesso utilizzo, se non qualcosa in più; se prima ogni notte dovevo spegnerlo o metterlo in modalità aereo, ora posso poggiarlo sulla scrivania e non pensarci. Se App Standby, non riesce a recuperare molto, i tempi morti in cui interviene Doze permettono di risparmiare batteria per sfruttarla in modo migliore.
Fuori campo WiFi non sembra avere più problemi, in circa 6 ore consecutive sotto LTE (con rete a volte non al top, tanto da constringerlo a switchare verso HSPA varie volte), il Nexus 5 è riuscito a fare lo stesso lavoro di Lollipop, intaccando circa il 10% in meno di batteria.
Purtroppo c’è un però, Google ha finalmente risolto un problema, ma pare ce ne sia un altro in agguato: ai fini della localizzazione, Android scansiona periodicamente le reti WiFi disponibili (in Marshmallow anche i Beacon Bluetooth, ovviamente il tutto è disattivabile), anche col WiFi spento; nessun problema fin qui, quando non connesso ad un access point, l’impatto del WiFi sulla batteria è nullo e se le scansioni non sono molto frequenti, il drain di batteria è inconsistente. Purtroppo in M queste scansioni sembrano diventare troppo frequenti, se non addirittura continue, avendo quindi un sensibile impatto sull’autonomia. Molti hanno infatti segnalato un consumo anomalo da parte del WiFi anche fuori copertura (almeno è quello che appare nelle statistiche) e Google ha provveduto a riconoscere le segnalazioni come bug e vi ha assegnato la priorità massima, quindi la sua risoluzione dovrebbe avvenire a breve (speriamo che non aspetti il rilascio di N, come ha fatto col bug del modulo radio); anche io ho constatato questa cosa, nelle statistiche di utilizzo, quando ero sotto dati, ad un certo punto il WiFi si è attivato ed è rimasto in questo stato per ben 3 ore, nonostante fossi lontanissimo da un access point.
Non è da escludere che ci siano anche dei problemi di rilevazione dei consumi e della carica residua, mi dà l’impressione che a volte non sia preciso nel segnalare il consumo delle varie attività e che indichi una quantità di carica inferiore a quella effettiva (la ricarica avviene troppo velocemente, come se la batteria fosse già parzialmente carica), ma per questo ultimo caso forse è da calibrare la batteria, avendo fatto un’installazione pulita.
Per concludere il paragrafo relativo all’autonomia, il lavoro c’è stato ed è tangibile, se con device in uso M non fa miracoli (Android rimane sostanzialmente un sistema operativo con multitasking reale, non suo surrogato e aggiungo “Per fortuna”), almeno non nel mio caso, complessivamente c’è stato un sensibile miglioramento, percepibile fin dai primi giorni. Vedremo più avanti, quando usciranno le prime release di “manutenzione” e app ottimizzate per funzionare con Marshmallow se la situazione migliorerà ulteriormente; per ora mi ritengo abbastanza soddisfatto.

Screenshot_20151009-195828 Screenshot_20151009-195839 Screenshot_20151012-160226
Screenshot_20151012-160311 Screenshot_20151012-160416

Un’altra delle novità tanto attese di M è la gestione dei permessi, qui Google ha cercato di raggiungere un compromesso, non potendo obbligare tutti i developer ad aggiornare le app con le nuove API, o compromettere in blocco il funzionamento della maggior parte di queste.
Il risultato è simile a quello disponibile da tempo su iOS, ma gli sviluppatori, quei pochi che hanno iniziato ad aggiornare, compresi quelli delle Google Apps, hanno implementato la cosa in maniera non ottimale, quindi ci si ritrova con app che si dimenticano di chiedere un permesso, magari per una funzione necessaria e di conseguenza l’app diventa inutilizzabile per quell’aspetto, lasciando spaesato l’utente.
Succede anche che le app chiedano le autorizzazioni ad accedere alle risorse al primo avvio e non quando servono effettivamente, generando una serie di vari pop up. Ci sono anche app che una volta negato un permesso, gestiscono bene l’eccezione, non andando in crash, ma rilasciano un errore generico, senza dare indicazioni sul perchè e come ripristinarne il funzionamento. Tutte le app che ho provato (tranne Maps che per avere l’autorizzazione a modificare le impostazioni di sistema forniva un link ad ulteriori informazioni), al momento della richiesta del permesso, non spiegano perchè lo vogliono, neanche quando il permesso viene negato in modo definitivo, cosa che reputo fondamentale, per sensibilizzare l’utente .
Google in questi casi può far poco (tranne che sulle proprie app, se non sono quelle allo stato dell’arte e da esempio, iniziamo bene), ma potrebbe almeno introdurre una revisione umana, in fase di approvazione delle app per la pubblicazione sul Play Store, in modo da far implementare la cosa nel migliore dei modi, un utente alle prime armi, magari non riuscirebbe a spiegarsi determinati funzionamenti anomali.
Qui comunque l’impressione è ovviamente positiva, quelli che fanno falsa retorica sostenendo che non hanno nulla da nascondere e di conseguenza i permessi a runtime sono superflui e inutili (ho letto anche questo), possono non aggiornare e non avranno “noie”, o aspettare che la futura TouchWiz glieli accetti tutti in modo automatico (frecciatina ad iNiccolò 😀 ), ma io reputo fondamentale dare il controllo totale sulle proprie cose, quindi “Era ora”.

Screenshot_20151012-161421 Screenshot_20151012-161513 Screenshot_20151012-161625
Screenshot_20151012-182859 Screenshot_20151012-161715 Screenshot_20151012-161731

In generale, oltre ai permessi, l’intera gestione delle app è diventata più granulare e dettagliata, se prima non si potevano gestire in maniera adeguata tutti gli aspetti di queste, ora il problema non si pone, l’utente ha il controllo su svariati comportamenti e statistiche di utilizzo.
Anche la gestione delle notifiche è migliorata, potendo disabilitare selettivamente i banner (con Lollipop o tutti o nessuno), a parte che mi sembra sia stato aumentato il livello di priorità con cui un’app può “interrompere” l’utilizzo del device con una notifica heads up.
Chi è alle prime armi, potrebbe perdersi nei nuovi menù, ma ravanare in questi non è necessario al corretto funzionamento delle app, tranne che per quelle che richiedono particolari permessi e non sono ancora state aggiornate per supportarli, mi riferisco ai permessi per modificare le impostazioni di sistema e per mostrare contenuti al di sopra delle altre app, che per ovvie ragioni non sono concessi di default.

Screenshot_20151012-163142 Screenshot_20151012-163214 Screenshot_20151012-163254

Le novità che mi sono piaciute parecchio sono il nuovo Do not Disturb e la condivisione diretta.
Separare il Non disturbare dalla gestione dei volumi (molto comodo tra l’altro avere i controlli dei vari volumi immediatamente raggiungibili) la trovo un’ottima cosa (due cose diverse è giusto che non siano confuse e mischiate, per me), anche se rimane la possibilità di attivare il profilo Solo sveglie agendo ulteriormente sul bilanciere del volume, ma questa è la reintroduzione della modalità Silenzioso che tutti reclamavano. Comunque non è tanto questa separazione a piacermi, ma le regole automatiche per l’attivazione dei vari profili. Ci si può sbizzarrire con innumerevoli combinazioni, ad esempio si può fare in modo che il device vada automaticamente in Silenzio totale quando si sta per partecipare ad un evento inserito in un determinato calendario, ma limitatamente a quelli a cui si è scelto di partecipare; oppure fare in modo che ad una certa ora venga attivato il profilo Solo sveglie e ristabilire le normali interruzioni ad un determinato orario la mattina, ma molto più tardi nel weekend.
Personalmente sfrutto la cosa per dimenticarmi di spegnere lo smartphone, la sera semplicemente non lo considero più, tanto so che con Doze l’impatto sulla batteria sarà minimo e durante la notte non mi disturberà con le notifiche, il sabato e la domenica inoltre sa che può tornare a fare casino solo più tardi rispetto agli altri giorni 😀
La condivisione diretta permette di risparmiare parecchi passaggi, la prima volta che me la sono trovata davanti mi sono detto “Wow, fatto con un solo tap”. Trovarsi nel menù di condivisione (che ora è solo a griglia, molto meglio del lungo elenco che compariva in alcune app) i contatti con cui si interagisce frequentemente, legati all’app usata come mezzo di comunicazione, è molto comodo. Ovviamente c’è bisogno del supporto da parte delle app adatte a ricevere determinati contenuti, per ora ho trovato Telegram e Google Messenger tra quelle che uso, ce ne saranno anche altre già compatibili, ma magari non usandole non mi riempie il menù di contatti.

Screenshot_20151012-163735 Screenshot_20151012-163824 Screenshot_20151012-163945
Screenshot_20151012-164037 Screenshot_20151012-164124

Il sistema è stato decisamente affinato e ottimizzato, da subito dà l’impressione di aver raggiunto una certa maturità, ovviamente il lavoro non è finito, è un OS in continua evoluzione e che comunque presenta bug e piccole sviste. Dicevo del problema WiFi, ma si può tirare in ballo anche il ritardo assurdo con cui viene avviato il modulo radio e di conseguenza il riconoscimento e lo sblocco della SIM (problema presente anche nelle prime release di Lollipop, poi risolto, ma che ora si ripresenta, ok che non c’è più necessità di spegnere il device, ma….); piccoli difetti nelle nuove animazioni; qualche svista nei menù (ad esempio con M alcune categorie di contenuti devono avere obbligatoriamente un’app predefinita, per evitare i continui prompt di richiesta, ma nelle impostazioni questa cosa non viene specificata, lasciando gli utenti con un interrogativo del tipo “Perchè non mi cancella le preferenze di apertura di tutti i browser?”) e varie ed eventuali. Un OS così complesso non può nascere perfetto, più è ampia la base di utenza, più problemi verranno fuori.
Per me è da rivedere anche la scorciatoia della lock screen per avviare l’assistente vocale, perfettamente inutile se si ha un qualche codice di blocco, poichè recepisce il comando, ma non lo esegue fino allo sblocco del device (quindi stessa situazione di prima, ma con operazioni invertite; perchè allora togliere la scorciatoia al dialer, che trovo più utile in caso di chiamate di emergenza?). C’è da dire che il problema è dei non anglofoni, cioè noi, poichè con lingue supportate è possibile registrare un’impronta audio della voce (questa viene registrata anche per l’italiano per poter usare Ok Google da qualsiasi schermata, ma non è ancora sfruttabile in quest’altra situazione) e quindi consentire l’esecuzione dei comandi vocali anche a device bloccato, ma un toggle per scegliere tra la scorciatoia del dialer o dell’assistente vocale non sarebbe stato male.
Il Nexus 5 soffriva anche di memory leak, ogni due giorni andava riavviato poichè il sistema operativo saturava la RAM, riducendo le risorse a disposizione delle app, con ovvie conseguenze; per fortuna il gestore delle risorse di M non presenta più questo problema e in 4 giorni di operatività ininterrotta l’occupazione della RAM è sempre stata di circa il 60%. Il sistema tende anche ad essere molto meno aggressivo rispetto a Lollipop, non forzandosi di lasciare almeno 7-800MB liberi (su 1.8GB sfruttabili, non chiedetemi che fine abbiano fatto quei 200MB mancanti, ma è così da KitKat), questo riduce anche i ricaricamenti delle app lasciate per lungo tempo in background. Insomma, la rinnovata ottimizzazione permette di gestire le risorse in maniera più efficiente.
La gestione dei contatti è più veloce, quella del testo più immediata; per gestire i file (anche su chiavette USB, avendo finalmente l’OTG nativo) non sono più richieste app di terze parti; è più facile rendersi conto del livello di sicurezza del device (non bisogna interpretare strane sigle per capire quanto è aggiornato e se il sistema è compromesso appaiono degli avvisi in fase di avvio); è più intuitiva la comprensione dell’impatto delle app sulle risorse.
Per parafrasare un’affermazione della concorrenza, adesso si ha a che fare con la versione di Android (Stock) più completa di sempre. Su device con Android non stock magari tante novità non le si vedranno, essendo state implementate in precedenza dal produttore, ma per chi ha a che fare con Android Stock, la situazione cambia. Considerando poi che un vecchio device come il Nexus 5 non può avere tutto (vedi lettore di impronte digitali, supporto nativo alla ricarica rapida, o tutto ciò che comporta l’inserimento del Sensor Hub), prendere adesso un Nexus non dà l’impressione di avere qualcosa di molto lontano dalle varie versioni personalizzate, a livello di feature implementate.

Screenshot_20151012-165306 Screenshot_20151012-165318 Screenshot_20151012-165420
Screenshot_20151012-165428 Screenshot_20151012-165559 Screenshot_20151012-165645
Screenshot_20151012-165955

In conclusione, questo primo approccio con Marshmallow è stato molto positivo, anch’esso ha i suoi difetti, ma è ovvio che verranno appianati col tempo. L’aver implementato così tante cose in maniera nativa, permetterà ai produttori di abbandonare le loro soluzioni, in favore di quelle stock, facilitando così il supporto e magari rendendo più celeri gli aggiornamenti.

Android 6.0 è una major release? Per me non c’erano e non ci sono dubbi, sotto il cofano sono cambiate parecchie cose, è troppo riduttivo pensare che questo sia solo un grosso bugfix di Lollipop, è impensabile credere che Google un anno fa avrebbe potuto rilasciare tanta roba tutta insieme.
Vedremo se non deluderà le aspettative, quando ci saranno i primi bugfix e la maggior parte delle app saranno aggiornate e si spera ottimizzate. Alla prossima 😉