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

Upload: jgidelson-araujo

Post on 23-Nov-2015

4 views

Category:

Documents


0 download

TRANSCRIPT

  • 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