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: cktaba

Post on 04-Jul-2015

155 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Arquitetura de Um Programa MIDlet

DESENVOLVIMENTO DE DESENVOLVIMENTO DE APLICATIVOS APLICATIVOS

DE TELEFONIA MÓVEL NA DE TELEFONIA MÓVEL NA PLATAFORMA J2ME PLATAFORMA J2ME

Page 2: Arquitetura de Um Programa MIDlet

Desiré Nguessan. Graduado e Mestre em Ciênciada Computação. Doutor em Engenharia daComputação. Docente na Fatec São Caetano doSul e na Universidade de Mogi das Cruzes. Atua

CURRÍCULO:

Sul e na Universidade de Mogi das Cruzes. Atuanas áreas de segurança, privacidade, middlewaresmóveis, computação nômade e difusa. Pode sercontatado em [email protected].

Page 3: Arquitetura de Um Programa MIDlet

� Definição de um MIDLet: Conceitos de um MIDLet� Arquitetura de um programa MIDLet: Estrutura de

um programa MIDLet com Herança da classe MIDLet.

� Ciclo de Vida de um programa MIDLet: Estados de

CONTEÚDO:

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

� Exemplos de programas MIDLet.� Interação e Tratamento de Eventos.� Conclusão e Ref. Bibliográfica.

Désiré NGuessan

Page 4: Arquitetura de Um Programa MIDlet

DEFINIÇÃO DE UM MIDLet

[email protected]

Page 5: Arquitetura de Um Programa MIDlet

• Uma aplicação J2ME que suporta o perfil MIDP• Uma subclasse da classe MIDlet

– public class Meu MIDlet extends MIDlet {

}

DEFINIÇÃO DE UM MIDLet:

Désiré NGuessan

}

• É o equivalente de uma applet, onde o início e ofim são controlados pelo ambiente de execução

• É análogo Servlet (web services)

Page 6: Arquitetura de Um Programa MIDlet

• Requer um AMS (Application Management

Software)

• O dispositivo deve oferecer o MAS• Responsável pelo download, instalação e

gerenciamento do ciclo de vida das MIDlets

DEFINIÇÃO DE UM MIDLet:

Désiré NGuessan

gerenciamento do ciclo de vida das MIDlets

Page 7: Arquitetura de Um Programa MIDlet

• MIDlet Suite é o arquivo de distribuiçãocomposto de 2 arquivos básicos: JAD & JAR

• JAD (Java Application Descriptor)

• Descreve a MIDlet suite.

DEFINIÇÃO DE UM MIDLet:

Désiré NGuessan

• Descreve a MIDlet suite.

• Inclui o nome; fabricante;• localização e tamanho do arquivo JAR;• Requisitos de configuração e perfis; e atributos

definidos pelo desenvolvedor e/ou pelo MIDP

Page 8: Arquitetura de Um Programa MIDlet

• JAR (Java Archive) empacota um ou mais

MIDLets para ser distribuídos:

• Contém as MIDlets descritas no JAD e demaisrecursos usados pelas aplicações

DEFINIÇÃO DE UM MIDLet:

Désiré NGuessan

• outras classes, imagens, sons e arquivos

Page 9: Arquitetura de Um Programa MIDlet

• Instalação• Via conexão com PC (Nokia PC Suite)• Cabo USB, Bluetooth, Infra Red

