La configuración de dispositivo limitado conectado ( CLDC ) es una especificación de un marco para aplicaciones Java ME que describe el conjunto básico de bibliotecas y características de máquina virtual que deben estar presentes en una implementación. El CLDC se combina con uno o más perfiles para brindar a los desarrolladores una plataforma para crear aplicaciones en dispositivos integrados con recursos muy limitados, como buscapersonas y teléfonos móviles . [1] El CLDC se desarrolló bajo el Proceso de la Comunidad Java como JSR 30 [2] (CLDC 1.0) y JSR 139 [3] (CLDC 1.1).
CLDC está diseñado para dispositivos que tienen potencia de procesamiento, memoria y capacidad gráfica limitadas. Los dispositivos suelen tener las siguientes características: [1]
En comparación con el entorno Java SE , varias API están completamente ausentes y algunas API se modifican de modo que el código requiere cambios explícitos para admitir CLDC. En particular, ciertos cambios no son solo la ausencia de clases o interfaces, sino que en realidad cambian las firmas de las clases existentes en la biblioteca de clases base. Un ejemplo de esto es la ausencia de la Serializable
interfaz, que no aparece en la biblioteca de clases base debido a restricciones en el uso de la reflexión. Por lo tanto, todas java.lang.*
las clases que normalmente implementan Serializable
no implementan esta interfaz de etiquetado .
Otros ejemplos de limitaciones dependen de la versión que se utilice, ya que algunas funciones se reintrodujeron con la versión 1.1 de CLDC. [4]
Serializable
interfaz no es compatible.java.lang.reflect
paquete y cualquiera de sus clases no son compatibles.java.lang.Class
los que se obtienen Constructores o Métodos o Campos.Object.finalize()
método.Un perfil es un conjunto de API que admiten dispositivos con diferentes capacidades y recursos dentro del marco CLDC para proporcionar un entorno de aplicaciones Java completo. Existen perfiles específicos para dispositivos que van desde máquinas expendedoras hasta decodificadores, siendo el perfil de teléfono móvil MIDP el más frecuente. [5]
El perfil de dispositivo de información móvil es un perfil diseñado para teléfonos móviles. Hay dos versiones de MIDP disponibles, especificadas en JSR 37 [6] [7] (MIDP 1.0) y JSR 118 [8] [9] (MIDP 2.0). Ambas versiones proporcionan una API GUI orientada a LCD , y MIDP 2.0 incluye una API básica de juegos 2D. Las aplicaciones escritas para utilizar este perfil se denominan MIDlets . Muchos teléfonos móviles vienen con una implementación MIDP y es una plataforma popular para descargar juegos para teléfonos móviles. [10]
El perfil del módulo de información se especifica en JSR 195 [11] y está diseñado para máquinas expendedoras , tarjetas de red, enrutadores, cabinas telefónicas y otros sistemas con pantalla simple o sin pantalla y algún tipo de acceso limitado a la red bidireccional. Solo se definen las API para la creación de aplicaciones, el almacenamiento y el acceso a la red. Estos son un subconjunto de los paquetes javax.microedition.io, rms y midlet en MIDP. Siemens Mobile y Nokia presentaron esta especificación al JCP.
El perfil DoJa fue diseñado para el teléfono móvil i-mode por NTT DoCoMo .
El perfil Digital Set Top Box , especificado en JSR 242, [12] está diseñado para el mercado de cable. También conocido como OnRamp , este perfil se basa en un subconjunto de OpenCable Application Platform ( OCAP ), que define un conjunto de API para el desarrollo de aplicaciones para decodificadores y dispositivos similares. El perfil consta de subconjuntos del CDC Personal Basis Profile que incluye soporte para AWT , Xlet , acceso a archivos y API de red, así como varias interfaces relacionadas con los medios de OCAP. El perfil completo abarcaba 31 paquetes Java y aproximadamente 1500 API. [5]
Los paquetes opcionales de PDA se especifican en JSR-75 [13] y están diseñados para PDA como dispositivos Palm o Windows CE . La especificación define dos paquetes independientes que representan características importantes que se encuentran en muchas PDA y otros dispositivos móviles. Estos paquetes son:
java.io
java.lang
java.util
java.util
biblioteca de colecciones. Este paquete contiene clases de colección como Vector y Hashtable . También contiene calendario y clase de fecha.