Características de Nougat

Introducción al uso de Xamarin.Android para desarrollar aplicaciones para Android Nougat.

En este artículo se proporciona un esquema de las características introducidas en Android Nougat, se explica cómo preparar Xamarin.Android para el desarrollo de Android Nougat y se proporcionan vínculos a aplicaciones de ejemplo que muestran cómo usar las características de Android Nougat en aplicaciones de Xamarin.Android.

Información general

Android Nougat es el seguimiento de Google para Android 6.0 Marshmallow. Xamarin.Android proporciona compatibilidad con enlaces de Android 7.x en Xamarin Android 7.0 y versiones posteriores. Android Nougat agrega muchas API nuevas para las características de Nougat que se describen a continuación; estas API están disponibles para las aplicaciones de Xamarin.Android cuando se usa Xamarin.Android 7.0.

Imágenes prominentes de tabletas y teléfonos Android que ejecutan Android Nougat

Para obtener más información sobre las API de Android 7.x, consulte Referencia de api de Android. Para obtener una lista de problemas conocidos de Xamarin.Android 7.0, consulte las notas de la versión.

Android Nougat proporciona muchas características nuevas de interés para los desarrolladores de Xamarin.Android. Estas características son:

  • Compatibilidad con varias ventanas : esta mejora permite a los usuarios abrir dos aplicaciones en la pantalla a la vez.

  • Mejoras de notificación: el sistema de notificaciones rediseñado en Android Nougat incluye una característica de respuesta directa que permite a los usuarios responder rápidamente a mensajes de texto directamente desde la interfaz de usuario de notificación. Además, si la aplicación crea notificaciones para los mensajes recibidos, la nueva característica de notificaciones agrupadas puede agrupar las notificaciones como un solo grupo cuando se recibe más de un mensaje.

  • Protector de datos : esta característica es un nuevo servicio del sistema que ayuda a reducir el uso de datos móviles por parte de las aplicaciones; proporciona a los usuarios control sobre cómo las aplicaciones usan datos móviles.

Además, Android Nougat ofrece muchas otras mejoras de interés a los desarrolladores de aplicaciones, como una nueva característica de configuración de seguridad de red, Doze sobre la marcha, atestación de clave, nuevas API de configuración rápida, compatibilidad con múltiples configuraciones regionales, API de ICU4J, mejoras de WebView, acceso a las características del lenguaje Java 8, acceso a directorios con ámbito, una API de puntero personalizada, compatibilidad con la realidad virtual de la plataforma, archivos virtuales y optimizaciones de procesamiento en segundo plano.

En este artículo se explica cómo empezar a compilar aplicaciones con Android Nougat para probar las nuevas características y planear la migración o el trabajo de las características para emplear la nueva plataforma Android Nougat como destino.

Requisitos

Para usar las nuevas características de Android Nougat en aplicaciones basadas en Xamarin, se requiere lo siguiente:

  • Visual Studio o Visual Studio para Mac: si usa Visual Studio, se requiere la versión 4.2.0.628 o posterior de Visual Studio Tools para Xamarin. Si usa Visual Studio para Mac, se requiere la versión 6.1.0, o posterior, de Visual Studio para Mac.

  • Xamarin.Android: Xamarin.Android 7.0 o posterior debe instalarse y configurarse con Visual Studio o Visual Studio para Mac.

  • Android SDK : Android SDK 7.0 (API 24) o posterior debe instalarse mediante Android SDK Manager.

  • Kit para desarrolladores de Java : el desarrollo de Xamarin Android 7.0 requiere JDK 8 o posterior si está desarrollando para el nivel de API 24 o superior (JDK 8 también admite niveles de API anteriores a 24). Se requiere la versión de 64 bits del JDK 8 si usa controles personalizados o el controlador de vista previa de formularios.

Importante

Xamarin.Android no admite JDK 9.

Tenga en cuenta que las aplicaciones se deben volver a generar con Xamarin C6SR4 o una versión posterior para que funcionen de forma confiable con Android Nougat. Dado que Android Nougat solo se puede vincular a bibliotecas nativas proporcionadas por NDK, es posible que las aplicaciones existentes que usan bibliotecas como mono.Data.SQLite.dll se bloqueen al ejecutarse en Android Nougat si no se vuelven a generar correctamente.

Introducción

