Android Nougat
# Android Nougat

Android Nougat (con nombre en código Android N durante el desarrollo) es la séptima versión principal y la decimocuarta versión original descontinuada del sistema operativo Android. Lanzado por primera vez como una versión de prueba alfa el 9 de marzo de 2016, se lanzó oficialmente el 22 de agosto de 2016, siendo los dispositivos Nexus los primeros en recibir la actualización. El LG V20 fue el primer teléfono inteligente lanzado con Nougat.

Nougat introduce cambios notables en el sistema operativo y su plataforma de desarrollo, incluida la capacidad de mostrar múltiples aplicaciones en la pantalla a la vez en una vista de pantalla dividida, soporte para respuestas en línea a notificaciones y un modo de ahorro de energía Doze ampliado que restringe la funcionalidad del dispositivo una vez que la pantalla ha estado apagada durante un período de tiempo. Además, la plataforma cambió a un entorno Java basado en OpenJDK y recibió soporte para la API de renderizado de gráficos Vulkan y actualizaciones del sistema sin problemas en los dispositivos compatibles.

Nougat recibió críticas positivas. El nuevo formato de notificación de la aplicación recibió elogios especiales, mientras que la interfaz multitarea se consideró un cambio positivo, pero los revisores experimentaron aplicaciones incompatibles. Los críticos tenían experiencias mixtas con el modo de ahorro de energía Doze, pero también se revisaron positivamente las instalaciones más rápidas de aplicaciones y los ajustes en la interfaz de usuario.

En octubre de 2020, el 8,49% de los dispositivos Android ejecutan Nougat (ya no reciben actualizaciones de seguridad), el 5,01% con Android 7.0 (API 24) y el 3,48% con Android 7.1 (API 25).

## Historia

El lanzamiento se denominó internamente "New York Cheesecake". El 9 de marzo de 2016, antes de la conferencia de desarrolladores de Google I/O, Google lanzó la primera versión alfa de Android "N" como parte de un nuevo "Android Beta Program" destinado a ser probado por desarrolladores y entusiastas antes de su lanzamiento oficial "este verano". Las compilaciones de vista previa para desarrolladores solo eran compatibles con los dispositivos Google Nexus actuales; 5X, 6P, 6, 9, Pixel C y Nexus Player. El "Android Beta Program" que se introdujo permitió a los evaluadores optar por recibir actualizaciones inalámbricas de las nuevas versiones beta a medida que se lanzaban.

El 13 de abril de 2016, se lanzó Android N Beta Preview 2. Google habló más sobre Android "N" durante el discurso de apertura de I/O el 18 de mayo de 2016 y presentó su nueva plataforma de realidad virtual, Daydream. Beta Preview 3, la primera versión preliminar considerada adecuada para pruebas beta públicas más amplias, se lanzó en este momento. Google también anunció que realizaría un concurso para determinar el nombre de lanzamiento oficial del sistema operativo.

Beta Preview 4 se lanzó el 15 de junio de 2016. El 30 de junio de 2016, Google anunció que el nombre de lanzamiento de N sería "Nougat"; también se confirmó que Nougat sería la versión 7.0 de Android.

La Beta Preview final, 5, se publicó el 18 de julio de 2016.

Android 7.0 se lanzó oficialmente el 22 de agosto de 2016, con Nexus 6, 5X, 6P, 9, Nexus Player, Pixel C y General Mobile 4G como los primeros dispositivos en recibir la actualización. Dave Burke, vicepresidente de ingeniería de Android, declaró en agosto de 2016 que las actualizaciones de Nougat se lanzarían trimestralmente como lanzamientos de mantenimiento que se centran en "mejoras y pulidos continuos". El 6 de septiembre de 2016, LG anunció el V20, el primer teléfono inteligente que se envía con Nougat preinstalado. Google presentó los teléfonos inteligentes Pixel y Pixel XL propios durante un evento centrado en el hardware el 4 de octubre de 2016, con los teléfonos Pixel reemplazando la serie Nexus.

