Ago 042013
 
Artículo Android

El SDK de Android permite el desarrollo de aplicaciones en lenguaje Java para la plataforma Android.

Pero en ocasiones disponemos de código ya desarrollado en otros lenguajes de programación como C o C++, que quisieramos aprovechar para una nueva aplicación, sin necesidad de volver a escribirlo en Java.

En este artículo se explica cómo se puede hacer esto utilizando Eclipse ADT  junto con el NDK (Native Development Kit) de Android en un sistema Windows 7.

Prerequisitos

En este artículo se supone que ya se dispone previamente de una instalación de Eclipse ADT adecuadamente configurada.

El lector interesado puede encontrar los detalles para la preparación del entorno de desarrollo en el artículo “Cómo desarrollar aplicaciones para Android” de este mismo blog.

Descarga e instalación de Android NDK

En la página de descarga de Android NDK seleccionamos los paquetes correspondientes a nuestro sistema.

En nuestro caso, vamos a realizar el desarrollo sobre un sistema Windows 7 de 64 bits, por lo que descargamos los paquetes:

  • android-ndk-r9-windows-x86_64.zip (514.321.606 bytes)
  • android-ndk-r9-windows-x86_64-legacy-toolchains.zip (312.340.413 bytes)

Creamos un directorio “C:\android-ndk” ydescomprimimos los paquetes bajo el mismo. Al hacerlo, se crea un subdirectorio “android-ndk-r9”.

 

A continuación, arrancamos Eclipse y configuramos la ubicación del NDK seleccionando “Window > Preferences > Android > NDK” e introduciendo en el campo “NDK Location” el valor “C:\android-ndk\android-ndk-r9”:

eclipse-ndk-location

En Eclipse, creamos un nuevo proyecto Android “PruebaJNI” (“File > New > Project > Android > Android Application Project”). Seleccionamos API 10 como SDK mínimo y SDK objetivo:

proyecto-jni

 

Una vez creado el proyecto, pulsamos sobre el mismo con el botón derecho del ratón y seleccionamos “Android Tools > Add Native Support…”.

Esto crea una carpeta “jni” y bajo ella un fichero de código fuente “pruebaJNI.cpp” y un fichero de configuración “Android.mk”.

Por otra parte, se añade un nuevo builder “CDT” al proyecto. Los builders del proyecto se pueden examinar seleccionando “Project > Properties > Builders”:

project-builder-CDT

 

El CDT builder se encarga de compilar el código C/C++ durante la construcción del proyecto.

Ahora, editamos el fichero pruebaJNI.cpp para incluir una función de la forma:

Como vemos, la función “HolaCPP” se hace visible al interfaz JNI para que pueda ser llamada desde un programa Java.

A continuación, debemos añadir un TextView al layout, para presentar en él el valor devuelto por la función. Editamos el fichero activity_main.xml para que quede de la siguiente forma:

Por último, añadimos al programa principal el código que realiza la llamada a la función HolaCPP, y presenta en el TextView “miCampoDeTexto” el texto obtenido:

y con esto ya podemos compilar y ejecutar el proyecto. Si todo está correcto, obtenemos el siguiente resultado en el simulador android:

hola-desde-cpp

 Publicado por en 4:40 pm

 Deja un comentario

(requerido)

(requerido)