Para empezar a usar Android Nougat con Xamarin.Android, debe descargar e instalar las herramientas y los paquetes de SDK más recientes antes de poder crear un proyecto de Android Nougat:

  1. Instale las últimas actualizaciones más recientes de Xamarin.Android desde Xamarin.

  2. Instale los paquetes de Android 7.0 (API 24) y las herramientas o posterior.

  3. Cree un nuevo proyecto de Xamarin.Android que tenga como destino Android Nougat.

  4. Configure un emulador o un dispositivo para Android Nougat.

En las siguientes secciones se explican cada uno de estos pasos:

Instalación de las actualizaciones de Xamarin

Para agregar compatibilidad con Xamarin para Android Nougat, cambie el canal de actualizaciones en Visual Studio o Visual Studio para Mac al canal estable y aplique las actualizaciones más recientes. Si también necesita características que actualmente solo están disponibles en el canal Alfa o Beta, puede cambiar a dichos canales, que también proporcionan compatibilidad con Android 7.x. Para información sobre cómo cambiar el canal de actualizaciones (versiones), consulte Cambio del canal de actualizaciones.

Instalación de Android SDK

Para crear un proyecto con Xamarin Android 7.0, primero debe usar el Administrador de Android SDK para instalar SDK Platform Android N (API 24) o posterior. También debe instalar el componente Android SDK Tools más reciente:

  1. Inicie Android SDK Manager (en Visual Studio para Mac, use Herramientas > Open Android SDK Manager...; en Visual Studio, use Android SDK Manager de Herramientas >>).

  2. Instale Android 7.0 (API 24) o posterior:

    Selección de paquetes de Android 7.0 en Android SDK Manager

  3. Instale las herramientas de Android SDK más recientes:

    Selección de las herramientas más recientes de Android SDK en Android SDK Manager

    Debe instalar la revisión 25.2.2 o posterior de Android SDK Tools, android SDK Platform tools 24.0.3 o posterior, y android SDK Build tools 24.0.2 o posterior.

  4. Compruebe que la ubicación del kit de desarrollo de Java está configurada para JDK 1.8:

    Configuración de la ruta de acceso de JDK 8 en Opciones de herramientas

    Para ver esta configuración en Visual Studio, haga clic en Herramientas > Opciones > de Configuración de Android de Xamarin>. En Visual Studio para Mac, haga clic en Preferences > Projects SDK Locations Android (Ubicaciones del SDK de proyectos > de > preferencias) Android.

Inicio de un proyecto de Xamarin.Android

Cree un nuevo proyecto de Xamarin.Android. Si no está familiarizado con el desarrollo de Android con Xamarin, consulte Hello, Android para aprender sobre la creación de proyectos de Xamarin.Android.

Cuando cree un proyecto de Android, debe configurar las opciones de versión para utilizar Android 7.0, o posterior, como destino. Por ejemplo, para que el proyecto tenga como destino Android 7.0, debe configurar el nivel de API de Android de destino del proyecto para Android 7.0 (API 24 - Nougat) . Se recomienda establecer el nivel de plataforma de destino en API 24 o posterior. Para más información sobre los niveles de API de Android, vea Descripción de los niveles de API de Android.

Nota

Actualmente, debe establecer la versión mínima de Android en Android 7.0 (API 24 - Nougat) para implementar la aplicación en dispositivos o emuladores de Android Nougat.

Configuración de un emulador o un dispositivo

Si usa un emulador, inicie Android AVD Manager y cree un nuevo dispositivo con la siguiente configuración:

  • Dispositivo: Nexus 5X, Nexus 6, Nexus 6P, Nexus Player, Nexus 9 o Pixel C.
  • Destino: Android 7.0: nivel de API 24
  • ABI: x86 o x86_64

Por ejemplo, este dispositivo virtual está configurado para emular un dispositivo Nexus 6:

Configuración de un AVD mediante el dispositivo Nexus 6, el destino Android 7.0 e Intel Atom x86 CPU/ABI

Si usa un dispositivo físico, como un Nexus 5X, 6 o 9, puede actualizar el dispositivo a través de las actualizaciones automáticas por aire (OTA) o descargar una imagen del sistema y sobrescribir la memoria del dispositivo directamente. Para más información sobre cómo actualizar manualmente el dispositivo a Android Nougat, consulte Imágenes OTA para dispositivos Nexus.

Tenga en cuenta que Android Nougat no admite los dispositivos Nexus 5.

Nuevas características

