El emulador de Windows Phone 8

NOTA: esta es una traducción/adaptación libre de un post de Rafael Serna. Puedes encontrar el original aquí.

Como posiblemente sepas, el recientemente publicado SDK de Windows Phone 8 sólo puede instalarse en máquinas con sistemas operativos de 64 bits. Una de las razones de que esto sea así es el emulador que incluye para probar nuestras aplicaciones, ya que este emulador no es uno “al uso” como el que teníamos en Windows Phone 7, sino que se trata de una imagen del propio sistema operativo virtualizado con Hyper-V, y esta tecnología solo es compatible con sistemas de 64 bits.

Hoy vamos a ver cómo comprobar si nuestra máquina cumple con los requisitos necesarios y cómo configurar nuestro sistema para evitar este aviso de error al intentar arrancar el emulador y poder hacerlo funcionar correctamente:

image

Comprobación de requisitos

Aparte de un sistema operativo de 64 bits, hay más características necesarias para que el emulador pueda lanzarse correctamente. El mensaje de error anterior nos remite directamente a la BIOS para comprobar que tenemos activada la virtualización de hardware, pero antes debemos comprobar si nuestro sistema soporta Hyper-V y si tenemos el hardware necesario para ello.

Las tres características necesarias son:

- Hardware-Assisted Virtualization

- SLAT (Second Level Addres Translation)

- DEP (hardware-based Data Execution Prevention)

Para quien no tenga ni idea de qué son estas características o cómo comprobar que nuestro sistema las tiene, os recomiendo Coreinfo, una pequeña aplicación que nos permitirá comprobar si cumplimos con estos requisitos.

Para ello, descargamos y descomprimimos la herramienta, y ejecutamos en la consola (con permisos de administrador) el comando coreinfo.exe –v para visualizar las capacidades de nuestro procesador:

clip_image003

En este punto debemos asegurarnos de que Hypervisor está presente, y de que soporta las otras dos características. Sólo queda otra comprobación por hacer, y en este caso ejecutamos el comando coreinfo.exe sin ningún parámetro. Entre todas las características que se nos presentan, debemos comprobar que tenemos un asterisco en NX, lo que significa que nuestra máquina cuenta con DEP

clip_image005

Configuración del sistema

Si alguna de las características no están presentes en nuestro sistema no podremos lanzar el emulador de Windows Phone 8. En el caso de que cumplamos con todos estos requisitos (enhorabuena J) debemos habilitar la virtualización de hardware desde nuestra BIOS. Aunque cada BIOS es un mundo, dejo una captura de la mía para dar pistas sobre dónde encontrar esta característica:

clip_image007

Arrancando por primera vez

Una vez arranquemos el emulador para probar nuestra aplicación, se nos mostrará un mensaje avisándonos de que no tenemos permisos para ejecutarlo. Esto viene dado por no estar incluido en el grupo de administradores de Hyper-V, por lo que dejamos marcada la opción de unirnos a ese grupo, y pulsamos reintentar para lanzar correctamente nuestro emulador.

clip_image008

Con esto tendremos permitido ejecutar el emulador sin arrancar con permisos de administrador explícitamente. Una vez cierres sesión y vuelvas a iniciar, este mensaje ya no aparecerá.

Y con esto tenemos nuestro nuevo emulador de Windows Phone 8 (en este caso ligeramente personalizado) funcionando correctamente para probar nuestras aplicaciones:

clip_image010

Y con esto me despido. Para cualquier duda que tengáis, os recuerdo que podéis contactarnos en el correo de Soporte de desarrollo para Windows Phone (sopwp@microsoft.com) donde os contestaremos encantados a todos los problemas con los que os encontréis desarrollando para esta plataforma.

También aprovecho para animaros a que empecéis a desarrollar ahora para esta nueva versión de Windows Phone, aprovechando la gran oportunidad que nos brinda a todos los desarrolladores su lanzamiento; y también para la anterior versión, ya que todas las apps desarrolladas para Windows Phone 7.x funcionarán perfectamente en los dispositivos con Windows Phone 8.

 

Un saludo,

Gorka Madariaga (@Gk_8)