Compilar Genie Vala + SDL 2.0 para Android.

Como lo oyes!!!, ya está preparada la forma de compilar Genie y Vala en Andoid. Y aquí te lo explicamos:

Antes de nada tengo que agradecer al Brasileño Pedro Henrrique Lara Campos (pedroHLC) por compilar las librerías con buen hacer y explicarme con paciencia los pasos para conseguir la compilación de ellas en android. Su lugar en Github donde construye avalanche un motor de juegos en vala.

Como ya sabemos en Android se puede usar Java y también C o C++. Nuestro compilador Valac es capaz de convertir los programas escritos en Genie o Vala en lenguaje C. El problema es que Valac depende normalmente de Glib/Gobject y por lo tanto hay que compilar esta dependencia para android. 

El modo en que se ha conseguido la ejecución en android es la siguiente. Se compilan todas las librerías necesarias para el programa e incluido el programa en forma de librería dinámica (.so) llamada libgame.so que queda guardada en el directorio libs de nuestro proyecto android. De este modo, la aplicación MainActivity.java o SDLActivity.java carga la libreria libgame.so y la llama a traves de la funcion main() del archivo "miprograma_android_main.c" que también se encuentra dentro de libgame.so.

En este ejemplo no hay llamadas JNI.


Que necesitamos tener y hacer:

1.- Un programa en Genie o Vala + SDL2.0:

Por ahora estas son las librerías que podemos usar:

[01 Feb 2014 03:02 (GMT +0:00)]
chipmunk 6.2.0
faad2 2.7
gettext 0.18.3.2
glib2 2.38.2
libffi 3.0.13
libgee-0.8
libiconv 1.14
libogg 1.3.1
libshout_aac 1:2.3.1
libvorbis 1.3.3
openal-git 388
sdl2 2.0.1
sdl2_gfx 1.0.0
sdl2_image 2.0.0
sdl2_mixer 2.0.0
sdl2_ttf 2.0.12 

2.- Estas mismas librerías y sus dependencias compiladas para android . 

Que se encuentran en esta dirección(Platform 9 - ARMv6) de Pedro HLC junto con las herramientas de compilación que usará vala para construir una librería que pueda ser llamada por el programa principal Activity.java de Android. Guardaremos este toolchain en "/opt"  para que de este modo sea accesible desde el repositorio "helloworld" que os hemos preparado.

3.- Un proyecto android en blanco creado a través de eclipse. 
Sin embargo, no es necesario si te descargas el proyecto "helloworld" que hemos preparado.

4.- Modificar el Activity.java 

Usar el Activity.java que proporciona en el paquete SDL2.0. y modificarlo para que carge nuestra librería libgame.so y se ejecute main(). Descargando el repositorio "helloword" podras acceder a este archivo modificado. La ruta es src/com/example/helloworld/SDLActivity.java.

Descargar el repositorio origen del ejemplo para poder modificarlo con su codigo.
Descargar  el  ejemplo de la aplicacion empaquetada .apk en este enlace.

Y si quieres ver como se ha realizado desde scratch para compilar para android un programa en vala+sdl2:
Ver video preparado por Pedro

No hay comentarios:

Publicar un comentario en la entrada