Android Nougat presenta numerosas características y funcionalidades nuevas, como la compatibilidad con varias ventanas, las mejoras en las notificaciones y el protector de datos. En las secciones siguientes se resaltan estas características y se proporcionan vínculos para ayudarle a empezar a usarlas en la aplicación.

Modo de varias ventanas

El modo de varias ventanas permite a los usuarios abrir dos aplicaciones a la vez con una compatibilidad completa con varias tareas. Estas aplicaciones pueden ejecutarse en paralelo (horizontal) o una encima de otra (vertical) en el modo de pantalla dividida. Los usuarios pueden arrastrar un divisor entre las aplicaciones para cambiar su tamaño y pueden cortar y pegar contenido entre las aplicaciones. Cuando se presentan dos aplicaciones en el modo de varias ventanas, la actividad seleccionada continúa ejecutándose, mientras la actividad no seleccionada se pausa pero sigue estando visible. El modo de varias ventanas no modifica el ciclo de vida de la actividad de Android.

Aplicaciones de ejemplo que se ejecutan en modo de varias ventanas en vertical y horizontal

Puede configurar cómo las actividades de la aplicación de Xamarin.Android admiten el modo de varias ventanas. Por ejemplo, puede configurar atributos que establezcan el tamaño mínimo y el alto y ancho predeterminados de la aplicación en el modo de varias ventanas. Puede usar la nueva propiedad Activity.IsInMultiWindowMode para determinar si la actividad está en modo de varias ventanas. Por ejemplo:

if (!IsInMultiWindowMode) {
    multiDisabledMessage.Visibility = ViewStates.Visible;
} else {
    multiDisabledMessage.Visibility = ViewStates.Gone;
}

La aplicación de ejemplo MultiWindowPlayground incluye código de C# que muestra cómo sacar provecho de las interfaces de usuario de varias ventana con la aplicación.

Para obtener más información sobre el modo de varias ventanas, vea la Compatibilidad multiventana.

Notificaciones mejoradas

Android Nougat presenta un sistema de notificaciones rediseñado. Incluye una nueva característica de respuesta directa que permite a los usuarios responder rápidamente a las notificaciones de mensajes de texto entrantes directamente en la interfaz de usuario de notificaciones. A partir de Android 7.0, los mensajes de notificación se pueden agrupar como un solo grupo cuando se recibe más de un mensaje. Además, los desarrolladores pueden personalizar las vistas de notificación, aprovechar las decoraciones del sistema en las notificaciones y sacar partido a las nuevas plantillas de notificación al generar notificaciones.

Respuesta directa

Cuando un usuario recibe una notificación de mensaje entrante, Android Nougat posibilita la respuesta a dicho mensaje dentro de la notificación (en lugar de abrir la aplicación de mensajería para enviar una respuesta). Esta característica de respuesta insertada permite a los usuarios responder rápidamente a un mensaje SMS o de texto directamente dentro de la interfaz de notificación:

Captura de pantalla de una notificación con un campo de respuesta directa insertada

Para admitir esta característica en la aplicación, debe agregar acciones de respuesta insertadas a la aplicación a través de un objeto RemoteInput para que los usuarios puedan responder a través del texto directamente desde la interfaz de usuario de notificaciones. Por ejemplo, el código siguiente genera RemoteInput para recibir la entrada de texto, crea un intento pendiente para la acción de respuesta y crea una acción habilitada mediante de entrada remota:

// Build a RemoteInput for receiving text input:
var remoteInput = new Android.Support.V4.App.RemoteInput.Builder (EXTRA_REMOTE_REPLY)
    .SetLabel (GetString (Resource.String.reply))
    .Build ();

// Build a Pending Intent for the reply action to trigger:
PendingIntent replyIntent = PendingIntent.GetBroadcast (ApplicationContext,
                                conversation.ConversationId,
                                GetMessageReplyIntent (conversation.ConversationId),
                                PendingIntentFlags.UpdateCurrent);

// Build an Android 7.0 compatible Remote Input enabled action:
NotificationCompat.Action actionReplyByRemoteInput = new NotificationCompat.Action.Builder (
    Resource.Drawable.notification_icon,
    GetString (Resource.String.reply),
    replyIntent).AddRemoteInput (remoteInput).Build ();

Esta acción se agrega a la notificación:

// Create the notification:
NotificationCompat.Builder builder = new NotificationCompat.Builder (ApplicationContext)
   .SetSmallIcon (Resource.Drawable.notification_icon)
   ...
   .AddAction (actionReplyByRemoteInput);