Las actualizaciones de los dispositivos existentes varían según el fabricante y el proveedor, y el fabricante del respectivo sistema en chip de un dispositivo admite el controlador para la versión. Los principales fabricantes, incluidos HTC, Sony y Motorola, anunciaron la intención de actualizar una gama de sus dispositivos recientes a Nougat. Qualcomm declaró que no admitiría Nougat en dispositivos que usen su sistema en chips Snapdragon 800 y 801 por razones no reveladas. Aunque se lanzaron versiones preliminares para desarrolladores de Nougat para el dispositivo, Sony declaró que no actualizaría el Xperia Z3 (que usa el Snapdragon 801) a la versión final debido a "limitaciones imprevistas de la plataforma". Se informó que el conjunto de pruebas de compatibilidad de Google (cuyas pruebas deben aprobarse para recibir la certificación oficial) especificaba que todos los dispositivos que ejecutan Nougat deben ser compatibles con las API de gráficos Vulkan u OpenGL ES 3.1, ninguna de las cuales es compatible con el núcleo de gráficos Adreno 330 del dispositivo. Se supone que el Fairphone 2 es el único dispositivo con el chipset Qualcomm Snapdragon 801 que brinda soporte oficial para Android 7.1.2, cumpliendo con su esfuerzo por lograr una mayor longevidad para un dispositivo más sustentable.

Una actualización posterior al lanzamiento conocida como Android 7.1 se cargó previamente en los teléfonos inteligentes Pixel y Pixel XL de Google lanzados en octubre de 2016; la nueva versión agregó soporte para la plataforma VR Google Daydream, teclados de imagen, soporte expandido de emoji (incluidas las versiones masculinas y femeninas), soporte para acciones que se mostrarán en los menús de los atajos de aplicaciones de la pantalla de inicio y otras características nuevas. A finales de mes, se lanzó una versión preliminar de 7.1 para dispositivos Nexus existentes a través del programa Beta de Android, y se lanzó oficialmente como Android 7.1.1 el 5 de diciembre de 2016. A partir de 7.1.1, Nexus 6 y Nexus 9 se consideraron al final de su vida útil y no recibieron más actualizaciones.

Android 7.1.2 se lanzó en abril de 2017, proporcionando varias mejoras y mejoras de funcionalidad menores a los dispositivos de la marca Nexus y Pixel.

## Características

### Experiencia de usuario

Nougat rediseña el tono de notificación, que ahora presenta una fila más pequeña de íconos para la configuración, reemplazando las tarjetas de notificación con un nuevo diseño de "hoja" y permitiendo respuestas en línea para notificaciones. También se pueden "agrupar" varias notificaciones de una sola aplicación, y existe un mayor control por aplicación sobre las notificaciones.

Se introdujo un modo de visualización de pantalla dividida para los teléfonos, en el que se pueden ajustar dos aplicaciones para ocupar la mitad de la pantalla. Un modo experimental de múltiples ventanas también está disponible como una función oculta, donde múltiples aplicaciones pueden aparecer simultáneamente en la pantalla en ventanas superpuestas.

El mecanismo de ahorro de energía "Doze" introducido en Android Marshmallow se amplió para incluir un estado activado cuando el dispositivo está funcionando y la pantalla ha estado apagada durante un período de tiempo pero no está estacionaria. En este estado, la actividad de la red está restringida y las aplicaciones reciben "ventanas de mantenimiento" en las que pueden acceder a la red y realizar tareas en segundo plano. Como en Marshmallow, el estado Doze completo se activa si el dispositivo está parado con la pantalla apagada por un período de tiempo. Un nuevo modo "Ahorro de datos" restringe el uso de datos móviles en segundo plano y puede activar funciones internas en aplicaciones que están diseñadas para reducir el uso de ancho de banda, como limitar la calidad de los medios de transmisión.

### Plataforma

