Aprendiendo J2ME, paso 2

Cuando surgió Java, la idea era de poder tener esta tecnología en cualquier parte, lavadoras, refrigeradores, automóviles, teléfonos móviles o celulares y hasta computadoras y por supuesto servidores, en los pequeños dispositivos es donde se especializa esta edición de Java, J2ME.

Me voy a centrar primero en el desarrollo para Palm y luego en el desarrollo para los teléfonos Blackberry (teléfono móvil o celular tipo PDA enfocado a la movilidad del correo electrónico, desarrollado por una empresa canadiense), no voy a tratar el desarrollo para PDAs de otro tipo como lo es iPaq o Zaurus, por que mi propósito es aprender a desarrollar para dispositivos móviles que tengan un futuro prometedor, que estén más estandarizados y que estén más popularizados.

Como lo comenté en el artículo anterior, los desarrollos para Palm se centran más sobre c++, aunque también se puede desarrollar en Visual Basic (no gracias, es mucha porquería para mí) y por supuesto también en Java (esto si es algo muy bueno). Así que olvídense de gcc y demás aplicaciones e IDEs de los que hable antes, ahora solo vamos pensar en Java y nada más.

Pero volvamos al tema, actualmente existen 3 ediciones de Java:  

J2SE.- Java 2 Standard Edition, que es la que la mayoría de nosotros conoce y tiene en sus computadoras/ordenadores, en otras palabras es la versión vulgar o popularizada de Java.  

J2EE.- Java 2 Enterprise Edition, una estupenda edición enfocada a la lógica de negocios, donde es el fuerte actualmente de Java, donde se esta haciendo millonario SUN, IBM, Borland, entre otras muchas empresas, de hecho gracias a esta edición se podría decir que es el por qué son tan bien pagados los desarrolladores Java. Esta edición es la que las personas más usan sin que eso requiera que lo tengan que ver, creo que es con esto con lo que el creador de Java, James Gosling, se siente más contento, por que su idea siempre ha sido de que la mejor tecnología es la que menos percibe el usuario final, ya que hace un buen trabajo y no necesita saber que hay detrás de lo que hace en su vida diaria ese usuario final. Ejemplo de ello son los sistemas de bancos, empresas de telefonía entre muchísimas otras.  

J2ME.- Java 2 Micro Edition, este es el que realmente nos interesa, como su nombre lo dice, es una micro edición de Java, esta edición surgió para darle entrada a Java en los dispositivos móviles, más precisamente a las PDA (Personal Digital Assistant o Asistente Personal Digital) y a los smartphones (combinación de teléfonos móviles o celulares y PDAs), además de otros pequeños dispositivos como tarjetas con chip, televisiones, etc.  

Hablemos más sobre J2ME. Tratar de generalizar o dejar definido en un solo concepto o especificación las características de todos los dispositivos móviles es algo difícil de hacer, pero no imposible, es aquí donde nos vamos a centrar, pensemos en J2ME como la función que tiene una distribución de GNU/Linux, por una parte tenemos el kernel, lo que es Linux, y por otro lado las aplicaciones que necesitamos para una tarea dada, como por ejemplo un servidor de correos, que se especializa solo en eso, algo similar funciona con J2ME, con lo que son las configuraciones y los perfiles. Las configuraciones serian el Kernel o los tipos de maquinas virtuales, y los perfiles, las opciones con las que se adapta la maquina virtual a el dispositivo.  

Existen 2 configuraciones, CLDC ó Connected Limited Device Configuration y CDC ó Connected Device Configuration.  

CDC se especializa en pequeños dispositivos, pero con recursos más completos, como lo puede ser una computadora de navegación de automóvil, donde tenemos un procesador de 32-bits, un mínimo de 2 megabytes total en memoria RAM y memoria flash o ROM, conexión a una red alámbrica o inalámbrica con un ancho de conexión de 9600 bits o menos, una amplia implementación de las librería de Java y una no tan especializada implementación de la interfase gráfica, ya que no lo requiere. La maquina virtual que implementa esta configuración se le conoce como KVM o Kilo Virtual Machine.  

