J2ME

3,995 views

Published on

Introducción a la programación para celulares por medio de J2ME.

Published in: Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,995
On SlideShare
0
From Embeds
0
Number of Embeds
74
Actions
Shares
0
Downloads
231
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

J2ME

  1. 1. Programación J2ME Prof: Pablo Mileti
  2. 2. Sun Microsystem y Java2 <ul><ul><li>La empresa Sun Microsystem lanza a mediados de los 90 el estandar JAVA2. </li></ul></ul><ul><ul><li>Define 3 entornos diferentes pensando en las necesidades del usuario: </li></ul></ul>Tecnología Base Disminuida y reconfigurada Ampliada <ul><ul><li>Cubre necesidades amplias. </li></ul></ul><ul><ul><li>Añade características para entornos empresariales: redes, sistemas distribuidos. </li></ul></ul><ul><ul><li>Cubre necesidades básicas. </li></ul></ul><ul><ul><li>Creación de aplicaciones standalone. </li></ul></ul><ul><ul><li>Creación de Applets. </li></ul></ul><ul><ul><li>Orientado a entornos con capacidades limitadas de memoria, proceso y display. </li></ul></ul><ul><ul><li>Creación de Midlets. </li></ul></ul>J2EE J2SE J2ME
  3. 3. Sun Microsystem y Java2 <ul><li>Se podría decir que: </li></ul><ul><ul><li>J2SE es una plataforma de programación. </li></ul></ul><ul><ul><li>J2EE es un superconjunto de la plataforma J2SE. </li></ul></ul><ul><ul><li>J2ME es un subconjunto de J2SE con el agregado de funcionalidades propias. </li></ul></ul>J2EE J2ME J2SE
  4. 4. Características de Java <ul><li>Inspirado en C++, pero con componentes de alto nivel, como manejo nativo de string y recolector de basura. </li></ul><ul><li>Es completamente orientado a objetos. </li></ul><ul><li>Es multiplataforma. Genera bytecodes que serán interpretados independientemente de la plataforma por una JVM (Java Virtual Machine). </li></ul><ul><li>Es software libre distribuido con licencia GPL. </li></ul><ul><li>Los programadores Java son los mas valorados del mercado laboral actual. </li></ul>
  5. 5. Actividad <ul><li>¿Qué diferencias hay entre los tres entornos de desarrollo que ofrece Sun Microsystem? </li></ul><ul><li>Si deseo programar una aplicación para una computadora, ¿Qué entorno debería usar? ¿Y si quiero programar una aplicación que se ejecute en un celular? </li></ul>Material complementario: Pag. 6 y 7 del PDF1. Pag. 1, 2, 3 y 4 del PDF2.
  6. 6. J2ME (Java 2 Micro Edition) <ul><li>Hoy llamado JME. </li></ul><ul><li>Es un subconjunto del lenguaje Java. </li></ul><ul><li>Se lo asocia al desarrollo de aplicaciones para dispositivos moviles con poca capacidad de memoria, poca capacidad de proceso y pantallas de reducidas dimensiones. </li></ul><ul><li>Multiplataforma. </li></ul><ul><li>Se ejecuta bajo una maquina virtual especial. </li></ul>
  7. 7. J2ME configuraciones CLDC y CDC <ul><li>J2ME no es solo para celulares. </li></ul><ul><li>J2ME tiene dos configuraciones diferentes segun las limitaciones del dispositivo. </li></ul><ul><li>Una configuración es el conjunto mínimo de APIs que permiten desarrollar aplicaciones para un grupo de dispositivos. </li></ul><ul><li>Los fabricantes de dispositivos que desean soportar J2ME deben decidir cual de las dos configuraciones implementará. </li></ul><ul><li>Todos los dispositivos que implementan estas configuraciones tienen en común el hecho de no cumplir lo requisitos para ejecutar J2SE. </li></ul>
  8. 8. J2ME – Configuración CLDC <ul><li>Enfocada a dispositivos con limitaciones en procesamiento, memoria y pantalla como ser celulares, pagers, PDA o agendas electrónicas. </li></ul><ul><li>Su máquina virtual es KVM (Kilo Virtual Machine). </li></ul><ul><ul><li>La KVM es la máquina virtual mas pequeña desarrollada por Sun. </li></ul></ul><ul><ul><li>Ocupa entre 40Kb y 80Kb. </li></ul></ul><ul><ul><li>No soporta punto flotante. </li></ul></ul><ul><ul><li>Escrita en lenguaje C. </li></ul></ul><ul><ul><li>Posee alta portabilidad. </li></ul></ul>CLDC (Connected Limited Device Configuration)
  9. 9. J2ME – Configuración CDC <ul><li>Enfocada a dispositivos con mayores recursos. Procesadores de 32 bits, y más de 2MB de memoria. Ej: Decodificadores de TV digital, palms, televisores con internet, electrodomésticos ”inteligentes”. </li></ul><ul><li>Su máquina virtual es CVM (Compact Virtual Machine). </li></ul><ul><ul><li>El dispositivo debe tener: </li></ul></ul><ul><ul><ul><li>Entre 160Kb y 512Kb de memoria disponible. </li></ul></ul></ul><ul><ul><ul><li>Procesador de 16 o 32 bits, mayor a 25MHZ. </li></ul></ul></ul><ul><ul><ul><li>Conexión a algun tipo de red. </li></ul></ul></ul><ul><ul><ul><li>Bajo consumo de batería. </li></ul></ul></ul>CDC (Connected Device Configuration)
  10. 10. J2ME - Perfiles <ul><li>Un perfil es un conjunto de APIs orientado a un ámbito de aplicación determinado. </li></ul><ul><li>Estipula las librerías necesarias para implementar una aplicación en una clase abstracta de dispositivos. </li></ul><ul><li>Los perfiles engloban un grupo de dispositivos según la funcionalidad que proporcionan. </li></ul><ul><li>Los perfiles controlan el ciclo de vida de una aplicación, si dispone o no de interfaz gráfica, entre otras cosas. </li></ul><ul><li>Para teléfonos celulares existe un único perfil llamado MIDP (Mobile Information Device Profile). </li></ul><ul><li>MIDP nos provee las clases y funciones necesarias para que el usuario ejecute una aplicación en el celular. </li></ul>
  11. 11. Arquitectura del entorno de ejecucion J2ME <ul><li>Una configuración especifíca la máquina virtual a implementar y las librerías disponibles para una familia de dispositivos con características en común, como pagers, PDAs o celulares, mientras que un perfil establece las APIs que se utilizarán para programar en un dispositivo genérico, por ejemplo, en un teléfono celular. </li></ul>Aplicación PDA Profile MID Profile Foundation Profile RMI Profile Personal Profile CDC CLDC CVM KVM Sistema Operativo
  12. 12. Actividad <ul><li>¿Qué es J2ME? </li></ul><ul><li>¿Qué configuración y perfil debo utilizar para programar una aplicación para un celular? ¿Qué indica cada uno, cuál es la diferencia entre una configuración y un perfil? </li></ul>Material complementario: Pag. 6 y 7 del PDF1. Pag.5 a 14 del PDF2.
  13. 13. MIDLETS <ul><li>Un Midlet es un programa capaz de correr en un teléfono celular. </li></ul><ul><li>Así como a las aplicaciones Java que corren en un navegador web se las llama Applets y a las que se ejecutan en un servidor Servlets, a las que se ejecutan utilizando el perfil MIDP se las denomina Midlets. </li></ul><ul><li>Una aplicación para celulares siempre tendrá un objeto del tipo MIDlet, que estará en uno de estos tres estados: </li></ul><ul><ul><ul><ul><ul><ul><ul><ul><li>Activo </li></ul></ul></ul></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><ul><ul><ul><li>Pausado </li></ul></ul></ul></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><ul><ul><ul><li>Destruido </li></ul></ul></ul></ul></ul></ul></ul></ul>
  14. 14. Software para programar Midlets <ul><li>Todo el software necesario para programar en java puede ser descargado gratuitamente desde la página web de Sun Microsytem http://www.sun.com </li></ul><ul><li>Los programas necesarios son: </li></ul><ul><ul><li>Java SE Runtime Environment (JRE) 6 Update 11 </li></ul></ul><ul><ul><li>Java SE Development Kit (JDK) 6 Update 11 </li></ul></ul><ul><ul><li>NetBeans IDE 6.5 con plugin JME </li></ul></ul><ul><li>La licencia de estos programas es GPL. </li></ul><ul><li>Todos son multiplataforma. </li></ul>
  15. 15. Descargar JRE y JDK
  16. 16. Descargar NetBeans IDE 6.5
  17. 17. Ciclo de Vida de un Midlet <ul><li>Todo dispositivo que adopte el perfil MIDP debe contener un programa gestor de aplicaciones denominado AMS (Application Management Software). </li></ul><ul><li>El AMS permite localizar e instalar MIDlets, ejecutarlos, actualizarlos y eliminarlos definitivamente (Ciclo de Vida). El AMS también controla el estado de un MIDlet. </li></ul>destroyApp() destroyApp() pauseApp() starApp() Estado Pausado Estado Activo Estado Destruido
  18. 18. Actividad <ul><li>¿Qué es un MIDlet? </li></ul><ul><li>¿Cuál es el ciclo de vida de un MIDlet? </li></ul><ul><li>¿Cuáles son los estados que puede tener un MIDlet? </li></ul>Material complementario: Pag. 7, 23 y 24 del PDF1. Pag. 31 a 34 del PDF2.
  19. 19. Nuestro Primer MIDlet import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class Practica1 extends MIDlet implements CommandListener { private Command cmdSalir; private Display pantalla; private Form ventana; public Practica1(){ pantalla=Display.getDisplay(this); cmdSalir=new Command(&quot;Salir&quot;,Command.EXIT,1); ventana=new Form(&quot;Mi primer MIDlet!!!&quot;); StringItem saludo=new StringItem (&quot;Probando&quot;,&quot;Lo logré!!!&quot;); ventana.append(saludo); ventana.addCommand(cmdSalir); ventana.setCommandListener(this); }
  20. 20. Nuestro Primer MIDlet public void startApp(){ pantalla.setCurrent(ventana); } public void pauseApp(){ } public void destroyApp(boolean unconditional){ } public void commandAction(Command c, Displayable s){ if(c==cmdSalir){ destroyApp(false); notifyDestroyed(); } } }

×