# Android Nougat

Android Nougat (versione 7) è il settimo major update e la quattordicesima versione del sistema operativo Android. Inizialmente pubblicato in versione alfa il 9 marzo 2016, è stato poi distribuito il 22 agosto 2016, con i dispositivi Nexus tra i primi a ricevere l'aggiornamento. L'LG V20 è stato il primo smartphone commercializzato con Nougat.
Nougat introduce notevoli modifiche al sistema operativo e alla sua piattaforma di sviluppo, compresa la possibilità di visualizzare più app sullo schermo contemporaneamente in una visualizzazione a schermo diviso, il supporto per le risposte in linea alle notifiche e una modalità di risparmio energetico Doze espansa che limita la funzionalità del dispositivo una volta che lo schermo è rimasto spento per un periodo di tempo. Inoltre, la piattaforma è passata a un ambiente Java basato su OpenJDK e ha ricevuto il supporto per l'API di rendering della grafica Vulkan e aggiornamenti di sistema "senza interruzioni" sui dispositivi supportati. Nougat ha ricevuto recensioni positive.
Il nuovo formato di notifica delle app ha ricevuto particolare apprezzamento, mentre l'interfaccia multitasking è stata vista come un cambiamento positivo, ma i revisori hanno riscontrato app incompatibili. I critici hanno avuto esperienze contrastanti con la modalità di risparmio energetico di Doze, ma sono state anche valutate positivamente le installazioni di app più veloci e le "modifiche" all'interfaccia utente.
Ad ottobre 2018, il 28,2% dei dispositivi che hanno accesso a Google Play eseguono Nougat, con il 18,1% su Android 7.0 (API 24) e il 10,1% su Android 7.1 (API 25), rendendo Nougat il nome in codice Android più utilizzato, mentre Android 6.0 Marshmallow (API 23) è più popolare di una delle versioni di Nougat.

## Cronologia

