56426602 Arquitetura de Um Programa MIDlet

27
DESENVOLVIMENTO DE DESENVOLVIMENTO DE APLICATIVOS APLICATIVOS DE TELEFONIA MÓVEL NA DE TELEFONIA MÓVEL NA PLATAFORMA J2ME PLATAFORMA J2ME

Transcript of 56426602 Arquitetura de Um Programa MIDlet

  • DESENVOLVIMENTO DE DESENVOLVIMENTO DE APLICATIVOS APLICATIVOS

    DE TELEFONIA MVEL NA DE TELEFONIA MVEL NA PLATAFORMA J2ME PLATAFORMA J2ME

  • Desir Nguessan. Graduado e Mestre em Cinciada Computao. Doutor em Engenharia daComputao. Docente na Fatec So Caetano doSul e na Universidade de Mogi das Cruzes. Atua

    CURRCULO:

    Sul e na Universidade de Mogi das Cruzes. Atuanas reas de segurana, privacidade, middlewaresmveis, computao nmade e difusa. Pode sercontatado em [email protected].

  • Definio de um MIDLet: Conceitos de um MIDLet Arquitetura de um programa MIDLet: Estrutura de

    um programa MIDLet com Herana da classe MIDLet.

    Ciclo de Vida de um programa MIDLet: Estados de

    CONTEDO:

    Ciclo de Vida de um programa MIDLet: Estados de um programa MIDLet.

    Exemplos de programas MIDLet. Interao e Tratamento de Eventos. Concluso e Ref. Bibliogrfica.

    Dsir NGuessan

  • DEFINIO DE UM MIDLet

    [email protected]

  • Uma aplicao J2ME que suporta o perfil MIDP Uma subclasse da classe MIDlet

    public class Meu MIDlet extends MIDlet {}

    DEFINIO DE UM MIDLet:

    Dsir NGuessan

    } o equivalente de uma applet, onde o incio e o

    fim so controlados pelo ambiente de execuo anlogo Servlet (web services)

  • Requer um AMS (Application ManagementSoftware) O dispositivo deve oferecer o MAS Responsvel pelo download, instalao e

    gerenciamento do ciclo de vida das MIDlets

    DEFINIO DE UM MIDLet:

    Dsir NGuessan

    gerenciamento do ciclo de vida das MIDlets

  • MIDlet Suite o arquivo de distribuiocomposto de 2 arquivos bsicos: JAD & JAR

    JAD (Java Application Descriptor) Descreve a MIDlet suite.

    DEFINIO DE UM MIDLet:

    Dsir NGuessan

    Descreve a MIDlet suite. Inclui o nome; fabricante; localizao e tamanho do arquivo JAR; Requisitos de configurao e perfis; e atributos

    definidos pelo desenvolvedor e/ou pelo MIDP

  • JAR (Java Archive) empacota um ou maisMIDLets para ser distribudos: Contm as MIDlets descritas no JAD e demais

    recursos usados pelas aplicaes

    DEFINIO DE UM MIDLet:

    Dsir NGuessan

    outras classes, imagens, sons e arquivos

  • Instalao Via conexo com PC (Nokia PC Suite) Cabo USB, Bluetooth, Infra Red Download de um servidor remoto - OTA (Over-the-

    DEFINIO DE UM MIDLet:

    Dsir NGuessan

    Download de um servidor remoto - OTA (Over-the-air)

  • ARQUITETURA DE UM PROGRAMA MIDLet

    [email protected]

  • MIDLet Public class MIDlet{...

    }

    ARQUITETURA DE UM PROGRAMA MIDLet:

    Meu_MIDLetPublic class Meu_MIDlet extends MIDlet{...

    }

  • Quando um MIDlet disparado o ambientechama o mtodo MIDlet.startApp()

    O ciclo de vida de um MIDlet : startApp()

    CICLO DE VIDA DE UM MIDLet

    Dsir NGuessan

    startApp() pauseApp() destroyApp()

  • Construtor()

    Estado AtivoEstado Pause

    startApp()

    pauseApp()

    Incio

    CICLO DE VIDA DE UM MIDLet:

    destroyApp()destroyApp()Est. Destrudo

    Fim

  • public class MeuMidlet extends MIDLet{public MeuMidlet(){// construtor}public void startApp(){

    // inicia aqui o lanamento do MeuMidlet aps o

    CICLO DE VIDA DE UM MIDLet

    Dsir NGuessan

    // inicia aqui o lanamento do MeuMidlet aps o //construtor

    }public void pauseApp(){// a aplicao fica em modo pause}public void destroytApp(boolean unconditional){// Quando se deixa a plicao se possvel h uma // destruio }}

  • /**Objetivo: Mostrar os estados do ciclo de vida do MIDlet, por padro MIDlet fica em Estado de pausa. Quando o aplicativo executado, o mtodo startApp() chamado e quando fechar a aplicao destroyApp () chamado. Mas quando o Construtor no nulo , ento ele ser executado em primeiro lugar.

    **/ import javax.microedition.lcdui.*;

    EXEMPLO DE UM PROGRAMA UM MIDLet:

    import javax.microedition.lcdui.*;import javax.microedition.midlet.MIDlet;public class MidletLifecycle extends MIDlet{private Form form;private Display display;public MidletLifecycle(){

    System.out.println(Construtor do MidletLifecycle");}

    construtorconstrutor

  • public void startApp(){form = new Form(Ciclo de vida Midlet ");display = Display.getDisplay(this);String msg = Isso o ciclo de vida do Midlet!";form.append(msg);display.setCurrent(form);

    estado inicioestado inicio

    EXEMPLO DE UM PROGRAMA UM MIDLet:

    Dsir NGuessan

    display.setCurrent(form);}

    public void pauseApp(){System.out.println( Estado pause...");

    }

    public void destroyApp(boolean destroy){System.out.println( Estado destrudo...");notifyDestroyed();

    }}

    Estado Destrudo

    Estado PauseEstado Pause

  • Uma forma de tratar os eventos do usurio utilizar a classe Command

    Por exemplo, reconhecer que um boto de ajuda

    Interao e Tratamento de Eventos:

    Dsir NGuessan

    Por exemplo, reconhecer que um boto de ajudafoi pressionado e em resposta exibir umamensagem.

    Um objeto da classe Command um boto MIDPque o usurio pode acionar a partir do teclado

  • Construtor para criar um objeto da classeCommand public Command(String label, int type,

    Interao e Tratamento de Eventos:

    Dsir NGuessan

    public Command(String label, int type,int priority);

    Onde: Label: etiqueta do boto de comando Type: constante da classe Command.

  • Constantes dos tipos de comandos OK : sugere o lanamento de um tratamento BACK : voltar a tela anterior

    : cancelar um tratamento

    Interao e Tratamento de Eventos:

    Dsir NGuessan

    CANCEL : cancelar um tratamento STOP : parar um tratamento EXIT : aborta a execuo do MIDlet HELP : ajuda

    A disposio do comando na tela depende dotipo e da prioridade

  • Para processar eventos so necessrios: Criar um objeto Command Adicionar o objeto Command em um objeto Form,

    Interao e Tratamento de Eventos:

    Dsir NGuessan

    Adicionar o objeto Command em um objeto Form,TextBox, List ou Canvas.

    Adicionar o receptor no objeto Form, TextBox,List ou Canvas.

    O gerenciador de aplicativos envia umamensagem ao MIDlet

  • O gerenciador de aplicativos envia umamensagem ao MIDlet

    As Interfaces receptoras dessa mensagem so:

    Interao e Tratamento de Eventos:

    Dsir NGuessan

    As Interfaces receptoras dessa mensagem so: CommandListener: para uma ao de um comando ItemStateListener: para a mudana de estado de itens de

    formulrio como por exemplo caixa de texto, caixa de seleo,etc.

    ItemCommandListener

  • Para que haja tratamento de eventos o aplicativoMIDLet deve implementar as classes abstratas: CommandListener

    Interao e Tratamento de Eventos:

    Dsir NGuessan

    CommandListener ItemStateListener ItemCommandListener

  • /* exemplo de ciclo de vida de um MIDLet usando tratamento de eventos*/import javax.microedition.lcdui.*;import javax.microedition.midlet.*;

    public class CicloVidaMidlet extends MIDlet implementsCommandListener{

    EXEMPLO DE UM MIDLet:

    CommandListener{private Form form;private Display display;private Command ok, cancel, exit;//definio de comandos

    public CicloVidaMidlet(){form = new Form("Command Form");cancel = new Command("CANCEL", Command.CANCEL, 3);ok = new Command("OK", Command.OK, 4);exit = new Command("EXIT", Command.EXIT, 7);} Dsir NGuessan

  • public void startApp(){System.out.println(" Estado iniciado... ");display = Display.getDisplay(this);

    form.addCommand(ok);form.addCommand(exit);form.addCommand(cancel);form.setCommandListener(this);display.setCurrent(form);

    }

    EXEMPLO DE UM MIDLet:

    }public void pauseApp(){System.out.println("Estado pause...");}public void destroyApp(boolean destroy){

    System.out.println("Estado destruido...");notifyDestroyed();

    }

    Dsir NGuessan

  • // tratamento dos comandos ou eventospublic void commandAction(Command c, Displayable d) {

    String label = c.getLabel();if(label.equals("CANCEL"))

    this.pauseApp();else if(label.equals("OK"))

    this.startApp(); else

    EXEMPLO DE UM MIDLet:

    elsethis.destroyApp(true);

    }

    }

    Dsir NGuessan

  • Recomendo revisar o paradigma deorientao objeto principalmente aHerana, mtodos e classes abstratas.

    CONCLUSO:

    Dsir NGuessan

  • Li Sing and Knudsen Jonathan, Beginnig J2ME platafomFrom Novice to Professional, 3 th . Edition, Apess, USA,2010.

    DOUDOUX J. Michel, Dveloppons em Java, v.1.30, 2000

    Ref. Bibliogrfica:

    DOUDOUX J. Michel, Dveloppons em Java, v.1.30, 2000

    Site da Sun (atual Oracle) & NetBeans

    Dsir NGuessan