En diciembre de 2015, Google anunció que Android Nougat cambiaría su Java Runtime Environment del extinto Apache Harmony a OpenJDK, la implementación oficial de código abierto de la plataforma Java mantenida por Oracle Corporation y la comunidad Java. Android Runtime (ART) ahora incorpora un sistema de compilación guiado por perfiles, que utiliza un compilador JIT y la creación de perfilajes junto con su actual compilador con anticipación para optimizar aún más las aplicaciones para el hardware de un dispositivo y otras condiciones en segundo plano.

Nougat introduce un sistema para permitir actualizaciones automáticas del sistema "fluidas", basadas en y compartiendo código con la implementación de una funcionalidad similar en Chrome OS. El sistema usa un par de particiones SquashFS; el sistema Android se ejecuta desde una partición "en línea", mientras que las actualizaciones se aplican en segundo plano a una partición "sin conexión" redundante. En el siguiente arranque después de la instalación de una actualización, la partición redundante se designa como activa para arrancar en el sistema operativo actualizado. Este sistema elimina el requisito de que el dispositivo se reinicie en el entorno de recuperación del sistema para aplicar la actualización (lo que evita que el dispositivo se utilice hasta que se complete la actualización) y también proporciona una copia de seguridad del sistema operativo existente en caso de falla. Google eligió habilitar actualizaciones integradas solo para los dispositivos enviados con Nougat (o posterior), en lugar de permitir que los dispositivos anteriores admitan la función después de volver a particionar. Además, debido a los cambios ART en Nougat, ya no es necesario volver a compilar las aplicaciones en el primer arranque después de una actualización del sistema.

Developer Preview 2 agregó soporte de plataforma para Vulkan, una nueva API de renderizado 3D de bajo nivel alternativa a OpenGL ES con mayor rendimiento de gráficos.

Nougat es la primera versión que admite Unicode 9.0 y viene con emoji actualizado, además de soporte para tonos de piel de emoji.

Android 7.1 agrega compatibilidad con API nativa para implementar teclados de imagen; teléfonos de múltiples terminales; menús de acceso directo y activos de iconos redondeados para aplicaciones en lanzadores; y soporte para la plataforma de realidad virtual Google Daydream. El entorno Daydream incluye un "modo de rendimiento sostenido" para ayudar a los desarrolladores a optimizar las aplicaciones para el perfil térmico de un dispositivo, un nuevo algoritmo de seguimiento de la cabeza que combina la entrada de varios sensores del dispositivo y la integración de notificaciones del sistema en la interfaz de usuario de VR.

### Seguridad

En respuesta a la familia de errores Stagefright revelada y corregida en 2015, se realizaron varios cambios para fortalecer la pila de medios contra futuras vulnerabilidades. Se implementó la detección de desbordamiento de enteros en tiempo de ejecución, lo que evita que la mayoría de los errores de programación similares a Stagefright se conviertan en vulnerabilidades, además de ayudar a corregir y prevenir dichos errores. El proceso monolítico MediaServer de Android fue rediseñado para adherirse mejor al principio de mínimo privilegio. MediaServer ahora está dividido en varios procesos separados, cada uno ejecutándose en su propio aislamiento de procesos sin privilegios, y se le otorga solo los permisos necesarios para su tarea. Por ejemplo, solo AudioServer puede acceder a Bluetooth, y libstagefright ahora se ejecuta dentro de la zona de pruebas MediaCodecService, que solo tiene acceso a la GPU. Se establecieron más restricciones en la pila de medios a través de seccomp.

Se habilitaron varios mecanismos para reducir la posibilidad de que se inyecte y/o ejecute código malicioso dentro del kernel de Linux, incluida la división de la memoria del kernel en segmentos lógicos para el código y los datos, con permisos de acceso a la página de solo lectura y no ejecución, según corresponda. El kernel también tenía restringido el acceso directo a la memoria del espacio del usuario, y se habilitó una protección de pila más fuerte en el compilador GCC para reducir la rotura de pila. Para limitar la exposición del kernel a códigos potencialmente maliciosos, perf estaba deshabilitado de forma predeterminada, los comandos ioctl estaban restringidos por SELinux y seccomp-bpf estaba habilitado para otorgar a los procesos la capacidad de restringir las llamadas al sistema.