L'uscita aveva il nome in codice "New York Cheesecake". Il 9 marzo 2016, in vista della conferenza degli sviluppatori Google I/O, Google ha fatto uscire la prima versione alpha di Android "N" come parte di un nuovo "Programma Beta Android" destinato ai test di sviluppatori e appassionati prima del lancio del prodotto. Le build di anteprima degli sviluppatori erano compatibili con gli attuali dispositivi Google Nexus; il 5X, 6P, 6, 9, Pixel C e Nexus Player. Il "Programma Beta Android" che è stato introdotto consente ai tester di optare per aggiornamenti over-the-air alle nuove versioni beta man mano che vengono messe in commercio.
Il 13 aprile 2016 è uscita Android N Beta Preview 2. Google ha ulteriormente discusso di Android "N" durante il keynote I/O del 18 maggio 2016 e ha presentato la sua nuova piattaforma di realtà virtuale, Daydream. La Beta Preview 3, la prima versione di anteprima ritenuta adatta per una più ampia beta testing pubblica, è stata lanciata in questo momento. Google ha anche annunciato che terrà un concorso per scegliere il nome del sistema operativo.
La Beta Preview 4 è stata distribuita il 15 giugno 2016. Il 30 giugno 2016, Google ha annunciato che il nome della release di N sarebbe "Nougat"; è stato anche confermato che Nougat sarebbe la versione 7.0 di Android.
La Beta Preview finale, la numero 5, è uscita il 18 luglio 2016.
Android 7.0 è stato messo in commercio il 22 agosto 2016, con Nexus 6, 5X, 6P, 9, Nexus Player, Pixel C e General Mobile 4G come primi dispositivi a ricevere l'aggiornamento. Dave Burke, Vice President of Engineering di Android, ha dichiarato nell'agosto 2016 che gli aggiornamenti a Nougat verranno commercializzati trimestralmente come release di manutenzione incentrate su "perfezionamenti continui e lucidatura". Il 6 settembre 2016, LG ha annunciato il V20, il primo smartphone da spedire con Nougat preinstallato. Google ha presentato gli smartphone Pixel e Pixel XL di prima qualità durante un evento focalizzato sull'hardware il 4 ottobre 2016, con i telefoni Pixel che sostituiscono la serie Nexus.
Gli aggiornamenti ai dispositivi esistenti variano a seconda del produttore e dell'operatore e il supporto dei driver per la versione dal produttore del rispettivo sistema su chip di un dispositivo. I principali produttori, tra cui HTC, Sony e Motorola hanno annunciato l'intenzione di aggiornare una gamma di dispositivi recenti a Nougat. Qualcomm ha dichiarato che non avrebbe supportato Nougat sui dispositivi che utilizzavano i propri system-on-chip Snapdragon 800 e 801 per ragioni non divulgate. Sebbene siano state distribuite versioni di anteprima per sviluppatori di Nougat per il dispositivo, Sony ha dichiarato che non aggiornerebbe l'Xperia Z3 (che utilizza Snapdragon 801) alla versione finale a causa di "limitazioni impreviste della piattaforma". È stato segnalato che la Suite di test di compatibilità di Google (i cui test devono essere passati per ricevere la certificazione) ha specificato che tutti i dispositivi che eseguono Nougat devono supportare le API grafiche Vulkan o OpenGL ES 3.1 - nessuno dei quali è supportato dalla grafica Adreno 330.
Un aggiornamento noto come Android 7.1 è stato precaricato sugli smartphone Pixel e Pixel XL di Google usciti a ottobre 2016; la nuova versione aggiunge il supporto per la piattaforma di Daydream VR di Google, le tastiere di immagini, il supporto esteso per le emoji (incluse versioni maschili e femminili), il supporto per le azioni da visualizzare nei menu sulle scorciatoie delle app della schermata principale e altre nuove funzionalità. Un'anteprima di 7.1 per dispositivi Nexus esistenti è stata lanciata tramite Android Beta Program nel corso del mese, ed è poi uscita come Android 7.1.1 il 5 dicembre 2016. A partire da 7.1.1, il Nexus 6 e il Nexus 9 erano considerati alla fine del ciclo di vita e non hanno ricevuto ulteriori aggiornamenti.
Android 7.1.2 è uscito nell'aprile 2017, fornendo vari miglioramenti delle funzionalità dei dispositivi a marchio Nexus e Pixel.

## Funzioni
### Esperienza utente

Nougat ridisegna il pannello delle notifiche, che ora presenta una riga più piccola di icone per le impostazioni, sostituisce le schede di notifica con un nuovo design a "foglio" e consente risposte in linea per le notifiche. Questa funzione è implementata tramite l'esistenza su Android Wear. Più notifiche da una singola app possono anche essere "raggruppate", e c'è un maggiore controllo per app sulle notifiche.
Una modalità di visualizzazione a schermo diviso è stata introdotta per i telefoni, in cui due app possono essere scattate per occupare le metà dello schermo. Una modalità multi-finestra sperimentale è disponibile anche come funzionalità nascosta, in cui più app possono apparire contemporaneamente sullo schermo in finestre sovrapposte.
Il meccanismo di risparmio energetico "Doze" introdotto in Android Marshmallow è stato ampliato per includere uno stato attivato quando il dispositivo funziona a batteria e lo schermo è rimasto spento per un periodo di tempo, ma non è fermo. In questo stato, l'attività di rete è limitata e alle app vengono concesse "finestre di manutenzione" in cui possono accedere alla rete ed eseguire attività in background. Come in Marshmallow, lo stato Doze completo viene attivato se il dispositivo è fermo con lo schermo spento per un periodo di tempo. Una nuova modalità "Risparmio dati" limita l'utilizzo dei dati mobili in background e può attivare funzioni interne in app progettate per ridurre l'utilizzo della larghezza di banda, come il limite della qualità dei media di streaming.

### Piattaforma

