martes, 16 de marzo de 2010

Integra el NDK en Eclipse

Para el desarrollo de juegos y aplicaciones 3d podras notar que necesitas un plus mas de velocidad, ahi es donde entra el NDK de Android, notaras que aplicaciones hechas en C con la NDK van de 10 a 100 veces mas rapido que en Java, el problema lo tenemos al desarrollar. El proceso para compilar una aplicacion usando la NDK es lento y tedioso, pero eso era hasta hoy, vamos a enseñar una forma de integrar el NDK en Eclipse, para los que trabajen mucho con la NDK lo agradeceran.

Para esto vamos a necesitar basicamente los siguientes componentes:

Android NDK (Native Development Kit)
Eclipse CDT (C Development Tooling)
Y si estamos en Windows, Cygwin Con los paquetes de devel instalados, especialmente GCC y Make.

Instalamos las 3 cosas, como recomendacion instalar el NDK en c:\Android_NDK ya que los proyectos que la usen tiene que estar en una carpeta llamada apps dentro de c:\Android_NDK.

Para probar que hemos instalado bien el Cygwin y la NDK podemos hacer los siguiente:

Ejecutar cygwin
cd /cygdrive/c/Android_NDK
make APP=hello-jni


Esto deberia compilar sin errores, en caso contrario revisa que has instalado todos los paquetes dev del gcc y make en el Cygwin ejecutando de nuevo su setup.exe

Ahora empieza lo bueno

Si ya has programado con la NDK, probablemente hayas usado para editar los ficheros C/CPP el vim o cualquier otro editor de textos, ahora con el CDT en Eclipse, no volveras a tener que usar otra cosa que no sea Eclipse. Luego de editar los archivos tendrias que ejecutar un make APP=myapp cada vez que quieras hacer un build, luego cliquear en refresh en el Eclipse a que el archivo .so generado aparezca en el proyecto. Esto como veis es "un fracaso absoluto" hay una manera mucho mas eficaz como veremos ahora.

¿Habeis usado alguna vez builders en Eclipse? Son como una especie de triggers que se pueden configurar para que ejecuten y refresquen lo que les digas por ti. Asi es como se configuran:

Boton derecho en tu proyecto, click en propiedades.
Selecciona la opcion de Builders en la lista de la izquierda.
Clickea en New en la parte derecha.
Selecciona Program como configuration type.
Ponle el nombre que quieras.
Location
- c:\cygwin\bin\bash.exe
Working Directory - c:\cygwin\bin
Arguments -
--login -c "cd /cygdrive/c/Android_NDK && make APP=myapp"
Estate seguro de los dos guiones antes de login y de las comillas despues de -c
Ahora ve a la pestaña Refresh
Marca "Refresh resources upon completion"
Selecciona "Specific resources"
Clickea en el boton "Specify resources" y selecciona el directorio lib de tu proyecto.
Marca "Recursively include sub-folders"
Ahora ve a la pestaña build options.
Marca "Allocate Console"
Marca "Launch in background"
Marca "Run the builder After a Clean"
Marca "Run the builder During manual builds"
Marca "Run the builder During auto builds"
Marca "Specify working set of relevant resources"
Clickea en el boton "Specify Resources"
Selecciona el directorio JNI de tu proyecto y todos los ficheros de dentro.
Ahora clicke en el boton OK.


Para la explicacion hemos asumido que Cygwin esta instalado en c:\cygwin, que la NDK esta en c:\Android_NDK y que el proyecto se llama myapp, tendreis que cambiarlo convenientemente.


Bueno, teniendo ya esto, Eclipse hara todo por ti, espero que os sirva, y que os pongais todos a programar rapidamente con la NDK.

1 comentario:

  1. cuales son los directorios libs y jni eso me detuvo todo el trabajo y la verdad es que soy nuevo en esto gracias

    ResponderEliminar