Utilizando el Windows Subsystem para Android para desarrollar

Si has desarrollado con .NET y Xamarin en los últimos años recordarás la evolución al trabajar con emuladores Android. El paso de los emuladores por defecto a Intel HAXM fue un gran paso adelante en el rendimiento general; luego pasamos a tener más opciones como Xamarin Android Player para finalmente llegar al soporte de Hyper-V lo que facilitó otro salto en rendimiento y tiempo de arranque.

¿Y si estamos ante el siguiente salto?. En este artículo, vamos a conocer el Windows Subsystem para Android así como lo necesario para utilizarlo para desarrollar y depurar aplicaciones Android.

Windows 11

Entre las novedades de Windows 11 nos llega un subsistema de Android.

Windows 11

El objetivo principal es el permitir ejecutar aplicaciones Android en Windows. No existe un launcher Android o similar, Windows es directamente quien se encarga de lanzar las Apps.

Amazon App Store

Como usuarios, aunque no es la única vía, se pueden obtener aplicaciones Android desde la Store utilizando la Amazon App Store.

Instalar el subsistema de Android en Windows 11

Lo primero que debemos hacer es tener una build de Windows Insiders Beta (al momento de escribir este artículo) que coincida con Windows 11 Build 22000.xxx.

Windows 11 Build 22000.xxx

Tras tener esta versión de Windows es hora de instalar el Windows Subsystem for Android que tambien viene con la Amazon App Store.

Este paso es sencillo, solo hay que entrar en la Store, instalar y reiniciar.

Instalar WSA

Hora de desarrollar!

Dentro del WSA App encontrarás bastantes opciones.

Opciones WSA

Necesitamos cambiar varias opciones:

  • Habilitar el modo Continuous para que el subsistema siempre este listo para ser usado.
  • Activar el modo de desarrollador.

NOTA: Al activar el modo de desarrollador veremos las instrucciones necesarias para conectar por adb.

Con el subsistema Windows para Android en ejecución podemos usar 127.0.0.1:58526 para conectar y hacer debugging.

adb connect 127.0.0.1:58526

NOTA: Lo visto anterior es la forma por defecto para conectar con WSA pero puedes encontrar más opciones en la documentación oficial.

Una vez conectado vía adb, sencillamente aparecerá la opción de WSA en Visual Studio.

Visual Studio

Más información

[Xamarin] Utilizando OpenJDK

¿OpenJDK?

OpenJDK es una opción alternativa al JDK de Oracle creada y diseñada con el desarrollo Android en mente. La idea es conseguir una versión más reducida (descarga menor, menos espacio en disco), evitar problemas con instaladores y herramientas de terceros además de mejorar la experiencia de desarrollo evitando que futuras actualizaciones de JDK (9, 10) afecte al desarrollo en Android.

Actualmente ya se puede probar en las últimas versiones de Visual Studio tanto para Windows como macOS y a partir de la versión 15.9 en Windows y 7.7 en macOS, será la opción que vendrá por defecto.

Porbar Open JDK

Ventajas

Las principales ventajas son:

  • Contar siempre con una versión operativa de OpenJDK con desarrollo Android independientemente de JDKs o herramientas de terceros.
  • Descargas de menor tamaño.
  • Menor espacio en disco.
  • Evitar problemas de configuración y versionado relacionadas con JDK.

Configuración

Debemos comenzar por la descarga:

NOTA: Al momento de escribir este artículo, estamos probando con la versión 1.8.0.9 de OpenJDK . Es posible que pruebes con una versión posterior. Descarga la versión más reciente y el único cambio es la versión y nombre de la carpeta de OpenJDK .

En Windows

Tras descargar, en Windows debemos copiar la carpeta descomprimida en C:\Archivos de programa\Android\jdk\microsoft_dist_openjdk_1.8.0.9

A continuación, accedemos a la configuración de Xamarin, Android Settings:

Configuración en Windows

Y cambiamos la ruta de «Java Development Kit Location» por la de OpenJDK.

En macOS

En macOS debemos descomprimir OpenJDK en $HOME/Library/Developer/Xamarin/jdk/microsoft_dist_openjdk_1.8.0.9.

Tras crear la carpeta, desde Visual Studio macOS, accedemos a Tools > SDK Manager > Locations donde cambiaremos la ubicación del SDK de Java por la de OpenJDK.

NOTA: En cualquier momento podemos volver a usar el JDK de Oracle. Bastará con volver a cambiar las rutas y recompilar la solución.

Más información

Xamarin Android Device Manager y emuladores Oreo

Introducción

Recientemente hemos recibido Xamarin Android Device Manager en fase Preview. Una herramienta que viene a reemplazar a Emulator Manager de Google. Usaremos esta herramienta para crear y configurar emuladores de Android con una enorme variedad de opciones.

¿A que se debe este cambio?

Desde la versión 26.0.1 de las Android SDK Tools (necesario para utilizar Android 8.0 Oreo) se ha eliminado el soporte de gestión de SDKs y emuladores (AVD) mediante interfaz de usuario para dejar solo línea de comandos (CLI).

«The Google Emulator Manager visual interface is not available for your version of SDK tools. Please use the SDK manager to downgrade to SDK Tools 25, or switch to the command line AVD manager tool.»

En este artículo, vamos a conocer Xamarin Android Device Manager así como crear y utilizar nuevos emuladores de Android Oreo.

Requisitos