Nel dicembre 2015, Google ha annunciato che Android Nougat avrebbe cambiato il suo Java Runtime Environment dal defunto Apache Harmony a OpenJDK, l'implementazione open source della piattaforma Java gestita da Oracle Corporation e dalla comunità Java. Android Runtime (ART) ora incorpora un sistema di compilazione guidato dal profilo, che utilizza un compilatore JIT e una profilazione accanto all'attuale compilatore in anticipo per ottimizzare ulteriormente le app per l'hardware di un dispositivo e altre condizioni in background.
Nougat introduce un sistema per abilitare aggiornamenti di sistema automatici, "senza soluzione di continuità", basati sulla condivisione di codice con l'implementazione di funzionalità simili su Chrome OS. Il sistema utilizza una coppia di partizioni SquashFS; il sistema Android viene eseguito da una partizione "online", mentre gli aggiornamenti vengono applicati in background a una partizione "offline" ridondante. Al successivo avvio successivo all'installazione di un aggiornamento, la partizione ridondante viene designata come attiva e da quel momento il dispositivo si avvia nel sistema aggiornato. La precedente partizione di sistema viene mantenuta come backup in caso di errore di aggiornamento e per fungere da partizione "offline" per il prossimo aggiornamento. Questo sistema rimuove il requisito per il riavvio del dispositivo nell'ambiente di ripristino del sistema per applicare l'aggiornamento (che impedisce l'utilizzo del dispositivo fino al completamento dell'aggiornamento) e fornisce inoltre la possibilità di eseguire automaticamente il rollback di un aggiornamento in caso di un fallimento. A causa dei requisiti di partizionamento di questo sistema, i dispositivi esistenti non supporteranno aggiornamenti continui. Inoltre, a causa delle modifiche ART su Nougat, le app non devono più essere ricompilate al primo avvio dopo un aggiornamento del sistema.
Developer Preview 2 ha aggiunto il supporto della piattaforma per Vulkan, la nuova API di rendering 3D a basso livello per aumentare OpenGL ES ma con prestazioni grafiche superiori.
Nougat è la prima versione con supporto per Unicode9.0 e include il supporto emoji più aggiornato per le tonalità della pelle delle emoji.
Android 7.1 aggiunge il supporto API nativo per l'implementazione di tastiere per immagini; telefonia multi-endpoint; menu di scelta rapida e risorse icona arrotondate per le app sui lanciatori; e supporto per la piattaforma di realtà virtuale di Google Daydream. La funzione di Google Daydream è una specifica "modalità VR", con tecnologia avanzata per ridurre la latenza grafica, una "modalità di prestazioni sostenute" per assistere gli sviluppatori nell'ottimizzazione delle app sul profilo termico di un dispositivo, un nuovo algoritmo di localizzazione combina l'input di vari sensori del dispositivo e l'integrazione delle notifiche di sistema nell'interfaccia utente di VR.

### Sicurezza

