A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 16 a 18 de Junho – Anhembi – SP/SP MIDP 3.0: O Futuro do Java ME Marlon Luz e Luiz Anjos Por.

Apresentações semelhantes


Apresentação em tema: "1 16 a 18 de Junho – Anhembi – SP/SP MIDP 3.0: O Futuro do Java ME Marlon Luz e Luiz Anjos Por."— Transcrição da apresentação:

1 1 16 a 18 de Junho – Anhembi – SP/SP MIDP 3.0: O Futuro do Java ME Marlon Luz e Luiz Anjos Por

2 2 AGENDA Introdução Interface de Usuário Categoria de MIDlets Biblioteca Compartilhada Comunicação Inter-MIDlet MIDlets Concorrentes Eventos Persistência

3 3 Introdução MIDP 1.0 Setembro – 2000 MIDP 2.0 Novembro – 2002 MIDP 3.0 ?

4 4 Introdução Formação Inicial – Março 2005 Final Approval Ballot – Maio Empresas 10 Contribuidores individuais

5 5 Introdução Requisitos MIDP MIDP MIDP MIDP Memória Volátil32 Kb128 Kb 1024 Kb Tamanho de Tela96x54 176x220 ConfiguraçõesCLDC 1.0 CLDC 1.1 CDC 1.0 CLDC 1.1 CDC 1.0 CLDC 1.1 CLDC CDC 1.1

6 6 AGENDA Introdução Interface de Usuário Categoria de MIDlets Biblioteca Compartilhada Comunicação Inter-MIDlet MIDlets Concorrentes Eventos Persistência

7 7 Interface de Usuário Command Display File Selector Menu Notificações Tabbed Pane

8 Interface de Usuário Command –Localização exata –Habilitado/Desabilitado –Suporte à imagens –Mutável

9 9 Interface de Usuário Display –Display secundário –Display.getDisplays(…) –Características para um display secundário (SUPPORTS_COMMANDS, INPUT_EVENTS, FORMS, TICKER, TITLE, ALERTS, LISTS, TEXTBOXES, FILESELECTORS, TABBEDPANES)

10 10 Interface de Usuário Display –Estado sobre o hardware (ENABLED, DISABLED, ABSENT) –Estado sobre o display (foreground, background, visible) –Suporte a orientação paisagem

11 11 Interface de Usuário File Selector –Objetos Command default (OK, CANCEL) –Não permite novos Commands –Modos LOAD, SAVE e DIRECTORY –getDirectory(), getFile(), setFilterExtensions(String extensions)

12 12 Interface de Usuário Menu

13 13 Interface de Usuário Menu –Container visual para objetos Command –Usado com a localização exata de um Command –Choice.IMPLICIT –Pode conter sub-menus –CommandListener do objeto Displayable

