J2ME

7,754 views

Published on

Introducción a la programación para celulares en J2ME.

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

No Downloads
Views
Total views
7,754
On SlideShare
0
From Embeds
0
Number of Embeds
121
Actions
Shares
0
Downloads
358
Comments
0
Likes
4
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.
  3. 3. 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.
  4. 4. Añade características para entornos empresariales: redes, sistemas distribuidos. </li></ul></ul><ul><ul><li>Cubre necesidades básicas.
  5. 5. Creación de aplicaciones standalone.
  6. 6. Creación de Applets. </li></ul></ul><ul><ul><li>Orientado a entornos con capacidades limitadas de memoria, proceso y display.
  7. 7. Creación de Midlets. </li></ul></ul>J2EE J2SE J2ME
  8. 8. Sun Microsystem y Java2 <ul><li>Se podría decir que: </li><ul><li>J2SE es una plataforma de programación.
  9. 9. J2EE es un superconjunto de la plataforma J2SE.
  10. 10. J2ME es un subconjunto de J2SE con el agregado de funcionalidades propias. </li></ul></ul>J2EE J2ME J2SE
  11. 11. Características de Java <ul><li>Inspirado en C++, pero con componentes de alto nivel, como manejo nativo de string y recolector de basura.
  12. 12. Es completamente orientado a objetos.
  13. 13. Es multiplataforma. Genera bytecodes que serán interpretados independientemente de la plataforma por una JVM (Java Virtual Machine).
  14. 14. Es software libre distribuido con licencia GPL.
  15. 15. Los programadores Java son los mas valorados del mercado laboral actual. </li></ul>
  16. 16. Actividad <ul><li>¿Qué diferencias hay entre los tres entornos de desarrollo que ofrece Sun Microsystem?
  17. 17. 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.
  18. 18. J2ME (Java 2 Micro Edition) <ul><li>Hoy llamado JME.
  19. 19. Es un subconjunto del lenguaje Java.
  20. 20. Se lo asocia al desarrollo de aplicaciones para dispositivos moviles con poca capacidad de memoria, poca capacidad de proceso y pantallas de reducidas dimensiones.
  21. 21. Multiplataforma.
  22. 22. Se ejecuta bajo una maquina virtual especial. </li></ul>
  23. 23. J2ME configuraciones CLDC y CDC <ul><li>J2ME no es solo para celulares.
  24. 24. J2ME tiene dos configuraciones diferentes segun las limitaciones del dispositivo.
  25. 25. Una configuración es el conjunto mínimo de APIs que permiten desarrollar aplicaciones para un grupo de dispositivos.
  26. 26. Los fabricantes de dispositivos que desean soportar J2ME deben decidir cual de las dos configuraciones implementará.
  27. 27. Todos los dispositivos que implementan estas configuraciones tienen en común el hecho de no cumplir lo requisitos para ejecutar J2SE. </li></ul>
  28. 28. 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.
  29. 29. Su máquina virtual es KVM (Kilo Virtual Machine). </li><ul><li>La KVM es la máquina virtual mas pequeña desarrollada por Sun.
  30. 30. Ocupa entre 40Kb y 80Kb.
  31. 31. No soporta punto flotante.
  32. 32. Escrita en lenguaje C.
  33. 33. Posee alta portabilidad. </li></ul></ul>CLDC (Connected Limited Device Configuration)
  34. 34. 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”.
  35. 35. Su máquina virtual es CVM (Compact Virtual Machine). </li><ul><li>El dispositivo debe tener: </li><ul><li>Entre 160Kb y 512Kb de memoria disponible.
  36. 36. Procesador de 16 o 32 bits, mayor a 25MHZ.
  37. 37. Conexión a algun tipo de red.
  38. 38. Bajo consumo de batería. </li></ul></ul></ul>CDC (Connected Device Configuration)
  39. 39. J2ME - Perfiles <ul><li>Un perfil es un conjunto de APIs orientado a un ámbito de aplicación determinado.
  40. 40. Estipula las librerías necesarias para implementar una aplicación en una clase abstracta de dispositivos.
  41. 41. Los perfiles engloban un grupo de dispositivos según la funcionalidad que proporcionan.
  42. 42. Los perfiles controlan el ciclo de vida de una aplicación, si dispone o no de interfaz gráfica, entre otras cosas.
  43. 43. Para teléfonos celulares existe un único perfil llamado MIDP (Mobile Information Device Profile).
  44. 44. MIDP nos provee las clases y funciones necesarias para que el usuario ejecute una aplicación en el celular. </li></ul>
  45. 45. 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
  46. 46. Actividad <ul><li>¿Qué es J2ME?
  47. 47. ¿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.
  48. 48. MIDLETS <ul><li>Un Midlet es un programa capaz de correr en un teléfono celular.
  49. 49. 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.
  50. 50. 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><li>Activo
  51. 51. Pausado
  52. 52. Destruido </li></ul></ul></ul></ul></ul></ul></ul></ul>
  53. 53. 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
  54. 54. Los programas necesarios son: </li><ul><li>Java SE Runtime Environment (JRE) 6 Update 11
  55. 55. Java SE Development Kit (JDK) 6 Update 11
  56. 56. NetBeans IDE 6.5 con plugin JME </li></ul><li>La licencia de estos programas es GPL.
  57. 57. Todos son multiplataforma. </li></ul>
  58. 58. Descargar JRE y JDK
  59. 59. Descargar NetBeans IDE 6.5
  60. 60. 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).
  61. 61. 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
  62. 62. Actividad <ul><li>¿Qué es un MIDlet?
  63. 63. ¿Cuál es el ciclo de vida de un MIDlet?
  64. 64. ¿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.
  65. 65. 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); }
  66. 66. 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(); } } }

×