Professional Documents
Culture Documents
en la Arquitectura Intel®
Por Costas Stylianou (Intel), publicado el 9 de agosto de 2013
Traducir
Sinopsis:
Si es un desarrollador Android* insatisfecho con el rendimiento del emulador de
Android, este documento es para usted. Una y otra vez, hemos oído de muchos
desarrolladores Android que el emulador es lento y molesto para trabajar, ¡pero no
tiene por qué ser así! Si usa un equipo razonablemente moderno con un procesador
Intel® que tenga Intel® Virtualization Technology habilitada y sistema operativo
Microsoft Windows* o Apple Mac OS*, entonces puede usar el Intel® Hardware
Accelerated Execution Manager (Intel® HAXM), o KVM para Linux*, para acelerar muy
fácilmente el emulador de Android en un orden de magnitud, lo que hará más rápidas
las pruebas y las depuraciones de sus aplicaciones de Android. En este documento se
explican todos los pasos necesarios para acelerar el emulador y cómo trabajar con él.
Luego explicamos cómo usar el kit de desarrollo nativo (NDK) para compilar código
nativo x86 y la forma correcta de enviar APK que contengan bibliotecas nativas x86 a
la tienda Google Play. Intel HAXM también se utiliza para acelerar el emulador de
Tizen*, pero esto se encuentra fuera del alcance de esta documentación. Para
obtener más información, visite tizen.org en la sección SDK.
Índice
1. Introducción
2. Instalación
2.1. Prerrequisitos
2.2. Instalación en Windows
2.3. Instalación en Linux
2.3.1. Instalación de KVM
2.4. Cómo crear un AVD (dispositivo virtual de Android*)
3. Métodos más conocidos
3.1. Cómo probar su aplicación con el emulador de Eclipse
3.2. Envío de varios APK para diferentes ABI comparado con el envío de binarios
pesados a Google Play
3.3. Compile su NDK para x86
3.3.1. Cómo agregar la ruta del NDK a su variable de entorno
3.3.2. Cómo compilar con el NDK
3.3.3. Otra manera de compilar con el NDK
1. Introducción
Este documento lo guiará a lo largo de la instalación del Intel® Hardware Accelerated
Execution Manager (Intel® HAXM), un motor de virtualización asistido por hardware
(hipervisor) que usa Intel® Virtualization Technology (Intel® VT) para acelerar el
desarrollo de Android* en Windows*. También explica cómo configurar una máquina
virtual basada en kernel (KVM) asistida por hardware en Linux* y los métodos más
conocidos de compilación nativa y envío de aplicaciones a la tienda Google Play para
x86.
2. Instalación
2.1. Prerrequisitos
Es necesario que tenga instalado el kit de desarrollo de software (SDK) de Android.
Su equipo debe tener un procesador Intel compatible con Intel VT-x y EM64T, y con la
funcionalidad Execute Disable (XD) Bit habilitada desde el BIOS.
Marque la casilla y haga clic en el botón “Install packages…”; cuando haya instalado
el paquete, el estado aparecerá como “Installed”, es decir, instalado, lo que es
engañoso, ya que este no es el caso. El SDK sólo copia el ejecutable de Intel HAXM
a su máquina, y depende de usted instalar el ejecutable.
Intel HAXM sólo funciona en combinación con una de las imágenes de sistema x86 de
procesador Intel® Atom™, que se encuentran disponibles para Android 2.3.3 (API 10),
4.0.3 (API 15), 4.1.2 (API 16), 4.2.2 (API 17). Estas imágenes de sistema de Intel se
pueden instalar de la misma manera que las imágenes basadas en ARM, mediante el
administrador de SDK.
Cuando hace clic en el ejecutable de IntelHaxm, se muestra una pantalla de
bienvenida como esta:
Puede ajustar la cantidad de memoria RAM que se asigna a Intel HAXM. Después de
ajustarla, haga clic en Next. La pantalla siguiente confirma la asignación de memoria.
Si todo está como lo desea, haga clic en Install.
A fin de poder instalar el Intel HAXM, debe tener habilitada Intel VT-x en su BIOS, si
no, verá un error como este durante la instalación:
Si se produce este error, vaya al BIOS y habilítela.
La segunda opción para descargar el Intel HAXM y la imagen de sistema del emulador
x86 Emulator System Image es ir directamente al sitio web:
http://software.intel.com/en-us/android y descargar de allí todos los componentes
necesarios.
Al igual que en Windows (y Mac OS X), primero necesita descargar el SDK de Android
desde el sitio para desarrolladores de Android. Encontrará un paquete de ADT
(herramientas para desarrolladores de Android) que contiene tanto el entorno de
desarrollo integrado (IDE) de Eclipse* como el SDK de Android. Descargue el archivo
zip y extráigalo a su máquina Linux. Asegúrese de elegir la versión adecuada para su
distribución de Linux, ya sea de 32 o de 64 bits. Esto es fácil de verificar con el
comando:
file /sbin/init
A continuación, debe instalar KVM, a menos que ya la tenga instalada. Para ver si su
procesador admite KVM, escriba:
kvm-ok
Después de la instalación, vuelva a iniciar sesión y los cambios surtirán efecto. Para
probar la instalación, escriba:
Si no se convenció del todo de que está usando una imagen de sistema x86, siempre
tiene la posibilidad de revisar los detalles en “About phone” dentro del emulador.
La mejora de rendimiento que apreciará con Intel HAXM o KVM depende de su PC, la
unidad, la memoria, etc., pero debería ser de un orden de magnitud de entre 5x y 10x.
La captura de pantalla de abajo muestra una comparación paralela de un AVD x86
con HAXM habilitado frente a un AVD basado en ARM. El AVD x86 arrancó hasta
llegar a la pantalla de bloqueo en 15 segundos, mientras que el AVD no Intel tardó 40
segundos, una gran diferencia.
[La mejora de rendimiento que observará con el Intel HAXM (o la KVM) debería ser de
entre 5x y 10x, según la configuración de su sistema: el software y las cargas de
trabajo que se usen en la pruebas de rendimiento puede que hayan sido optimizadas
para rendimiento solamente en microprocesadores Intel. Las pruebas de rendimiento,
tales como SYSmark* y MobileMark*, se miden con sistemas informáticos,
componentes, software, operaciones y funciones específicos. Todo cambio en
cualquiera de esos factores puede hacer que varíen los resultados. Debe consultar
más información y otras pruebas de rendimiento que lo ayuden a evaluar
íntegramente las compras que contemple hacer, incluido del rendimiento del producto
al combinarlo con otros. Configuración: en este caso, se usó Mac Book Pro para las
pruebas. Si desea obtener más información,
visitehttp://www.intel.com/performance”]
En primer lugar, confirme que haya creado el AVD como se describió en el paso 2. Si
tiene el AVD listo, vaya a Run As -> Run Config, como se muestra abajo:
Debería ir a una página como esta:
Aquí, puede marcar la casilla para seleccionar el AVD que desee. Después de haber
creado su AVD y haber establecido su configuración, para comenzar a compilar su
proyecto y depurarlo con el emulador, seleccione Run As -> Android Application. Esto
iniciará automáticamente el AVD acelerado por hardware.
Una vez iniciado el AVD, debería ver la pantalla de inicio de su aplicación (después de
desbloquear la pantalla).
Al seguir estas pautas, puede garantizar que sus usuarios obtengan el mejor
rendimiento del dispositivo que poseen. Como beneficio extra, puede evitar que los
usuarios intenten ejecutar aplicaciones en dispositivos específicos debido a problemas
de traducción de código.
A fin de que la aplicación basada en NDK se ejecute en un AVD x86, debe compilar
su biblioteca NDK para la arquitectura x86. Para hacerlo, siga estos pasos sencillos:
Abra la línea de comandos y navegue a la carpeta donde están sus archivos NDK,
como se muestra abajo:
Asegúrese de haber establecido la ruta de la variable de entorno, así podrá usar el
script de compilación ndk desde cualquier lugar.
ndk-build APP_ABI:=all
Esto compilará su archivo NDK para cada arquitectura disponible, es decir, ARMv5TE,
ARMv7, x86 y mips.
Si desea compilar para una arquitectura específica, reemplace “all” con las diferentes
arquitecturas. Por ejemplo:
Ahora está listo para usar el AVD x86 con su aplicación NDK.
De este modo, cuando ejecute el archivo por lotes, es decir, el script de compilación
ndk, compilará las bibliotecas para todas las arquitecturas disponibles.
Además, para facilitar el uso, en lugar de especificar todas las arquitecturas, puede
simplemente poner “all”:
APP_ABI:=all
Para obtener información más completa sobre las optimizaciones del compilador,
consulte nuestro Aviso de optimización.