Android NDK (incluye sorpresa ;-)
Los programadores más expertos que probaron la máquina virtual Dalvik, una JVM (Java Virtual Machine / Máquina virtual Java), insistieron en no tener limitaciones y reivindicaron C/C++.
Google no les hizo esperar demasiado lanzando NDK (Native Development Kit / unidad de desarrollo nativo) y actualmente ya contamos con dos versiones:
- Android 1.5 NDK, Release 1 (obsoleto)
- Android 1.6 NDK, Release 1 (recomendado)
¿Qué es Android NDK?
NDK, compañero natural del SDK, proporciona las herramientas necesarias para generar e incrustar código máquina ARM nativo en las aplicaciones.
Teniendo claro que las aplicaciones Android se ejecutan en la máquina virtual Dalvik, NDK es un conjunto de herramientas que permiten a los desarrolladores integrar los componentes que hacen uso de código nativo en dichas aplicaciones. Concretamente NDK proporciona:
- Herramientas y archivos (build files) utilizados para generar librerías de código nativo de fuentes escritos en C y C++ (y, por lo tanto, utilizar/reutilizar código ya escrito).
- Un sistema para incrustar las librerías nativas correspondientes en “apk” (application package files / aplicación de archivos empaquetados) ejecutables en dispositivos Android.
- Un conjunto de “headers” y librerías nativas de sistema válidas en futuras versiones de la plataforma Android, de la versión 1.5 en adelante (compatibilidad).
- Documentación, ejemplos y tutoriales.
La buena noticia es que la versión 1.6 soporta el conjunto de instrucciones del ARMv5TE y proporciona “headers” estables para libc (librería C), libm (librería de matemáticas), OpenGL ES 1.1 (librería gráfica 3D), JNI (interfaz nativo Java) y algunas librerías más.
La mala noticia es que la propia Google avisa de que el NDK no implica ningún aumento de rendimiento y sí la complejidad al desarrollar aplicaciones.
Para desarrolladores: Grupo Android NDK
Una de las aportaciones más esperadas era la integración de la librería gráfica 3D “OpenGL”. Para demostraros que esto ya es una realidad os he grabado un pequeño vídeo del juego Quake tal y como lo tengo integrado en mi HTC Dream.
Integra “Quake” en tu móvil Android:
Descarga el juego en sí: QuakeActivity.apk
Descarga el archivo base: pak0.pak.zip
Instalación paso a paso:
- Descomprime en tu disco duro “pak0.pak.zip” y obtendrás “pak0.pak”.
- Ya sea en tu móvil o en tu SD (si puedes ejecutar aplicaciones desde la tarjeta) crea, desde el directorio raíz, la siguiente ruta:
/data/quake/id1 - Copia en esa ruta el archivo: pak0.pak
- Copia donde prefieras (móvil o SD) el juego QuakeActivity.apk que te has descargado.
- Instala QuakeActivity.apk con AppsInstaller o similar.
- Ya puedes iniciar normalmente Quake.







No veo el video
@Fernando: mientras averigüo por qué no se ve en la entrada del blog
haz clic en este enlace que te llevará directamente a YouTube.
El tito Jago ya ha solucionado el problema del vídeo =D.
he hecho todo pero cuando le doy a instalar quake me dice : La aplicacion no está instalada. No se ha podido instalar Quake en este telefono. Tengo una HTC Hero
@bboy_javi: con el juego solo pretendía demostrar como la librería gráfica 3D “OpenGL ES” es capaz de mover gráficos renderizados con fluidez, algo que hacía mucha falta para que Android siguiera evolucionando y que, gracias al NDK 1.6, ya es posible integrar. Si tu Hero no es capaz de ejecutarlo es debido a que el juego requiere tener instalado Android 1.6 (Donut) (o superior) y está claro que tienes la 1.5 (Cupcake) instalada. Según HTC, Hero se saltará la versión 1.6 para ir directamente a la 2.0 (Eclair) o sea que no te funcionará hasta entonces.
Esto mas que android empieza a parecer windows con versiones, actualizaciones, sdk,ndk,instrucciones de instalación…
Será que me hago mayor o que me estoy acostumbrando mal desde que probé el iphone?, probablemente ambas cosas
@Mitsu: no te equivoques… El iPhone también tiene sdk, ndk o chiripitiflaútico-k otra cosa es que esas herramientas estén disponibles para todos los mortales como ocurre en Android. El que no se quiera complicar la vida que use la versión oficial de firmware, al estilo iPhone para entendernos. Lo cierto es que lo simple triunfa y los embrollos para los que nos queramos embrollar.
@michel por cierto, ¿el pak0.pak no tiene sonido o es que algo falla en mi Dream? por lo demás rula bien, salvo que el control es algo difícil. Eso sí, después de actualizar con wipe ha dejado de funcionar jjjj
@LOM: aparentemente no tiene sonido (o está tan bajito que no se oye) y es cierto que con wipe deja de funcionar por lo que supongo que hay que reinstalarlo. Tengamos en cuenta que este pak sale de “por ahí” y que no se le pueden pedir peras al olmo… Sin embargo la buena noticia de todo esto no es el Quake sino que, por fin, tenemos un salto cuántico con la librería de gráficos 3D por lo que las aplicaciones,a partir de ahora, harán uso de ella o eso esperamos todos.
@michel ya probaré que tengo por ahí los pak0.pak y el resto de archivos del quake “original”, creo que están en el MP3 Airis (antiguo disco externo de 20Gb). Tendría gracia que funcionara con sonido y todo…