jueves, 29 de noviembre de 2012

Java en Android

Si tienes un terminal Android (teléfono, tablet...) seguramente habrás echado de menos que no ejecute java en alguna ocasión. Desde juegos hasta aplicaciones de turismo (si te gusta viajar habrás encontrado esos puntos que dicen: ¡Enciende el Bluetooth y descarga la guía de visita...!), pasando por el desarrollo de nuevas aplicaciones (como es nuestro caso), es interesante poder ejecutar archivos de java en nuestro terminal. La mala noticia es que Android no soporta una máquina virtual Java de forma nativa en estos momentos. La buena es que existen emuladores para todo: consolas de videojuegos, sistemas operativos como el propio Android y, como no, de la máquina virtual de Java.



El problema


Después de quemar unas cuantas neuronas aprendiendo a desarrollar aplicaciones java para dispositivos móviles nos encontramos con un problema a la hora de probarlas en real. Disponemos de un terminal iPad (iOS): no soporta java. Disponemos de otro terminal Android: no soporta java... vamos, que tenemos que recurrir a un móvil casi obsoleto para probar los .jar.

Pero, ¿por qué? Con lo fácil, flexible y potente que es trabajar con Java. La alternativa es programar en otro tipo de lenguajes (ActiveC, Adobe Flash...), pero eso será objeto de otros post. Aquí nos interesa ejecutar java en Android.


phoneME

Como casi siempre en informática, no somos los únicos que tenemos este mismo problema y hay gente mucho más especializada que aporta soluciones (bendita comunidad internauta).

La solución que nos ha solucionado un poquito la existencia ha sido phoneME (podéis visitar su web aquí). Se trata de una implementación de J2ME (Java2 Micro Edition para los profanos) para diferentes sistemas operativos entre los que se encuentra Android (si queréis más información sobre la versión de phoneME para Android podéis encontrarla aquí).


Instalación

En la sección de descargas de la página de phoneME podemos encontrar las versiones para los distintos sistemas operativos. A nosotros nos interesa el siguiente perfil:

phoneME Advanced - Foundation Profile + MIDP High Resolution b168 rev20547 (apk)

Se trata del perfil MIDP para ejecutar MIDlets en alta resolución (más de 240x320 pixels). Descargaremos un archivo APK que instalaremos en nuestro dispositivo Android.



Funcionamiento

Para ejecutar un archivo .jar tenemos dos opciones: 


  1. Si sólo tenemos el .jar debemos ejecutarlo desde phoneME (interfaz un poco engorrosa)
  2. Si disponemos del .jad y el .jar podemos utilizar un explorador de ficheros como el Astro y asignar la extensión .jad al phoneME (mucho más agradable de utilizar).
Vamos a centrarnos en la primera forma, por si acaso no tenéis el Astro todavía (mal, os recomiendo que lo probéis ;). El primer paso (y obvio) es pasar el .jar al terminal (por bluetooh, wifi, cable USB o como prefiráis). Una vez allí tomad nota de la ruta absoluta donde se ubica (en nuestro caso la carpeta de entradas de bluetooth: /mnt/sdcard/bluetooth) y el nombre del archivo. Esto es necesario porque phoneME no dispone de un módulo de exploración de ficheros: tendremos que darle la URL de nuestro archivo y pulsamos ejecutar:



Como podéis ver es un MIDlet sencillo desarrollado por nosotros, pero el programa es capaz de ejecutar MIDlets más complejos o incluso aplicaciones con la configuración CDC (instalando el apk correspondiente).

Espero que os resulte útil, si tenéis alguna pregunta no dudéis en escribir el comentario!

Recomendaciones de Alcasoft