SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
Java ME (Micro Edition)
Es una plataforma orientada a proveer una
colección de APIs de desarrollo de software para
dispositivos móviles.


*Teléfonos celulares (Feature phones)
*Apps para BlackBerry (gracias a la
BlackBerry® Java® Virtual Machine)
Java ME (Micro Edition)
Características

*Flexibilidad en la creación de interfaces gráficas
*Variedad de APIs para distintos dispositivos de
acuerdo a sus recursos y capacidades.
*Seguridad
*Soporte para aplicaciones que utilizan SMS o
Internet
*Multiplataforma
MIDlets
Las aplicaciones Java ME, se denominan MIDlets

<<Así como se le llama APPLET , a
una aplicación que corre en un
navegador web>>


La gran mayoría de
MIDlets desarrollados, son
juegos para celulares, que
implementan APIs para el
manejo 2D y 3D
Modelo de compilación

      Ejecución del programa

          [Compilacion JIT]
           JVM (Maquina Virtual)


Bytecode (Código intermedio)       .jar
             .class


            [Compilador]

          Código Fuente
                      .java
Distribución


  Archivo .jar    Archivo .jad
que contiene el que describe los
 bytecode del    contenidos del
   programa        archivo .jar.
Arquitectura
    Paquetes opcionales
        APIs para juegos 3D, multimedia


               Perfiles
                    MIDP

        Configuración
                    CLDC

    JVM (Java Virtual Machine)


AMS (Application Management Software)
        Sistema Operativo
Actividad 1




Hola Mundo!
Instalación del IDE y
   complementos
Creación del proyecto
Ciclo de vida de un MIDlet
Los dispositivos móviles (ya sea emulador o uno real), interactúa con un
MIDlet a través de su propio software, llamado Application Management
Software (AMS)


Estados                     Métodos
•   -Active                 public void startApp() { }
•   -Paused                 public void pauseApp() { }
•   -Destroyed              public void destroyApp(boolean unconditional) { }



Son métodos que extienden de la clase Midlet y en los cuales podemos
ubicar código que queremos que se ejecute en un momento dado.
Ciclo de vida de un MIDlet
                                        AMS
                             Application Management Software

                                                 new()*
                startApp()

Paused                               Active
               pauseApp()


destroyApp()                     destroyApp()


                Destroyed
Estado Paused
En este estado el MIDlet está esperando por ser pasar al estado ACTIVE
y no consume recursos del dispositivo.


Causas
-Cuando se llama el método pauseApp()
-Cuando el ASM exige recursos del teléfono (por ejemplo, cuando el
teléfono recibe una llamada entrante. EL ASM invoca el método
pauseApp() ).
-Cuando se dispara MIDletStateChangeException (En caso de un error, se
pone en estado PAUSED)
Estado Active
En este estado el MIDlet la aplicación ejecuta todas sus funciones



Causas
-Cuando se inicia la aplicación (El AMS permite crear una nueva instancia
de nuestra aplicación)
-Cuando se llama el método startApp()
-Cuando se llama el método ResumeRequest()


ResumeRequest() es un método que permite pasar de estado Paused a
Active
Estado Destroy
Se puede destruir una aplicación que esté tanto en estado ACTIVE como
PAUSED. Al destruir, lo que hacemos es eliminar la instancia creada, pero
no desinstalar la aplicación

 Causas
 -El usuario apaga repentinamente el dispositivo
 -Cuando se llama el método destroyApp(boolean unconditional)

unconditional es una variable booleana que define si es completamente
necesario destruir la aplicación o no

*true - La aplicación se destruirá obligatoriamente, independientemente de lo que este
haciendo.

*false - La aplicación se destruirá, siempre y cuando, NO esté haciendo nada importante, si se
encuentra ejecutando algún proceso importante, se dispara MIDletStateChangeException
Secuencia de eventos

                             Dispositivo libre                                 El usuario
            Usuario inicia                        Llamada      Finalización