• Download de um servidor remoto - OTA (Over-the-

DEFINIÇÃO DE UM MIDLet:

Désiré NGuessan

• Download de um servidor remoto - OTA (Over-the-

air)

Page 10: Arquitetura de Um Programa MIDlet

ARQUITETURA DE UM PROGRAMA MIDLet

[email protected]

Page 11: Arquitetura de Um Programa MIDlet

MIDLet Public class MIDlet{

...

}

ARQUITETURA DE UM PROGRAMA MIDLet:

Meu_MIDLetPublic class Meu_MIDlet extends MIDlet

{

...

}

Page 12: Arquitetura de Um Programa MIDlet

• Quando um MIDlet é disparado o ambientechama o método MIDlet.startApp()

• O ciclo de vida de um MIDlet é:• startApp()

CICLO DE VIDA DE UM MIDLet

Désiré NGuessan

• startApp()

• pauseApp()

• destroyApp()

Page 13: Arquitetura de Um Programa MIDlet

Construtor()

Estado AtivoEstado Pause

startApp()

pauseApp()

Início

CICLO DE VIDA DE UM MIDLet:

destroyApp()destroyApp()Est. Destruído

Fim

Page 14: Arquitetura de Um Programa MIDlet

public class MeuMidlet extends MIDLet{

public MeuMidlet(){

// construtor

}

public void startApp(){

// inicia aqui o lançamento do MeuMidlet após o

CICLO DE VIDA DE UM MIDLet

Désiré NGuessan

// inicia aqui o lançamento do MeuMidlet após o

//construtor

}

public void pauseApp(){

// a aplicação fica em modo pause

}

public void destroytApp(boolean unconditional){

// Quando se deixa a plicação se possível há uma

// destruição

}}

Page 15: Arquitetura de Um Programa MIDlet

/**Objetivo: Mostrar os estados do ciclo de vida do MIDlet,

por padrão MIDlet fica em Estado de pausa. Quando o aplicativo é

executado, o método startApp() é chamado e quando fechar a

aplicação destroyApp () é chamado. Mas quando o Construtor não é

nulo , então 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

Page 16: Arquitetura de Um Programa MIDlet

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:

Désiré NGuessan

display.setCurrent(form);

}

public void pauseApp(){

System.out.println(“ Estado pause...");

}

public void destroyApp(boolean destroy){

System.out.println(“ Estado destruído...");

notifyDestroyed();

}

}

Estado Destruído

Estado PauseEstado Pause

Page 17: Arquitetura de Um Programa MIDlet

• Uma forma de tratar os eventos do usuário éutilizar a classe Command

• Por exemplo, reconhecer que um botão de ajuda

Interação e Tratamento de Eventos:

Désiré NGuessan

• Por exemplo, reconhecer que um botão de ajudafoi pressionado e em resposta exibir umamensagem.

• Um objeto da classe Command é um botão MIDPque o usuário pode acionar a partir do teclado

Page 18: Arquitetura de Um Programa MIDlet

• Construtor para criar um objeto da classeCommand

– public Command(String label, int type,

Interação e Tratamento de Eventos:

Désiré NGuessan

– public Command(String label, int type,

int priority);

– Onde:

• Label: etiqueta do botão de comando

• Type: constante da classe Command.

Page 19: Arquitetura de Um Programa MIDlet

• Constantes dos tipos de comandos– OK : sugere o lançamento de um tratamento– BACK : voltar a tela anterior

: cancelar um tratamento

Interação e Tratamento de Eventos:

Désiré NGuessan

– CANCEL : cancelar um tratamento– STOP : parar um tratamento– EXIT : aborta a execução do MIDlet– HELP : ajuda

• A disposição do comando na tela depende dotipo e da prioridade

Page 20: Arquitetura de Um Programa MIDlet

• Para processar eventos são necessários:– Criar um objeto Command

– Adicionar o objeto Command em um objeto Form,

Interação e Tratamento de Eventos:

Désiré 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

Page 21: Arquitetura de Um Programa MIDlet

• O gerenciador de aplicativos envia umamensagem ao MIDlet

• As Interfaces receptoras dessa mensagem são:

Interação e Tratamento de Eventos:

Désiré NGuessan

• As Interfaces receptoras dessa mensagem são:– CommandListener: para uma ação de um comando– ItemStateListener: para a mudança de estado de itens de

formulário como por exemplo caixa de texto, caixa de seleção,etc.

– ItemCommandListener

Page 22: Arquitetura de Um Programa MIDlet

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

Interação e Tratamento de Eventos:

Désiré NGuessan

– CommandListener

– ItemStateListener

– ItemCommandListener

Page 23: Arquitetura de Um Programa MIDlet

/* 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 implements

CommandListener{

EXEMPLO DE UM MIDLet:

CommandListener{

private Form form;

private Display display;

private Command ok, cancel, exit;//definição 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);

} Désiré NGuessan

Page 24: Arquitetura de Um Programa MIDlet

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();

}

Désiré NGuessan

Page 25: Arquitetura de Um Programa MIDlet

// tratamento dos comandos ou eventos

public 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:

else

this.destroyApp(true);

}

}

Désiré NGuessan

Page 26: Arquitetura de Um Programa MIDlet

Recomendo revisar o paradigma deorientação à objeto principalmente aHerança, métodos e classes abstratas.

CONCLUSÃO:

Désiré NGuessan

Page 27: Arquitetura de Um Programa MIDlet

Li Sing and Knudsen Jonathan, Beginnig J2ME platafom

From Novice to Professional, 3 th . Edition, Apess, USA,2010.

DOUDOUX J. Michel, Développons em Java, v.1.30, 2000

Ref. Bibliográfica:

DOUDOUX J. Michel, Développons em Java, v.1.30, 2000

Site da Sun (atual Oracle) & NetBeans

Désiré NGuessan