La aplicación de ejemplo Servicio de mensajería incluye código de C# que muestra cómo extender las notificaciones con un objeto RemoteInput. Para más información sobre cómo agregar acciones de respuesta insertadas a la aplicación para Android 7.0 o posterior, consulte el tema Respuesta a las notificaciones de Android.

Notificaciones agrupadas

Android Nougat pueden agrupar los mensajes de notificación juntos (por ejemplo, por tema de mensaje) y mostrar el grupo en lugar de cada mensaje independiente. Esta característica de notificaciones agrupadas permite a los usuarios descartar o archivar un grupo de notificaciones en una acción. El usuario puede desplazarse hacia abajo para expandir la agrupación de notificaciones para ver cada notificación en detalle:

Captura de pantalla de ejemplo de notificaciones agrupadas

Para admitir notificaciones agrupadas, la aplicación puede usar el método Builder.SetGroup para agrupar notificaciones similares. Para más información sobre los grupos de notificaciones agrupadas en Android N, consulte el tema Agrupación de notificaciones de Android.

Vistas personalizadas

Android Nougat permite crear vistas de notificación personalizadas con acciones, diseños expansibles y encabezados de notificación del sistema. Para más información sobre las vistas de notificación personalizadas en Android Nougat, consulte el tema Mejoras en las notificaciones de Android.

Protector de datos

A partir de Android Nougat, los usuarios pueden habilitar una nueva configuración Protector de datos que bloquea el uso de los datos en segundo plano. Esta configuración también indica a la aplicación que use menos datos en primer plano siempre que sea posible. ConnectivityManager se ha ampliado en Android Nougat para que la aplicación pueda comprobar si el usuario ha habilitado el protector de datos para que la aplicación pueda hacer un esfuerzo por limitar el uso de datos cuando esta característica se habilita.

Para más información sobre la nueva característica Protector de datos en Android Nougat, consulte el tema Optimización del uso de datos de red de Android.

Accesos directos de aplicación

Android 7.1 presentó la característica Accesos directos de aplicación que permite a los usuarios iniciar rápidamente tareas comunes o recomendadas con la aplicación. Para activar el menú de accesos directos, el usuario presiona el icono de la aplicación durante un segundo o más: el menú aparece con una vibración rápida. Al dejar de presionar el menú se queda:

Pantalla de ejemplo del menú contextual de una aplicación para una aplicación de mensajería

Esta característica solo está disponible en el nivel de API 25 o superior. Para más información sobre la nueva característica de accesos directos de aplicación en Android 7.1, consulte el tema Accesos directos de aplicación de Android.

Código de ejemplo

Hay varios ejemplos de Xamarin.Android disponibles para mostrarle cómo sacar provecho de las características de Android Nougat:

  • MultiWindowPlayground muestra el uso de la API de varias ventanas disponible en Android Nougat. Puede cambiar la aplicación de ejemplo en modo de varias ventanas para ver cómo afecta al ciclo de vida y el comportamiento de la aplicación.

  • Servicio de mensajería es un servicio sencillo que envía notificaciones mediante NotificationCompatManager. También extiende la notificación con un objeto RemoteInput para permitir que los dispositivos Android Nougat respondan a través del texto directamente desde la notificación sin tener que abrir una aplicación.

  • Notificaciones activas muestra cómo usar la NotificationManager API para indicarle cuántas notificaciones se muestra actualmente la aplicación.

  • Acceso a directorios con ámbito muestra cómo usar la API de acceso a directorios con ámbito para acceder fácilmente a directorios específicos. Esto sirve como alternativa a tener que definir permisos READ_EXTERNAL_STORAGE o WRITE_EXTERNAL_STORAGE en el manifiesto.

  • Arranque directo Muestra cómo almacenar datos en un almacenamiento cifrado por dispositivo, que siempre está disponible mientras el dispositivo se arranca antes y después de escribir cualquier credencial de usuario (PIN/Patrón/Contraseña).

Resumen

En este artículo se presentó Android Nougat y se explicó cómo instalar y configurar las herramientas y los paquetes más recientes para el desarrollo de Xamarin.Android en Android Nougat. También se proporciona información general sobre las características clave disponibles en Android Nougat, con vínculos a código fuente de ejemplo para ayudarle a empezar a crear aplicaciones para Android Nougat.