Evento                        para iniciar la                                 desea cerrar
            la Aplicación         App             entrante    de la llamada
                                                                                la App


Método Constructor()
ejecutado
                             startApp()          pauseApp()   startApp()      destroyApp()



Estado       Paused             Active            Paused          Active      Destroyed


                                           Secuencia de eventos
Importando paquetes
Paquetes fundamentales

javax.microedition.midlet
       Nos provee la clase MIDlet


javax.microedition.icdui

•   Alert                •   Displayable   •   Item
•   AlertType            •   Font          •   List
•   Canvas               •   Form          •   Screen
•   ChoiceGroup          •   Gauge         •   StringItem
•   Command              •   Graphics      •   TextBox
•   DateField            •   Image         •   TextField
•   Display              •   ImageItem     •   Ticker
Bases de la GUI
Interfaz grafica de Usuario
  Debe haber un objeto «Displayable» o Contenedor, que contendrá los
  demás elementos y un administrador para ese objeto.

  Solo puede existir un objeto «Displayable» por MIDlet


                                          Objeto Displayable
Elemento     Administrador                  (Contenedor)

Clase               Display                        Form
Clase Display
Representa el administrador para la visualización correcta del MIDlet y la
entrada desde el dispositivo.

Provee métodos para obtener información sobre las capacidades del
dispositivo.

• isColor()
• numColors()
• numAlphaLevels()

Creación de un objeto tipo Display

                 Display display;
                 display= Display.getDisplay(this);
Clase Form
Es un contenedor en el que se pueden insertar diferentes elementos

•   Campos de texto de solo lectura
•   Campos de texto editables
•   Imágenes
•   Grupos de botones
•   Elementos personalizados
•   En general, cualquier clase hija de la clase Item


Creación de un objeto tipo Form

                  Form form;
                  form = new Form("Titulo Form");
Interfaz grafica de Usuario


Display display;                     Form form;
display= Display.getDisplay(this);   form = new Form("Titulo Form");




            display                                form


                     display.setCurrent(form)
Código Actividad 1
Emulador
Actividad 2




Sistema de Login
Desarrollo de la actividad



Aplicación    Aplicación
                           Aplicación
    de            de
                             Móvil
 Consola      escritorio
Clase TextField
  Es un componente editable que debe ir ubicado dentro de un Form

  Input Constraints o Restricciones de entrada
                                   •   NON_PREDICTIVE
  •    ANY
                                   •   NUMERIC
  •    DECIMAL
                                   •   PASSWORD
  •    EMAILADDR
                                   •   PHONENUMBER
  •    INITIAL_CAPS_SENTENCE
                                   •   SENSITIVE
  •    INITIAL_CAPS_WORD
                                   •   UNEDITABLE
                                   •   URL

Constructor

TextField(String label, String text, int maxSize, int constraints)

Ejemplo
      userName = new TextField("LoginID:", "", 30, TextField.ANY);
Clase Image
Representa un conjunto de datos gráficos.


Creando la imagen

           Image img;
           try{
                  img=Image.create(«/ruta_imagen»)
           }
           catch(){
           }

 Agregándola al Form

           form.append(img);
Clase Command
  Es una clase que encapsula la información semántica para una acción

  Tipos
  •    BACK
  •    CANCEL
  •    EXIT
  •    HELP
  •    ITEM
  •    OK
  •    SCREEN
  •    STOP
Constructor

       Command(String label, int commandType, int priority)

Agregándolo al Form
      form.addCommand(cancel);
Interface CommandListener
CommandListener asociado con el Displayable, es el que define en
realidad que acción se llevo a cabo.

Asociándolo al Form
                  form.setCommandListener(this);


Identificando el evento

public void commandAction(Command c, Displayable d) {
        String label = c.getLabel();
        if (label.equals("Cancel")) {
            //Metodo a ejecutar
        } else if (label.equals("Login")) {
            //Metodo a ejecutar
        }
    }
