Plataforma Java 2 Micro Edition (J2ME)

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

UNIPAC – ARAGUARI CAMPUS – IX PROF. EVERTON HIPÓLITO DE FREITAS
Entrada e Saída Introdução.
Arquitetura de Computadores
Applets Carlos Bazilio Depto de Ciência e Tecnologia
Comunicação Distribuída
FERRAMENTA DE ANÁLISE DINÂMICA E MONITORAMENTO DE EXECUÇÃO
TRABALHO DE CONCLUSÃO II PUCRS – Faculdade de Informática
Marcelo Tocchetto Tiago Duarte Professor Eduardo Augusto Bezerra
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Mobilidade Cláudia Ribeiro.
Introdução a Programação Orientada a Objetos
Desenvolvimento para Dispositivos Móveis
Linguagem de Programação JAVA
em aplicações corporativas
JAVA Linguagem Ambiente de Desenvolvimento
Sistemas Distribuídos
Web Services Uninorte Semana de Tecnologia da Informação
J2ME Mini Curso.
Linguagem de Programação JAVA
Jornada de Cursos – J2ME Aula 2 – Configuração.
Concorrência e Java RMI
Programa Expresso de Capacitação Módulo J2ME Aula 1 – Overview e Conceitos básicos.
Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento
Mole: Um Sistema de Agentes Móveis Baseado em Java Curso de Ciência da Computação Departamento de Informática Disciplina de Tópicos Especiais em Computação.
Professor: Márcio Amador
Aula 1 - Fundamentos Java SE Instituto Metodista Izabela Hendrix Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Gilmar Medeiros – Agosto/2009.
Paradigmas da Programação – Semestre 1 – Aula 9 Professor: Eduardo Mantovani )
SISTEMAS OPERACIONAIS I
Introdução à INFORMÁTICA
MINI CURSO J2ME Vinícius Maran SEMINÁRIO REGIONAL DE INFORMÁTICA 2008.
MINI CURSO J2ME Vinícius Maran SEMINÁRIO REGIONAL DE INFORMÁTICA 2008.
Introdução a JEE Marco A. S. Reis Arquiteto de Software Abril/2011.
+ Java Básico Aula 1 por Flávio Juvenal. + Histórico Green Project (1991) Desenvolver plataforma para eletrodomésticos inteligentes Tentaram usar C++
Unidade 1 – Introdução a J2EE Prof.: Henrique Santos
Plataforma Java 2 - Micro Edition (J2ME) Prof. Afonso Ferreira Miguel, MSc.
Conceitos de thread Faculdade PITÁGORAS – Outubro de 2012
Gestão SNMP. Planeamento Montagem e Manutenção de Redes e Equipamentos Informáticos 2 SNMP- Simple Network Management Protocol Nos primeiros dias da Arpanet,
Subsistema de Entrada e Saída do Kernel
Introdução JAVA Faculdade Mauricio de Nassau
Alexandre F. Zimmermann
Aglets.
Flávia Falcão Java Performance Flávia Falcão
Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas.
Introdução a Programação Orientada a Objetos
Programação Prof.: Bruno Rafael de Oliveira Rodrigues.
Java Disciplina: Programação II Professora: Mai-Ly Vanessa.
O que é Java? Prof. M.Sc. Ronnison Reges Vidal. Roteiro  Introdução  Java  Máquina Virtual  Versões  JVM, JRE, JDK  Onde usar e Objetivos  Compilando.
16 de Setembro, Projeto Conceitual de Jogos Saulo Souto Geber Ramalho Saulo Souto
1/18 Java ME, MIDP 2.0 e SATSA: Segurança para MIDs Alexandre Ilha Márcia Cristina Cera Trabalho Leve 1 - Abril/2006.
Linguagem técnica de programação I Java
Computação Móvel e Embarcada ANDRÉ GUSTAVO DEGAF UCHÔA DISCIPLINA: ENG. DE SOFTWARE PROF: ALCIDES CALSAVARA & EDSON SCALABRIN.
Engenharia de Sistemas Embarcados Aula 5: Um Conjunto Básico de Ferramentas.
Computação Móvel J2ME. Java 2 Platform (1) Java 2 Standard Edition (J2SE) – Desktop applications Java 2 Enterprise Edition (J2EE) – Server applications.
Igor Steinmacher, MSc. Java!!!!
Programação em Java Prof. Edvan Chaves.
GOTO. Project treinamento expresso j2me Luiz Carlos d´Oleron lcadb at cin.ufpe.br.
Servidor de Acesso remoto e VPN no Windows Server 2003
Jackson Eduardo da Silva
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
Seminários.reply Introdução a JavaME Guilherme Carvalho.
MEMÓRIAS.
Acessando banco de dados com JAVA.  Linguagem independente de plataforma; ◦ “Write once, run anywhere” ◦ JVM  Java Virtual Machine  Mecanismo que permite.
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
PROGRAMAÇÃO ORIENTADA A OBJETOS Carlos Marques
SOCKET - É um canal de comunicação entre processos que estabelece uma conexão entre eles na forma de cliente-servidor. Por meio de sockets, os computadores.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Introdução à plataforma Java. 2 A tecnologia Java Java: linguagem de programação e plataforma de desenvolvimento Criada pela Sun Microsystems Apoiada.
Transcrição da apresentação:

Plataforma Java 2 Micro Edition (J2ME)

Divisões do JAVA J2SE – java standard edition Desktop J2EE – Enterprise edition Servidores J2ME – Micro edition Dispositivos com recursos limitados Introduzida em 1999

Vantagens do J2ME Programe uma vez, rode em todo lugar Linguagem de alto nível para dispositivos móveis Portabilidade Navegue pela rede seguro Alta escalabilidade com J2SE e J2EE

Plataforma Java Micro Edition (J2ME) Tecnologia Java para dispositivos embebidos e de consumo (PDA’s, telemóveis, impressoras, set-top-boxes de TV digital, etc.) Específica as características da máquina virtual (JVM) e APIs nucleares em configurações e APIs para aplicações ou mercados específicos em profiles Página web: http://java.sun.com/j2me

J2ME Comité Executivo Palm Philips Research In Motion Siemens Sony BEA Systems Cisco Systems Ericsson IBM Insignia Matsushita (Panasonic) Motorola Nokia Palm Philips Research In Motion Siemens Sony Sun Microsystems Texas Instruments Zucotto Wireless

Plataforma Java Micro Edition (J2ME) Plataformas de desenvolvimento para a Nokia:

Pilha Tecnológica do J2ME Java Application Profile Configuration Native OS Device

Connected Device Configuration (CDC) Define um ambiente de execução Java para dispositivos conectados PDAs, Telemóveis, impressoras, set-top-boxes, etc. Profiles Pacotes opcionais Objectivo primordial: Adaptar a tecnologia Java SE a dispositivos embebidos (conectados)

Connected Device Configuration (CDC) Sem GUI Reuso de código J2SE com esforço mínimo Ambientes com recursos limitados

Connected Device Configuration (CDC) Categorias de dispositivos endereçados

Java SE versus Java CDC Java SE Java CDC

Plataforma Java J2ME Connected, Limited Device Configuration (CLDC) Específica as propriedades do core da VM e os APIs para os dispositivos com desempenho limitado, conectividade à Internet limitada e intermitente, e interfaces com o utilizador restritos Empresas podem utilizar qualquer VM CLDC compatível que quiserem Exemplo: CLDC é implementado na Series 40, Series 60 e Series 80 de dispositivos da Nokia CLDC homepage: http://java.sun.com/products/cldc

Plataforma Java J2ME Mobile Information Device Profile (MIDP) Tem como alvo dispositivos de comunicação two-way que implementem o J2ME CLDC Endereça display e interface com o utilizador (UI), persistência de dados, e redes (HTTP, etc.) Exemplos: MIDP é também implementada nas Series 40, Series 60 e Series 80 de dispositivos da Nokia MIDP homepage: http://java.sun.com/products/midp

Plataforma Java J2ME Connected Device Configuration (CDC) e Personal Profile Series 80, plataforma de desenvolvimento 2.0, também implementa J2ME CDC em adição ao J2ME MIDP CDC/Personal Profile permite o desenvolvimento de aplicações mais do tipo desktop, incluindo o acesso a métodos nativos via Java Native Interface (JNI) Series 80, plataforma de desenvolvimento 2.0, implementa CDC/Personal Profile com a Máquina Virtual IBM J9 CDC/Personal Profile homepage: http://java.sun.com/products/cdc

Configurações J2ME Connected Device Configuration (CDC) 2 a 16 MB dispositivos CDC podem ser ligados por fios set-top boxes para TV digital, dispositivos wireless mais sofisticados Compact Virtual Machine (CVM) Connected Limited Device Configuration (CLDC) 160 kB a 512 kB de memória total Processador de 16- ou de 32-bits Dispositivos CLDC são normalmente wireless com largura de banda limitada (normalmente 9600 bits ou menos) Telemóveis, Pagers, PDAs, etc. Kilo Virtual Machine (KVM)

Mobile Information Device Profile 1.0 (MIDP 1.0) Características: 128 KB de memória não-volátil para a implementação MIDP 32 KB de memória volátil para o heap 8 KB de memória não-volátil para dados persistentes Um ecrã de pelo menos 96 x 54 píxeis Alguma capacidade para introdução de dados Teclado, ecrã táctil,… Conexão em rede two-way, possivelmente intermitente

Aplicações Java para serem executadas no contexto MIDP Introdução às MIDlets Aplicações Java para serem executadas no contexto MIDP

