Saludos!!!!
Les voy a compartir informacion sobre Java y su implementación en dispositivos móviles.

Introduccion breve
Java comenzó como lenguaje de programación a mediados de la década de los noventa del siglo pasado. Este lenguaje fue creado para poder programar aparatos electrónicos con capacidades de conectividad a partir de otro dispositivo. La iniciativa era realizar una adaptación de C++ ya que su principal objetivo era brindar fiabilidad y seguridad.
Con la llegada de Internet y los primeros navegadores para la World Wide Web, los desarrolladores de Java se dieron cuenta de su aplicabilidad a este nuevo medio, apareciendo así la tecnología de los applets de Java, el cual le permite desarrollar una sola aplicación y ejecutarla tantas veces lo desee, y todas conectadas a la red.
Sun lanzó oficialmente Java al mercado en Mayo de 1995. Con el Java Development kit (JDK) en su versión 1.02 el cual daba un entorno de desarrollo y una implementación de Java éste fue ampliando y mejorando dando lugar a la versión 1.1. De ahí pasó a la siguiente, el SDK 1.2 aparte de muchas características incluía una colección nueva para el diseño de interfaces gráficos. Enseguida apareció la versión, SDK 1.3 y, finalmente y actual, el SDK 1.4. Si nos fijamos en la plataforma, sólo ha habido dos versiones principales Java 1 y Java 2. La segunda se introdujo coincidiendo con la llegada de SDK 1.2.
Finalmente en 1999, Sun desarrolla una versión de Java diseñada para dispositivos móviles la cual es: Java 2 Micro Edition, basada en una maquina virtual llamada KVM. Pero esta versión tenia restricción por ser la única maquina virtual y un único API. De esta forma en el año 2000, aparece la primera versión de una configuración, (J2ME CLDC 1.0), pero no es suficiente para desarrollar una aplicación completa.

Java Para Dispositivos Móviles

En julio del 2000 apareció la primera implementación de un perfil, llamado Mobile Information Device Profile (MIDP) el cual está destinado a teléfonos móviles y a paginadores. A partir de este primer perfil, J2ME fue aceptado por la comunidad de desarrolladores de dispositivos móviles expandiéndose hasta la actualidad.
Actualmente, la versión 2 de Java de Sun Microsystem contiene tres ediciones:
• Standard Edition (J2SE): ofrece un conjunto de clase y API (interfaz para programas de aplicación)
• Enterprise Edition (J2EE): agrupa API Java y tecnologías que no están basadas en este lenguaje.
• Micro Edition (J2ME): específicamente diseñado para desarrollar aplicaciones para dispositivos embebidos y electrónicos. Estos dispositivos normalmente tienen una potencia limitada, posibilidad de conectividad a una red (normalmente sin cables) y poseen interfaces gráficos.
La arquitectura de J2ME define configuraciones, perfilesy paquetes opcionales, como elementos básicos para desarrollar aplicaciones que se ajustan a las características de un amplio rango de dispositivos. Cada combinación se optimiza según la memoria, la capacidad de procesamiento y de entrada y salida de una categoría específica de dispositivos.
Las configuraciones están compuestas por una máquina virtual y un conjunto mínimo de bibliotecas de clases, las cuales serían un mínimo denominador común con que contarán todos los dispositivos de una configuración dada, o lo que es lo mismo ofrecen la funcionalidad para un rango particular de dispositivos con características comunes.

Configuraciones:

• Connected Limited Device Configuration (CLDC)
• Connected Device Configuration (CDC):

CLDC es la más pequeña, diseñada para dispositivos con conexiones de red intermitentes, un procesador lento y memoria limitada (teléfonos móviles y PDAs, por ejemplo)
CDC está orientado a dispositivos con más memoria, procesadores más rápidos y un ancho de banda mayor (por ejemplo, TV set-top boxes)
Una idea muy común y errónea es que J2ME y WAP son competidores, es decir, ambos sirven para lo mismo y simplemente son dos filosofías diferentes para resolver un único problema. Podemos ver que esta creencia es totalmente falsa simplemente prestando atención a las definiciones de ambos conceptos.
Wireless Application Protocol (WAP) es un protocolo de comunicaciones diseñado para permitir que dispositivos wireless con pantallas pequeñas y conexiones de baja velocidad puedan acceder a Internet y aplicaciones de intranets.
J2ME es una tecnología que permite desarrollar aplicaciones genéricas para este tipo de dispositivos.
Vemos por tanto que son cosas muy diferentes y que no pueden competir entre sí, incluso son tecnologías complementarias, pues expande el uso de las aplicaciones que disponen de posibilidad de acceso a redes sin cable. Así, un usuario de PDA, por ejemplo, puede bajarse una aplicación que desea instalar mediante un navegador WAP estándar