Clase Alert
   Es una pantalla que muestra datos al usuario y espera por un cierto
   periodo de tiempo antes de procesar el siguiente objeto "Displayable"

   Puede contener un String y/o una imagen

   Es similar al JOptionPane de Java SE

Constructor para un Alert vacío

              Alert(String title)

 Constructor para un Alert completo

Alert(String title, String alertText, Image alertImage, AlertType alertType)
Clase Alert
 Ejemplo constructor
Alert error = new Alert("Login Incorrect", "Please   try again", imge, AlertType.ERROR);



   Ejemplo

        Alert success = new Alert("Login Successfully",
                        "Your Login Process is completed!",
                        img2, AlertType.INFO);
                success.setImage(img);
                userName.setString("");
                password.setString("");
                display.setCurrent(success, form);
Material elaborado por:




Anderson Rubio
 andersonrubioquintero@gmail.com
           @anderblackhawk
      www.andersonrubio.com

Weitere ähnliche Inhalte

Was ist angesagt?

Programación orientada a objetos presentacion
Programación    orientada    a objetos presentacionProgramación    orientada    a objetos presentacion
Programación orientada a objetos presentacion
franciscocain
 
ARCHIVOS Y DIRECTORIOS EN LINUX
ARCHIVOS Y DIRECTORIOS EN LINUXARCHIVOS Y DIRECTORIOS EN LINUX
ARCHIVOS Y DIRECTORIOS EN LINUX
Alex Daquilema
 
Modelo dominio y secuencia
Modelo dominio y secuenciaModelo dominio y secuencia
Modelo dominio y secuencia
brayanfp
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
Giancarlo Aguilar
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño
landeta_p
 
Diccionario De Datos
Diccionario De DatosDiccionario De Datos
Diccionario De Datos
nahun1385
 

Was ist angesagt? (20)

Taller: Prueba Unitaria con JUnit en NetBeans
Taller: Prueba Unitaria con JUnit en NetBeansTaller: Prueba Unitaria con JUnit en NetBeans
Taller: Prueba Unitaria con JUnit en NetBeans
 
Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.
 
Programación orientada a objetos presentacion
Programación    orientada    a objetos presentacionProgramación    orientada    a objetos presentacion
Programación orientada a objetos presentacion
 
Prueba de Caja Blanca
Prueba de Caja BlancaPrueba de Caja Blanca
Prueba de Caja Blanca
 
ARCHIVOS Y DIRECTORIOS EN LINUX
ARCHIVOS Y DIRECTORIOS EN LINUXARCHIVOS Y DIRECTORIOS EN LINUX
ARCHIVOS Y DIRECTORIOS EN LINUX
 
Taller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 ConectividadTaller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 Conectividad
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos
 
Unidad1 2 Lenguajes y automatas
Unidad1 2  Lenguajes y automatasUnidad1 2  Lenguajes y automatas
Unidad1 2 Lenguajes y automatas
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
 
Fundamentos de BD - Unidad 5 algebra relacional
Fundamentos de BD - Unidad 5 algebra relacionalFundamentos de BD - Unidad 5 algebra relacional
Fundamentos de BD - Unidad 5 algebra relacional
 
Modelo dominio y secuencia
Modelo dominio y secuenciaModelo dominio y secuencia
Modelo dominio y secuencia
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.
 
PROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOSPROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOS
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Mapa conceptual - Institutos Reguladores Calidad de Software
Mapa conceptual - Institutos Reguladores Calidad de SoftwareMapa conceptual - Institutos Reguladores Calidad de Software
Mapa conceptual - Institutos Reguladores Calidad de Software
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño
 
Diccionario De Datos
Diccionario De DatosDiccionario De Datos
Diccionario De Datos
 