En los dispositivos que se envían con Android Nougat, la política de "Arranque verificado" (introducida parcialmente en KitKat y que muestra notificaciones al inicio en Marshmallow) debe aplicarse estrictamente. Si los archivos del sistema están dañados o modificados, el sistema operativo solo permitirá el funcionamiento en un modo de uso limitado o se negará a arrancar.

Android Nougat admite un esquema de cifrado de disco alternativo conocido como "cifrado basado en archivos". A diferencia del cifrado de disco completo, permite cifrar los contenidos menos sensibles del almacenamiento, como los archivos del sistema operativo, utilizando solo una clave de hardware en lugar de requerir credenciales. Los datos confidenciales del usuario permanecen encriptados mediante credenciales. El cifrado basado en archivos elimina el requisito de autenticación previa al inicio: en cambio, Android se inicia normalmente sin intervención adicional, pero el acceso a los datos protegidos por credenciales está restringido hasta que el usuario desbloquea el dispositivo por primera vez ("Inicio directo"). Mientras tanto, los servicios en segundo plano pueden acceder a los datos que almacenan en el contexto encriptado por el dispositivo (como alarmas o notificaciones de mensajes, particularmente después de reinicios automáticos debido a actualizaciones o fallas) para mantener una funcionalidad limitada hasta que el usuario desbloquee el almacenamiento encriptado con credenciales.

## Recepción

Dieter Bohn de The Verge elogió la nueva interfaz multitarea en Android Nougat, calificándola de "muy atrasada" para las tabletas Android. Aunque inicialmente encontró la implementación "confusa", escribió que funcionó bien una vez que la entendió correctamente, aunque señaló que "algunas aplicaciones no son totalmente compatibles con la pantalla dividida, mientras que otras funcionan bien, pero de todos modos muestran una advertencia". A Bohn también le gustó la nueva forma de responder a cualquier notificación de mensaje, afirmando que "Android ha tenido durante mucho tiempo una ventaja en las notificaciones útiles y consistentes" en comparación con iOS, y agregó "ahora que las respuestas rápidas son estándar, no veo que disminuya la ventaja". También señaló "ajustes" en todo el sistema operativo como cambios bienvenidos, que incluyen cambios rápidos en el cajón de notificaciones, un menú de configuración con más información visual y una aplicación de cámara que se ha "limpiado un poco". Bohn declaró que no notó ninguna mejora significativa en la batería a pesar de la función de ahorro de energía Doze en Nougat. También escribió extensamente sobre el hecho de que, aunque Nougat es "genial", "es una pena que alguien tarde tanto en verlo", escribiendo sobre la falta de actualizaciones en la mayoría de los dispositivos Android, y que "a menos que tenga un Nexus, podrían pasar algunos meses, podría pasar un año [sic], antes de que esté disponible en tu teléfono".

Chris Velazco de Engadget también elogió las nuevas notificaciones de aplicaciones empaquetadas, y escribió que las notificaciones de versiones anteriores de Android "simplemente se quedan ahí" hasta la interacción, pero Nougat "hace un mejor trabajo al agruparlas por aplicación y permitirte hacer las cosas". Destacó la capacidad de expandir una notificación de Gmail integrada para ver los asuntos y remitentes de mensajes individuales. Velazco dijo que la multitarea en pantalla dividida era un "gran problema", pero también encontró aplicaciones no compatibles. Los elementos visuales en la aplicación de Configuración, los cambios rápidos en el menú desplegable de notificaciones y la compatibilidad con nuevos idiomas y emojis también fueron aspectos positivos en la revisión. Velazco notó una mejora en la batería de la función de ahorro de energía Doze, indicando que su "Nexus 6P parecía ganar alrededor de una hora o dos de duración de la batería en espera". También escribió que instalar y lanzar aplicaciones podría ser "un poco más rápido de lo habitual" gracias al nuevo compilador de aplicaciones de Nougat, y esperaba que los desarrolladores de juegos utilizaran la nueva API de Vulkan para algunos "juegos móviles realmente atractivos".