Para poder utilizar Xamarin Android Device Manager se necesita:

  • Visual Studio 2017 15.5 o superior en Windows o Visual Studio macOS 7.4 o superior en macOS.
  • Xamarin para Visual Studio 4.8 o superior.
  • Android SDK 26.0 o superior.

Para instalar la herramienta utilizando su instalación en Windows o macOS.

NOTA: Es necesario tener el SDK de Android instalado en la siguiente ruta C:\Program Files (x86)\Android\android-sdk en Windows.

Xamarin Android Device Manager

Todo preparado para usar la herramienta!. La podemos lanzar desde Visual Studio y también la encontraremos fuera de Visual Studio, en el menú de inicio de Windows o en el listado de aplicaciones en macOS.

NOTA: Es necesario ejecutar la aplicación con privilegios de administrador en Windows.

Recuerda, es necesario tener instalado Android SDK tools 26.0.0 o superior. Si te aparece un mensaje de error:

«The AVD Manager visual interface is not available for yor version of SDK tools.»

Es necesario:

Instalar Android SDK Tools 26.0.0

La herramienta:

Android Devices

Tenemos un listado de emuladores creados donde podemos ver el nombre, versión de sistema operativo, CPU, memoria y resolución de pantalla de cada emulador. También contamos con la opción de lanzar o detener el emulador.

Emulador Android Oreo

Nuevos emuladores

Para crear un nuevo emulador, debemos pulsar el botón New.

Tras asignar un nombre al emulador, elegimos la imágen del sistema. Podemos elegir entre todas las imágenes de emuladores instaladas (Android SDK tools). Tendremos opción de crear emuladores con Nougat, Oreo, etc.

Imágenes de sistema

A continuación, podemos elegir el dispositivo físico a emular:

Dispositivos

A continuación, tenemos todas las propiedades básicas de cada emulador tales como la cantidad de memoria RAM, sensores, etc. Si necesitamos alguna opción no incluida, podemos añadir nuevas propiedades:

Propiedades

NOTA: El listado de propiedades disponibles la puedes encontrar en este enlace.

Más información

[Xamarin.Android] Configurar emulador Android x86 con intel HAXM

AndroidIntroducción

A la hora de desarrollar aplicaciones destinadas a aplicaciones móviles, existen múltiples herramientas que ayudan y facilitan el desarrollo. Hablamos de herramientas para analizar la UI, analíticas de rendimiento o crear los iconos en los diferentes tamaños necesarios. Sin embargo, entre todas ellas, brillan con especial importancia los emuladores.

Los emuladores de dispositivos físicos permiten realizar pruebas y simulaciones en la aplicación de forma rápida y sencilla. En el caso de Android, contamos con diferentes opciones. En este artículo vamos a aprender a crear emuladores de alto rendimiento basados en x86 utilizando HAXM.

NOTA: Recuerda, siempre, repetimos, siempre es necesario hacer pruebas de aplicaciones móviles en dispositivos físicos. No se pueden simular todas las condiciones, el rendimiento es diferente, etc.

Intel HAXM

Intel Hardware Accelerated Execution Manager (HAXM) es un motor de virtualización asistido por hardware (utilizando el hipervisor) para acelerar la emulación de aplicaciones para Android.

Requisitos

Hardware:

  • Procesador intel con Intel VT-x, Intel EM64T (Intel 64).
  • Al menos 4GB de RAM, recomendados 8GB RAM.

Software:

  • Microsoft Windows* 10 (32/64-bit).
  • Microsoft Windows* 8 and 8.1 (32/64-bit).
  • Microsoft Windows* 7 (32/64-bit).

Instalar Intel HAXM

Para instalar Intel HAXM tenemos dos vías:

  • Utilizar Android SDK Manager.
  • Instalar de forma independiente.

Accedemos a la página de descarga de Intel HAXM.

Descargar Intel HAXM

Descargar Intel HAXM

Tras descargar el archivo zip necesario, se debe descomprimir.

Instalar HAXM

Instalar HAXM

Antes de realizar la instalación se puede revisar si es posible utilizar HAXM.

¿Qué quiere decir esto?

Intel HAXM es un software de virtualización apoyándose sobre el hipervisor. Se requiere contar con tecnología VT-x. Además, no podemos contar con Hyper-V en ejecución.

Hyper-V Off

Hyper-V Off

La instalación de Intel HAXM se basa en un asistente bastante sencillo.

Instalación

Instalación

Tras completar la instalación es posible validar que todo es correcto ejecutando unas sencillas líneas de comandos.

Validar HAXM

Validar HAXM

Instalar imágenes emuladores x86

Se debe acceder al Android SDK Manager y buscar las imágenes Intel x86 correspondiente a los niveles de API que queremos utilizar.

Descarga de imágenes de emuladores

Descarga de imágenes de emuladores

Crear nuevo emulador x86 HAXM

Accedemos a Android Emulator Manager. Desde Visual Studio se encuentra en Herramientas > Android > Android Emulator Manager.

Android Emulator Manager

Android Emulator Manager

Para crear un nuevo emulador basado en Intel HAXM se dbe pulsar el botón Create.

Nuevo emulador

Nuevo emulador

La clave radica en el uso de una imagen Intel x86 en el campo CPU/ABI. En base a las características de la máquina de desarrollo se pueden realizar ajustes en el uso de memoria y almacenamiento del emulador.

Llegados a este punto, podemos lanzar el emulador y utilizarlo para depurar nuestras aplicaciones Xamarin.

Todo listo!

Todo listo!

Más información