Presentacion eclipse - grupo 6
Presentacion   eclipse - grupo 6Presentacion   eclipse - grupo 6
Presentacion eclipse - grupo 6
 

Ähnlich wie Java ME (Micro Edition)

Unidad jme-02--ingbarcia-final
Unidad jme-02--ingbarcia-finalUnidad jme-02--ingbarcia-final
Unidad jme-02--ingbarcia-final
Orlando Barcia
 
Taller de programación
Taller de programaciónTaller de programación
Taller de programación
Rafa Perez
 
2da clase moviles_jme_alert_form_text_field_so_uch
2da clase moviles_jme_alert_form_text_field_so_uch2da clase moviles_jme_alert_form_text_field_so_uch
2da clase moviles_jme_alert_form_text_field_so_uch
epalomino2012
 
Interfaces Usuario 3
Interfaces Usuario 3Interfaces Usuario 3
Interfaces Usuario 3
Milaly
 
Fundamentos vb
Fundamentos vbFundamentos vb
Fundamentos vb
valerin01
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .net
Antonio Palomares Sender
 
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
Sorey García
 

Ähnlich wie Java ME (Micro Edition) (20)

Unidad jme-02--ingbarcia-final
Unidad jme-02--ingbarcia-finalUnidad jme-02--ingbarcia-final
Unidad jme-02--ingbarcia-final
 
Mi dlet
Mi dletMi dlet
Mi dlet
 
Taller de programación
Taller de programaciónTaller de programación
Taller de programación
 
2da clase moviles_jme_alert_form_text_field_so_uch
2da clase moviles_jme_alert_form_text_field_so_uch2da clase moviles_jme_alert_form_text_field_so_uch
2da clase moviles_jme_alert_form_text_field_so_uch
 
Clase celulares
Clase celularesClase celulares
Clase celulares
 
J2me midlet1
J2me  midlet1J2me  midlet1
J2me midlet1
 
Interfaces Usuario 3
Interfaces Usuario 3Interfaces Usuario 3
Interfaces Usuario 3
 
Fundamentos vb
Fundamentos vbFundamentos vb
Fundamentos vb
 
Planteamiento de-ejercicios-2011
Planteamiento de-ejercicios-2011Planteamiento de-ejercicios-2011
Planteamiento de-ejercicios-2011
 
JAVA Interfaz gráfica (GUI)
JAVA Interfaz gráfica (GUI)JAVA Interfaz gráfica (GUI)
JAVA Interfaz gráfica (GUI)
 
Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Android
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .net
 
Android bootcamp 101 v2.0
Android bootcamp 101 v2.0Android bootcamp 101 v2.0
Android bootcamp 101 v2.0
 
Monkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI HandlersMonkey Conf 2020: .NET MAUI Handlers
Monkey Conf 2020: .NET MAUI Handlers
 
Plataforma moviles ernesto horna
Plataforma moviles ernesto hornaPlataforma moviles ernesto horna
Plataforma moviles ernesto horna
 
Xamarin - Aplicaciones Móviles con .Net
Xamarin - Aplicaciones Móviles con .Net Xamarin - Aplicaciones Móviles con .Net
Xamarin - Aplicaciones Móviles con .Net
 
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
 
Enclausulamiento java
Enclausulamiento javaEnclausulamiento java
Enclausulamiento java
 
Java tema06a
Java tema06aJava tema06a
Java tema06a
 
Spring OSGI , dm server - Leonardo Torres Altez
Spring OSGI , dm server - Leonardo Torres AltezSpring OSGI , dm server - Leonardo Torres Altez
Spring OSGI , dm server - Leonardo Torres Altez
 

Kürzlich hochgeladen

Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 

Kürzlich hochgeladen (20)

Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
Linea del tiempo - Filosofos Cristianos.docx
Linea del tiempo - Filosofos Cristianos.docxLinea del tiempo - Filosofos Cristianos.docx
Linea del tiempo - Filosofos Cristianos.docx
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 