CLDC es la configuración que nosotros requerimos, como vemos, CDC requiere de una mayor cantidad de recursos con los que no contamos en un smartphone, en cambio CLDC solo necesita un total de memoria de entre 160 y 512 kilobytes, corre sobre dispositivos de poco consumo de energía, permite la conexión a una red alámbrica e inalámbrica con un ancho de banda de conexión de 9600 bits o menos e igual que CDC no cuenta con una gran implementación de la interfase gráfica. La maquina virtual que lo implementa es la CVM, el nombre es por que antes también se le conocía como Compact Virtual Machine, aunque como esto era algo confuso cuando se hablaban de las dos maquinas virtuales, por lo que solo se le conoce como CVM y ya.
 
Además de las configuraciones que afectan directamente a las maquinas virtuales también tenemos los perfile, existen varios la MIDP, la PDA, la Fundation que sirve como base para las siguientes dos, la Personal y la RMI, las primeras dos son para CLDC y las últimas dos para CDC.  

El perfil MIDP se enfoca en los dispositivos móviles como los smartphones, los radios de dos vías y Palms, por lo que como ven, este es el que vamos a utilizar.  

Así que vamos a ponernos manos a la obra y vamos a desarrollar algunas aplicaciones Java para J2ME o lo que es lo mismo, vamos a crear MIDPlets.  

Una vez que hemos hablado de todos los conceptos básicos, vamos a comenzar con las herramientas que nos van a ayudar y que vamos a utilizar todo el tiempo, claro, por supuesto de además de un reproductor de música y de nuestro navegador (de preferencia Firefox por favor).  

Necesitamos del SDK de Java para J2ME, el cual lo podemos descargar de la siguiente dirección, http://java.sun.com/products/sjwtoolkit/download-2_3.html y un editor de texto, como lo puede ser vim, el bloc de notas, o el que más les agrade. Ya se que estén en Linux, Mac o Windows van a necesitar entrar al shell o símbolo del sistema y compilar a "manita" la aplicación que estén desarrollando, esto se hace igual que en el Java tradicional.  

Si no han trabajado jamás con Java y ya les intereso aprender, o si no recuerdan los conceptos básicos o quieren ver como se compila a "manita" les recomiendo que consulten las siguientes guías http://www.programacion.net/java/tutorial/primera_taza/ y http://www.programacion.net/java/tutorial/java_basico/ además de que no dejen de visitar esta página http://www.programacion.net/java/tutorial/ donde pueden encontrar muy buenas guías de Java de todo tipo.

Si son huevones como yo, y cuenta con un equipo que tenga como mínimo 256 de RAM y también como mínimo un procesador a 1 Gh opten por NetBeans y el NetBeans Mobility Pack que lo pueden descargar de http://www.netbeans.org/ lo mejor de todo es que es open source y lo encuentran para Linux, Mac OS X, Solaris SPARC, Solaris x86 y bueno también para Windows para aquellos que aún no sean inteligentes.  

Todos los MIDPlets van a ser desarrollados sobre NetBeans 4.1.  

En el siguiente artículo ya vamos a empezar a desarrollar, así que los que anden enpolvados o que aún no sepan mucho de Java no dejen de ver las guías anteriores.  

Hasta el próximo artículo.

Bibliografía.

  

Learning Wireless Java de Qusay H. Mahmoud, Oreilly.
http://en.wikipedia.org/wiki/J2ME
http://www.marcelopedra.com.ar/glosario_J.htm
http://en.wikipedia.org/wiki/BlackBerry
http://es.wikipedia.org/wiki/PDA_(ordenador)
http://en.wikipedia.org/wiki/Smartphone
http://www.palmos.com/dev/tech/java/
http://java.sun.com/products/midp4palm/
http://www.programacion.net/java/tutorial/ags_j2me/2/   

4 comentarios:

Anónimo dijo...

Solo un detalle. Los colores son horribles :o Me duele la vista :P buenos tutoriales, podrias ponerlos en la guia-ubuntu.org ^^

Anónimo dijo...

un saludo muy cordial me parece interesante todo lo que comentas yo tambien soy usuario GNU/Linux y me gustaria mucho aprender sobre J2mE y quisiera saber cuando vamos a comenzar con la programacion o con lo ejemplos ya me instale Netbeans

Anónimo dijo...

Hola quisiera participar con Ustedes comuníquenme cuando se empezará con los programas.
Ya tengo el NetBeans mi correo es angel_aah@hotmail.com

RodrigoUC dijo...

empesemos haber que sale jeje

Publicar un comentario