In risposta alla famiglia di bug di Stagefright divulgata e risolta nel 2015, sono state apportate numerose modifiche per rafforzare lo stack multimediale contro le vulnerabilità future. È stato implementato il rilevamento degli overflow dell'intero runtime, impedendo che la maggior parte dei bug di programmazione di Stagefright diventasse vulnerabilità, oltre a contribuire a correggere e prevenire tali bug. Il processo monolitico di MediaServer di Android è stato ridisegnato per aderire meglio al principio del privilegio minimo. MediaServer è ora suddiviso in diversi processi separati, ognuno dei quali è in esecuzione nella propria sandbox non privilegiata e ha concesso solo le autorizzazioni richieste per la sua attività. Ad esempio, solo l'AudioServer può accedere al Bluetooth e libstagefright ora viene eseguito all'interno della sandbox MediaCodecService, a cui viene concesso solo l'accesso alla GPU. Ulteriori vincoli sono stati posti sullo stack multimediale attraverso seccomp.
Sono stati attivati vari meccanismi per ridurre la possibilità che il codice maligno venga iniettato e/o eseguito all'interno del kernel Linux, inclusa la divisione della memoria del kernel in segmenti logici per codice e dati, con autorizzazioni di sola lettura e non esecuzione come appropriato. Al kernel è stato inoltre impedito di accedere direttamente alla memoria dello spazio utente, e una protezione dello stack più forte è stata abilitata nel compilatore GCC per ridurre lo smashing dello stack. Per limitare l'esposizione del kernel a codice potenzialmente dannoso, perf è stato disabilitato per impostazione predefinita, i comandi ioctl sono stati limitati da SELinux e seccomp-bpf è stato abilitato per garantire ai processi la possibilità di limitare le chiamate di sistema.
Sui dispositivi che spediscono con Android Nougat, la norma "Avvio verificato" (introdotta parzialmente su KitKat e visualizzazione delle notifiche all'avvio su Marshmallow) deve essere rigorosamente applicata. Se i file di sistema sono corrotti o modificati in altro modo, il sistema operativo consentirà il funzionamento solo in modalità ad utilizzo limitato o si rifiuterà di eseguire l'avvio.

## Ricezione dalla critica

Dieter Bohn di The Verge ha elogiato la nuova interfaccia multitasking di Android Nougat, definendola "attesa da tempo" per i tablet Android. Anche se inizialmente ha trovato l'implementazione "confusa", ha scritto che ha funzionato bene una volta che l'ha capito correttamente, anche se ha notato che "alcune app non supportano completamente lo schermo diviso, mentre altre funzionano bene ma fanno comunque un avviso". A Bohn è piaciuto anche il nuovo modo di rispondere a qualsiasi messaggio di notifica, affermando "Android ha avuto a lungo un vantaggio in notifiche utili e coerenti" rispetto a iOS, e ha aggiunto "ora che le risposte rapide sono standard su di esso, non vedo che il piombo diminuisce" . Ha inoltre evidenziato "ritocchi" in tutto, inclusi i pulsanti rapidi nel cassetto delle notifiche, il menu Impostazioni con più informazioni visive e un'app Fotocamera che è stata "ripulita un po'", come modifiche di benvenuto. Bohn ha dichiarato di non aver notato alcun miglioramento significativo della batteria nonostante la funzione di risparmio energetico Doze in Nougat. Ha anche scritto ampiamente sul fatto che, anche se Nougat è "fantastico", "è un peccato che ci voglia così tanto tempo prima che qualcuno lo veda", scrivendo sulla mancanza di aggiornamenti alla maggior parte dei dispositivi Android, e che "a meno che tu non abbia un Nexus, potrebbero volerci un paio di mesi, potrebbe volerci un anno, prima che diventi disponibile sul tuo telefono".
Chris Velazco di Engadget ha anche elogiato le nuove notifiche delle app in bundle, scrivendo che le notifiche delle precedenti versioni di Android "sedevano lì" fino all'interazione, ma Nougat "fa un lavoro molto migliore di raggrupparle per app e far sì che le cose vengano fatte". Ha evidenziato la possibilità di espandere una notifica Gmail in bundle per visualizzare soggetti e mittenti di singoli messaggi. Velazco ha dichiarato che il multitasking a schermo diviso era un "grosso problema", ma ha anche riscontrato app non compatibili. Anche gli elementi visivi nell'app Impostazioni, i pulsanti rapidi nel menu a discesa delle notifiche e il nuovo supporto per la lingua e le emoji sono stati dei punti salienti positivi nella revisione. Velazco ha notato un miglioramento della batteria dalla funzione di risparmio energetico Doze, affermando che "il Nexus 6P sembrava guadagnare circa un'ora o due di autonomia in standby". Ha anche scritto che installare e avviare le app potrebbe essere "un po' più veloce del solito" grazie al nuovo compilatore di app di Nougat e spera che gli sviluppatori di giochi utilizzeranno la nuova API Vulkan per alcuni "giochi per dispositivi mobili davvero belli".