Java ME (Micro Edition)

  • 1. Java ME (Micro Edition) Es una plataforma orientada a proveer una colección de APIs de desarrollo de software para dispositivos móviles. *Teléfonos celulares (Feature phones) *Apps para BlackBerry (gracias a la BlackBerry® Java® Virtual Machine)
  • 2. Java ME (Micro Edition) Características *Flexibilidad en la creación de interfaces gráficas *Variedad de APIs para distintos dispositivos de acuerdo a sus recursos y capacidades. *Seguridad *Soporte para aplicaciones que utilizan SMS o Internet *Multiplataforma
  • 3. MIDlets Las aplicaciones Java ME, se denominan MIDlets <<Así como se le llama APPLET , a una aplicación que corre en un navegador web>> La gran mayoría de MIDlets desarrollados, son juegos para celulares, que implementan APIs para el manejo 2D y 3D
  • 4. Modelo de compilación Ejecución del programa [Compilacion JIT] JVM (Maquina Virtual) Bytecode (Código intermedio) .jar .class [Compilador] Código Fuente .java
  • 5. Distribución Archivo .jar Archivo .jad que contiene el que describe los bytecode del contenidos del programa archivo .jar.
  • 6. Arquitectura Paquetes opcionales APIs para juegos 3D, multimedia Perfiles MIDP Configuración CLDC JVM (Java Virtual Machine) AMS (Application Management Software) Sistema Operativo
  • 8. Instalación del IDE y complementos
  • 10. Ciclo de vida de un MIDlet Los dispositivos móviles (ya sea emulador o uno real), interactúa con un MIDlet a través de su propio software, llamado Application Management Software (AMS) Estados Métodos • -Active public void startApp() { } • -Paused public void pauseApp() { } • -Destroyed public void destroyApp(boolean unconditional) { } Son métodos que extienden de la clase Midlet y en los cuales podemos ubicar código que queremos que se ejecute en un momento dado.
  • 11. Ciclo de vida de un MIDlet AMS Application Management Software new()* startApp() Paused Active pauseApp() destroyApp() destroyApp() Destroyed
  • 12. Estado Paused En este estado el MIDlet está esperando por ser pasar al estado ACTIVE y no consume recursos del dispositivo. Causas -Cuando se llama el método pauseApp() -Cuando el ASM exige recursos del teléfono (por ejemplo, cuando el teléfono recibe una llamada entrante. EL ASM invoca el método pauseApp() ). -Cuando se dispara MIDletStateChangeException (En caso de un error, se pone en estado PAUSED)
  • 13. Estado Active En este estado el MIDlet la aplicación ejecuta todas sus funciones Causas -Cuando se inicia la aplicación (El AMS permite crear una nueva instancia de nuestra aplicación) -Cuando se llama el método startApp() -Cuando se llama el método ResumeRequest() ResumeRequest() es un método que permite pasar de estado Paused a Active
  • 14. Estado Destroy Se puede destruir una aplicación que esté tanto en estado ACTIVE como PAUSED. Al destruir, lo que hacemos es eliminar la instancia creada, pero no desinstalar la aplicación Causas -El usuario apaga repentinamente el dispositivo -Cuando se llama el método destroyApp(boolean unconditional) unconditional es una variable booleana que define si es completamente necesario destruir la aplicación o no *true - La aplicación se destruirá obligatoriamente, independientemente de lo que este haciendo. *false - La aplicación se destruirá, siempre y cuando, NO esté haciendo nada importante, si se encuentra ejecutando algún proceso importante, se dispara MIDletStateChangeException
  • 15. Secuencia de eventos Dispositivo libre El usuario Usuario inicia Llamada Finalización Evento para iniciar la desea cerrar la Aplicación App entrante de la llamada la App Método Constructor() ejecutado startApp() pauseApp() startApp() destroyApp() Estado Paused Active Paused Active Destroyed Secuencia de eventos
  • 17. Paquetes fundamentales javax.microedition.midlet Nos provee la clase MIDlet javax.microedition.icdui • Alert • Displayable • Item • AlertType • Font • List • Canvas • Form • Screen • ChoiceGroup • Gauge • StringItem • Command • Graphics • TextBox • DateField • Image • TextField • Display • ImageItem • Ticker
  • 18. Bases de la GUI
  • 19. Interfaz grafica de Usuario Debe haber un objeto «Displayable» o Contenedor, que contendrá los demás elementos y un administrador para ese objeto. Solo puede existir un objeto «Displayable» por MIDlet Objeto Displayable Elemento Administrador (Contenedor) Clase Display Form
  • 20. Clase Display Representa el administrador para la visualización correcta del MIDlet y la entrada desde el dispositivo. Provee métodos para obtener información sobre las capacidades del dispositivo. • isColor() • numColors() • numAlphaLevels() Creación de un objeto tipo Display Display display; display= Display.getDisplay(this);
  • 21. Clase Form Es un contenedor en el que se pueden insertar diferentes elementos • Campos de texto de solo lectura • Campos de texto editables • Imágenes • Grupos de botones • Elementos personalizados • En general, cualquier clase hija de la clase Item Creación de un objeto tipo Form Form form; form = new Form("Titulo Form");
  • 22. Interfaz grafica de Usuario Display display; Form form; display= Display.getDisplay(this); form = new Form("Titulo Form"); display form display.setCurrent(form)
  • 26. Desarrollo de la actividad Aplicación Aplicación Aplicación de de Móvil Consola escritorio
  • 27. Clase TextField Es un componente editable que debe ir ubicado dentro de un Form Input Constraints o Restricciones de entrada • NON_PREDICTIVE • ANY • NUMERIC • DECIMAL • PASSWORD • EMAILADDR • PHONENUMBER • INITIAL_CAPS_SENTENCE • SENSITIVE • INITIAL_CAPS_WORD • UNEDITABLE • URL Constructor TextField(String label, String text, int maxSize, int constraints) Ejemplo userName = new TextField("LoginID:", "", 30, TextField.ANY);
  • 28. Clase Image Representa un conjunto de datos gráficos. Creando la imagen Image img; try{ img=Image.create(«/ruta_imagen») } catch(){ } Agregándola al Form form.append(img);
  • 29. Clase Command Es una clase que encapsula la información semántica para una acción Tipos • BACK • CANCEL • EXIT • HELP • ITEM • OK • SCREEN • STOP Constructor Command(String label, int commandType, int priority) Agregándolo al Form form.addCommand(cancel);
  • 30. Interface CommandListener CommandListener asociado con el Displayable, es el que define en realidad que acción se llevo a cabo. Asociándolo al Form form.setCommandListener(this); Identificando el evento public void commandAction(Command c, Displayable d) { String label = c.getLabel(); if (label.equals("Cancel")) { //Metodo a ejecutar } else if (label.equals("Login")) { //Metodo a ejecutar } }
  • 31. Clase Alert Es una pantalla que muestra datos al usuario y espera por un cierto periodo de tiempo antes de procesar el siguiente objeto "Displayable" Puede contener un String y/o una imagen Es similar al JOptionPane de Java SE Constructor para un Alert vacío Alert(String title) Constructor para un Alert completo Alert(String title, String alertText, Image alertImage, AlertType alertType)
  • 32. Clase Alert Ejemplo constructor Alert error = new Alert("Login Incorrect", "Please try again", imge, AlertType.ERROR); Ejemplo Alert success = new Alert("Login Successfully", "Your Login Process is completed!", img2, AlertType.INFO); success.setImage(img); userName.setString(""); password.setString(""); display.setCurrent(success, form);
  • 33. Material elaborado por: Anderson Rubio andersonrubioquintero@gmail.com @anderblackhawk www.andersonrubio.com