MIDlet “Aplicação Java em concordância com as especificações do CLDC e do MIDP.”

Desenvolvendo MIDlets São executadas sempre do lado do cliente As MIDlets têm um interface com o utilizador bastante sofisticado, permitem o armazenamento local de dados, e o acesso a dados remotamente Todas as MIDlets têm de extender a classe: javax.microedition.midlet.MIDlet O grupo de MIDlets que constituem uma MIDlet suite (incluindo outros recursos) é distribuída segundo um arquivo JAR Java Application Descriptor (JAD): descreve o arquivo JAR

Desenvolvendo MIDlets

Java Application Manager (JAM) O JAM é responsável por: carregar o código através de uma conexão sem-fios, por exemplo Indicar o local no dispositivo onde esse código deve ser guardado Definir o modo como o utilizador pode lançar a aplicação O JAM guarda a aplicação no dispositivo e em seguida apresenta as MIDlets dessa aplicação selecionáveis para execução A especificação do MIDP define vagamente que o dispositivo tem de incluir um gestor de aplicações JAM

Ciclo de Vida de uma MIDlet Estado Paused: quando a MIDlet é seleccionada para execução Estado Active: a MIDlet entra neste estado depois do gestor de aplicações invocar o método startApp() Estado Destroyed: o gestor de aplicações pode terminar a execução da MIDlet invocando o método destroyApp(), neste ponto a MIDlet é “destruída” e é esperado o GC

Ciclo de Vida de uma MIDlet import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class myFirstMIDlet extends MIDlet { //obrigatorio public void startApp() { } public void pauseApp() { public void destroyApp(boolean unconditional) {

Bibliotecas: APIs CLDC java.lang java.io java.util javax.microedition.io MIDP javax.microedition.lcdui javax.microedition.midlet javax.microedition.rms

Diagrama

MIDlet Passos de Desenvolvimento Escrever o código da MIDlet Compilar a MIDlet Pré-verificação das classes da MIDlet Ofuscação das classes da MIDlet (se necessário) Empacotamento num arquivo JAR Criação da JAD (Java Application Descriptor) Carregar e executar a aplicação no emulador ou no dispositivo

Verificação das Class Files Verificação dos bytecodes é um dos conceitos fundamentais do modelo de segurança do Java Antes do carregamento de uma class (pelo class loader), o verificador de bytecodes analisa a classe de modo a verificar que a estrutura e comportamento estão de acordo com o esperado. Exemplo: o verificador no J2SE precisa de um mínimo de 50 KB de espaço para o código binário, e pelo menos 30-100 KB de RAM dinâmica na execução Em adição, o desempenho do CPU necessário para as verificações em tempo-real pode ser significativo

Verificação das Class Files Para agilizar a etapa de verificação das MIDlets Existe uma etapa de pré-verificação Nesta etapa são realizadas as verificações possíveis de efetuar estaticamente

Verificação das Class Files Verificação de bytecodes em duas etapas é definida pelo CLDC e trabalha do seguinte modo: As Class Files são verificadas antes da instalação no dispositivo A segunda etapa de verificação é executada no dispositivo aquando do carregamento das classes e durante a execução dos bytecodes Classes não verificadas em (2) são rejeitadas. Este novo verificador requer cerca de 10 KB de código binário e menos de 100 bytes de RAM dinâmica em tempo-real

MIDlets Acesso ao Display da MIDlet Display.getDisplay(this) Comandos de Interacção com o utilizador Associar um gestor de eventos ao Display Gestor deve implementar a interface CommandListener Acções relacionadas com a gestão de eventos: commandAction()

MIDlets Dados remotos Dados locais Connector.open(http://...); Dados locais store = RecordStore.openRecordStore("DataStore", true); store.closeRecordStore(); RecordStore.deleteRecordStore("DataStore"); Dados em arquivos (e.g., cartão de memória do dispositivos) Connector.open("file:///E:/rcs/file.txt", Connector.WRITE);

Processo de carregamento de uma MIDlet

MIDlets A tendência é para que sejam cada vez mais inovadoras, de maior complexidade computacional

J2ME Wireless Development Kit

J2ME Wireless Development Kit Ambiente de desenvolvimento de MIDlets Compilador, ofuscador Emuladores Profiling e monitorização de memória

J2ME Wireless Development Kit Instale o Eclipse Coloque os plugins do EclipseME na pasta do eclipse Instale o Sun Java Wireless Toolkit Siga os procedimentos do Tutorial (www/~mbaj/IM/Tutorial J2ME.pdf)

Exercícios Altere o código exemplo1 para que ao pressionar o softkey esquerdo, apareca uma mensagem na tela e ao pressionar o softkey direito o aplicativo feche. Altere o código exemplo2 para que uma firgura primitiva da classe Canvas (triangulo, circulo etc) mova nas direcionais do dispositivo.