Venezuela Java User Group http://jfexart.com

Anuncio
Java móvil y embebido
Jorge Salazar Tovar
Venezuela Java User Group
[email protected]
http://jfexart.com
JINFOUNEG 2011
4ta Jornadas de Ingeniería en Informática
Puerto Ordaz, 11 y 12 de Noviembre 2011
System.out.print(“Hola mundo!”);
●
TSU en Informática
●
IBM ACE/ACSE
●
Oracle OCPJP – OCAJ – OCAM
●
Desarrollador y consultor Java
●
Líder fundador de Venezuela Java User Group
●
Ex líder de Venezuela OpenSolaris User Group
●
Blogger aficionado
●
Conferenciante
●
Entusiasta de tecnologías libres y abiertas
Agenda
●
Un poco sobre Java
●
Java móvil
●
Oracle Java Wireless Client 3.0 (OJWC)
●
Lightweight UI Toolkit (LWUIT)
●
Java ME + Web
●
Evolución de la plataforma Java ME
●
Java embebido
●
Java: La mejor plataforma para embebido
●
Dos configuraciones de Java embebido
●
Java SE y Java ME
Acerca de Java
●
Lenguaje de programación orientado
a objeto
●
Creado por Sun Microsystems
●
Lanzado en el año 1995
●
Su padre creador: James Gosling
●
Adquirido por Oracle Corporation en
el año 2010
Acerca de Java
●
●
Plataformas: Java Card, JavaME,
JavaSE: JavaEE y JavaFX
Más de 5.000 millones de dispositivos
usan la tecnología Java
●
Software libre: OpenJDK
●
Última versión: JavaSE 7 (07.07.2011)
Características de Java
●
●
●
●
●
Multiplataforma (Windows, Linux,
Mac, Solaris)
Java Virtual Machine (JVM)
Compila código fuente a Java
bytecode
Portabilidad y seguridad
Múltiples usos: Aplicaciones de
escritorio, sistemas de servidor,
navegadores web, dispositivos
móviles, sistemas embebidos
Java en todos lados
El espectro de Java
Key APIs
Plataforma
Lenguaje
Servidores
Desktop
Java EE
JavaFX
Java SE
Embebido
TV
Móvil
Java TV
MSA
Java ME
Lenguaje Java
Card
Java Card
Plataforma Java ME Objetivos de diseño
●
●
●
Modernización de la plataforma
●
ME.next: especificaciones actualizadas de la plataforma
●
Bajo footprint, runtimes de alto rendimiento
●
Integración de tecnologías Web
Potenciar el Servicio de Valor Agregado en la pila de Java móvil
●
Permitir al desarrollador servicios como el pago y la publicidad
●
Acceso a los servicios del operador a través de las Network APIs
●
Conjunto de aplicaciones base pre-integradas y optimizadas
Transformar la experiencia al consumidor
●
Fácil acceso desde dispositivos a principales tiendas de aplicaciones
●
Soluciones de gestión de contenidos en dispositivos
Java móvil Productos y tecnologías 2011
●
Modernización del
Mobile Java Runtine
●
●
Oracle Java Wireless Client 3.0
●
Implementación de Java superior
●
APIs de Oracle para desarrolladores
●
Java + Web
Herramientas
●
ME SDK 3.1
●
LWUIT 1.5
Java ME 6 (ME.next)
OJWC 3.0 Características modernas
●
●
Características
●
Web UI (JSR 290)
●
Optimizaciones de LWUIT
●
Telefonía, Subsistema Multimedia IP
●
Puente Java/JavaScript
●
APIs de Oracle para desarrolladores
●
Personalización basada en SIM
●
VM multi-tarea, alto rendimiento
Componentes opcionales
●
Runtime Web Integrado
OJWC 3.0 Manejando nuevos casos de uso
OJWC 3.0 Código de ejemplo de JSR 290
Embebiendo vista HTML dentro de Java
FluidImage fI = FluidManager.createImage(“file:///index.html”, …);
FluidPlayer fP =
FluidManager.createPlayer(fI,”javax.microedition.lcdui.Canvas);
FluidComponent fC = (FluidComponent)fluidPlayer.getTargetComponent();
fI.setViewportWidth(WIDTH);
fI.setViewportHeight(HEIGHT);
fluidPlayer.play()
Display.getDisplay(this)setCurrent((Canvas)fC);
Interfaz de usuario Lightweight UI Toolkit (LWUIT)
●
●
Crea interfaces de usuario enriquecidas fácilmente
para aplicaciones Java
Ligero y flexible
●
●
●
●
●
Footprint reducido, unos 50Kb
Modelo de componentes UI avanzados, altamente
personalizable
Corre en cualquier dispositivo CLDC 1.1 - MIDP 2.0
Se utiliza como librería independiente, incluida dentro de la
aplicación
Fuerte adopción por desarrolladores
●
Comercialmente usada por Comverse VVM, Emoze email,
Telmap, majimob, 8motions, MEP, StoreFront, Micello
●
Integrado en Java ME SDK 3.0.5
●
Activa comunidad open source en java.net
Lightweight UI Toolkit Características claves
●
●
Desarrollo rápido
●
MVC al estilo Swing
●
API limpia y clara
Consistente y flexible
●
Portable, extendible
●
Soporte de pantallas táctiles
●
Widgets enriquecidos
●
3D, integración SVG
●
Probado en amplia gama de dispositivos
Lightweight UI Toolkit Código de ejemplo
Representación de texto enriquecido/xHTML
HTMLComponent htmlC = new HTMLComponent(new HttpRequestHandler());
Form form = new Form();
form.addComonent(htmlC);
form.show();
htmlC.setPage(http://wap.cclol.com/thedailyshow.rbml);
LWUIT 1.5 Principales mejoras
●
Nuevo tipo de List: ContainerList
●
Mejora en la integración de componentes nativos
●
Nuevo componente para el manejo de vídeo
●
Nueva API de audio
●
Nuevo componente de pestañas
●
Componente Slider
●
Botones de activación (toggle buttons)
●
Teclado virtual integrado (VKB)
●
Desempeño de imágenes
LWUIT 1.5 Otras mejoras
●
Nuevas plataformas
●
●
●
Java SE – Permite creación de prototipos,
demostración y depuración de aplicaciones
LWUIT en la parte superior de Java SE,
incluyendo la posibilidad de embeber
aplicaciones LWUIT como un Applet
Soporte Blackberry Torch – Muchas nuevas
características incluyen soporte para
dispositivos Blackberry Torch y mejoras en la
entrada nativa
Mejoras en las herramientas
●
●
Nuevo constructor de GUI como parte de la
herramienta de editor de recursos
Rediseño del editor de recursos, incluyendo
muchas mejoras de usabilidad
Java ME + Web Descripción de arquitectura
●
Extensiones JavaScript
●
Múltiples modelo de aplicación
●
●
Integración de sistema de
gestión de aplicación
Alta portabilidad
Beneficios claves
●
Capacidad de acceso a dispositivo y lógica de negocio Java desde aplicaciones web
●
Representación web dentro de aplicaciones Java
●
Perfecta integración entre aplicaciones Java y aplicaciones web
Java ME + Web Código de ejemplo
Llamando código Java desde JavaScript
function startMusic() {
Widget = new bridge.JavaPackages.com.sun.j2me.jil.Widget.Widget();
AudioPlayer = Widget.Multimedia.AudioPlayer;
var fileUrl = "http://localhost/music.mp3";
AudioPlayer.open(fileUrl);
AudioPlayer.play(1);
}
Java ME + Web Código de ejemplo
Llamando código Java desde JavaScript
function loadBirthdays() {
var PIM = bridge.JavaPackages.javax.microedition.pim.PIM;
var Contact = bridge.JavaPackages.javax.microedition.pim.Contact;
var result = new Array();
var items = PIM.getInstance().openPIMList(PIM.CONTACT_LIST, PIM.READ_ONLY) .items();
while (items.hasMoreElements()) {
var item = items.nextElement();
if (item.countValues(Contact.BIRTHDAY) > 0) {
var name = item.getString(Contact.FORMATTED_NAME, 0);
var birthday = item.getDate(Contact.BIRTHDAY, 0);
result.push(new Record(name, birthday));
}
}
return result;
}
Java ME 6 Evolución de la plataforma CLDC/CDC
●
Oracle se comprometió con la modernización de la plataforma Java ME
●
Una propuesta para la evolución de Java ME fue enviada al comité ejecutivo del JCP
●
Elementos claves de la propuesta de evolución de Java
●
●
Adoptar o incorporar las mejoras del lenguaje o plataforma de JDK 1.6
●
Impulso para una mayor coincidencia entre CDC y CLDC
●
Extender APIs y capacidades de los nuevos o ya existentes paquetes opcionales
Oracle tiene la intención de soportar Java ME.next en productos futuros
Java La mejor plataforma para sistemas embebidos
1
2
3
Todas las ventajas del lenguaje Java y la
máquina virtual: independencia,
multiplataforma, multi-hilo, multi-core, gestión
de memoria, seguridad, etc.
Plataforma probada, robusta, segura y de alto
rendimiento, desplegada en una amplia gama
de entornos
Aísla tus aplicaciones de las variaciones de
lenguaje y plataforma (ej. C/C++, kernel,
diferencias de libc)
4
Soporte de las principales características de
sistemas embebidos (bajo footprint, gestión de
energía, baja latencia, etc)
5
Soporta los procesadores embebidos más
populares, permitiendo flexibilidad en el diseño
6
Desacopla el desarrollo de software del ciclo
de desarrollo de hardware
7
Totalmente orientado a objetos y altamente
productivo, APIs, runtime y herramientas que
permiten un rápido desarrollo y despliegue
8
Aprovecha la gran base de desarrolladores
Java y su ecosistema
9
Crea fácilmente soluciones integradas end-toend con servicios Java back-end
10
Escalable para crear soluciones desde
dispositivos con restricciones a sistemas
server-class
Clientes de Java embebido Dos configuraciones
Java SE
●
Soporte gráfico completo,
incluyendo Swing
●
Incluye todas las APIs de Java
SE
Java ME
●
SE headless
Plataforma Java SE
Paquetes opcionales CDC
●
Varios ports completos de Java SE 6
Seguridad, AWT, AGUI/Swing,
XML, media
●
Contenedor móvil para MSA
●
Estándares de la industria
para TV, OSGi, etc
●
Al día con las APIs de Java y el lenguaje
●
Enfoque: dispositivos de gama media y alta
●
●
Plataforma Java ME CDC
●
Java SE HotSpot
CDC
Sistema Operativo Embebido
●
●
Núcleo basado en un subconjunto de JDK 1.4
Basado en varios entandares de la industria
de sistemas integrados
Enfoque: dispositivos de gama baja y media
Java SE embebido Características y mercado
Características
●
Como Java SE, pero optimizado para sistemas embebidos
●
Reducción de memoria y footprint
●
Optimizado para poca memoria, gestión de energía optimizada,
soporte multi-core
Mercado
●
ATMs, parquímetros, sistemas de punto de venta
●
Impresoras multifuncionales
●
Módulos de energía inteligente, medidores inteligentes
●
Netbooks, PCs industriales
●
Automatización de fábricas, lectores RFID
●
Comunicación de voz, vídeo conferencia
●
Routers, switches, dispositivos de almacenamiento
●
Imágenes médicas, radares
Java ME embebido Características y mercado
Características
●
Líder en la industria
●
Alto rendimiento y fiabilidad con bajos requerimientos
●
Portado a un gran número de procesadores y sistemas operativos,
altamente configurable
Mercado
●
Reproductores Blu-ray, televisores digitales, decodificadores,
reproductores
●
Equipos de red y dispositivos de almacenamiento
●
Telefonía VoIP
●
Lectores de libros electrónicos
●
Medidores inteligentes
●
Automotriz / Telemática
●
Impresoras multifuncionales
●
Terminales de mano / Quioscos
Muchas gracias!
Visítame blog.jfexart.com
Escríbeme [email protected]
Sígueme @jfexart
Descargar