14 14 Interface de Usuário Menu Menu m, sm1, sm2; Command cmd1, cmd2, cmd3; m = new Menu(“Top Menu", "", menupict.gif); sm1 = new Menu("Submenu 1", “", menupict.gif); sm2 = new Menu("Submenu 2", “", menupict.gif); cmd1 = new Command(“First",”", Command.ITEM, 1); cmd2 = new Command(“Second",””, Command.ITEM, 1); cmd3 = new Command("Third",”", Command.ITEM, 1); m.append(cmd1); m.append(sm1); sm1.append(cmd2); sm1.append(sm2); sm2.append(cmd3);

15 15 Interface de Usuário Notificações –NotificationManager / Notification –MIDlet não controla UI –Dependente da implementação –post() para registrar notificações

16 16 Interface de Usuário Notificações Notification n=NotificationManager.createNotification(nl); n.setLabel("Mensagem não lida (1)"); n.setIcon("resources/mail1.jpg"); n.post();

17 17 Interface de Usuário Tabbed Pane –Objetos Screen separados por abas –List e Form –Objetos Command (Tab e seu conteúdo)

18 18 AGENDA Introdução Interface de Usuário Categoria de MIDlets Biblioteca Compartilhada Comunicação Inter-MIDlet MIDlets Concorrentes Eventos Persistência

19 19 Categoria de MIDlets Screen Saver Auto Start Idle Screen

20 20 Categoria de MIDlets Screen Saver –Aplicação executada automaticamente –Device no estado de “Idle” –Identificação baseado em atributo MIDlet-Category-n: ScreenSaver –Ativação e desativação baseados em eventos –Usuário ciente do processo de atualização

21 21 Categoria de MIDlets Auto Start –“Power up” do device –Identificação baseada em atributo / permissão MIDlet-Category-n: autostart –Tentativa para reiniciar o MIDlet (AMS) –javax.microedition.midlet.AutoStartPermission

22 22 Categoria de MIDlets Idle Screen –Adiciona conteúdo para a tela de “Idle”

23 23 Categoria de MIDlets Idle Screen –Identificação baseada em atributo MIDlet-Category-n: IdleScreen –IdleItem como elemento de UI –IdleItem, subclasse de CustomItem –Display.setIdleItem(idleItem)

24 24 AGENDA Introdução Interface de Usuário Categoria de MIDlets Biblioteca Compartilhada Comunicação Inter-MIDlet MIDlets Concorrentes Eventos Persistência

25 25 Biblioteca Compartilhada LIBlet

26 26 Biblioteca Compartilhada LIBlet –Componente de Sofware –Não possui um contexto próprio –Atributos definidos nos arquivos JAD e JAR –Empacotado em um arquivo JAR –Dependências via atributo Dependency-

27 27 Biblioteca Compartilhada LIBlet –Dependência circular

28 28 Biblioteca Compartilhada LIBlet IMS MIDlet Poc LIBletJSR 281

29 29 Biblioteca Compartilhada MIDlet IMSMIDlet JAD MIDlet-1: IMSMIDlet, icon.png, IMSMIDlet MIDlet-Name: IP Multimedia App MIDlet-Version: 1.0 MIDlet-Vendor: Multi Sys MIDlet-Jar-Size: Dependency-1: microedition.ims; JCP; 1.0+; standard Dependency-2: PocLib; Poc Sys, Inc.; 1.1.2; liblet LIBlet-Dependency-JAD-URL-2: LIBlet-Dependency-Jar-SHA1-2: 501A202E919B9C98343FAD6F F7A0A783

30 30 Biblioteca Compartilhada LIBlet PocLib JAD LIBlet-Name: PocLib LIBlet-Version: LIBlet-Vendor: Poc Sys, Inc. LIBlet-Jar-Size: LIBlet-Jar-URL:

31 31 AGENDA Introdução Interface de Usuário Categoria de MIDlets Biblioteca Compartilhada Comunicação Inter-MIDlet MIDlets Concorrentes Eventos Persistência

32 32 Comunicação Inter-MIDlet Protocolo IMC –Conexão assíncrona –Cliente e Servidor –MIDlet UID (nome + vendedor + versão) –IMCConnection / IMCServerConnection –Permite Push Registry

33 33 Comunicação Inter-MIDlet IMCConnection conn = (IMCConnection)Connector.open( "imc:// *:com.foo.services.barServer:1.0;authmode=false"); try { DataOutputStream request = conn.openDataOutputStream(); // escreve dados... request.flush(); DataInputStream response = conn.openDataInputStream(); // recupera dados... } finally { conn.close(); }

34 34 Comunicação Inter-MIDlet IMCServerConnection serverConn = (IMCServerConnection)Connector.open( "imc://:com.foo.barServer:1.0;authmode=false;); while(true) { IMCConnection conn = (IMCConnection) serverConn.acceptAndOpen(); try { String requestedVersion = conn.getRequestedServerVersion(); DataInputStream requestData = conn.openDataInputStream(); DataOutputStream responseData = conn.openDataOutputStream(); // faz a leitura de dados a partir da inpustream int requestType = requestData.readInt();... // trata a requisição... // escreve a resposta para output stream responseData.writeUTF(“Olá, eu sou barServer"); responseData.close(); } finally { conn.close(); }

35 35 AGENDA Introdução Interface de Usuário Categoria de MIDlets Biblioteca Compartilhada Comunicação Inter-MIDlet MIDlets Concorrentes Eventos Persistência

36 36 MIDlets Concorrentes Características –Implementação DEVE suportar que aplicações executem simultaneamente –Dados estáticos não são compartilhados –Manipulação de erros –1 MIDlet, 1 instância

37 37 AGENDA Introdução Interface de Usuário Categoria de MIDlets Biblioteca Compartilhada Comunicação Inter-MIDlet MIDlets Concorrentes Eventos Persistência

38 38 Eventos Características –Mudanças no estado do sistema –Comunicação Aplicação x Aplicação –EventManager, EventData, EventPermission, EventDataListener

39 39 Eventos Características –AUDIO_OUTPUT, BATTERY_CHARGING, BATTERY_LEVEL, BODY_OPEN, IDLE_SCREEN_MODE, SCREENSAVER_MODE, SYSTEM_STATE,VOICE_CALL –Aplicações executadas automaticamente (1 instância) –Registro estático / dinâmico para aplicações

40 40 Eventos Consultando um evento de sistema EventManager ssm = EventManager.getInstance(this); EventData battery = null; try { battery = ssm.getCurrent(BATTERY_LEVEL); } catch (SecurityException e) {.. } int batteryLevel = battery.getInt();

41 41 Eventos Adicionando um EventListener EventData battery; boolean authmode = false; EventManager ssm = EventManager.getInstance(this); ssm.addEventListener(BATTERY_LEVEL, this, authmode, 10, 20);

42 42 Eventos Manipulando um evento handleEvent(EventData event) { String eventName = event.getName(); int batteryLevel; if (eventName.equals(BATTERY_LEVEL)) { batteryLevel = event.getInt(); }

43 43 Eventos Registro estático (App) MIDlet-Name: PowerManagement MIDlet-Version: MIDlet-Vendor: FictionalCo MIDlet-1: PowerManager, /pwrmgt.png, com.fictionalco.PowerMgr MIDlet-Event-Launch-1: com.fictionalco.PowerMgr;authmode=false; BATTERY_LEVEL=5,100 MicroEdition-Profile: MIDP-3.0 MicroEdition-Configuration: CLDC-1.1 MIDlet-Jar-URL:

44 44 Eventos Registro dinâmico (App) EventData battery; boolean authmode = false; EventManager ssm = EventManager.getInstance(this); try { ssm.registerApplication(BATTERY_LEVEL, "com.fictionalco.PowerMgr", authmode, 0, 10); } catch (SecurityException e) {.. }

45 45 AGENDA Introdução Interface de Usuário Categoria de MIDlets Biblioteca Compartilhada Comunicação Inter-MIDlet MIDlets Concorrentes Eventos Persistência

46 46 Persistência RMS –Segurança Algorítimo: AES 128-bit –RMS Provisioning Arquivos standalone / JAR da aplicação (MIDlet - LIBlet) Persistent-Data-URL-1: data.rms overwrite encryptLocally Persistent-Data-URL-2: –Importação e Exportação –Tags

47 47 AGENDA Introdução Interface de Usuário Categoria de MIDlets Biblioteca Compartilhada Comunicação Inter-MIDlet MIDlets Concorrentes Eventos Persistência

48 48 Outras Mudanças Interface de usuário –Imagens Animadas –Splash Screen –Table Layout –TextInput –Font (TrueType) Segurança –Autorização de acesso em nível de aplicação Network –IPV6 –Binding para adaptador de rede em nível de app –PUT e DELETE

49 49 MIDP 3.0: O futuro do Java ME Luiz Anjos – Marlon Luz –


Carregar ppt "1 16 a 18 de Junho – Anhembi – SP/SP MIDP 3.0: O Futuro do Java ME Marlon Luz e Luiz Anjos Por."

Apresentações semelhantes


Anúncios Google