SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Introdução ao J2ME
  Conexão Java 2004

14 e 15 de Agosto de 2004
      Douglas Alves


 dougzilla@uol.com.br
 douglas@dis.epm.br
O que é um dispositivo wireless?

 PC
 PDA’s
 Comunicadores
 Telefones
 Pagers
 Carros
 Smart Cards, etc
Por que usar J2ME ?
Pode ser a única forma de programar em alguns
dispositivos

Compartilha sua lógica entre servidores e
dispositivos

Dinamismo na obtenção dos aplicativos

Programas compactos

Ambiente de desenvolvimento é rápido e seguro
Por que usar J2ME ?

  Existem aproximadamente 1 bilhão e
  500 mil celulares no mundo
Newsweek – 07 de junho de 2004


  Entre 40-50% destes aparelhos devem
  estar aptos a acessar internet nos
  próximos 2 anos
  Já é 2 vezes mais numeroso que os
  PC’s
Como deve parecer uma aplicação em
             J2ME ?

                    SERVIDOR
                                     TCP/IP
        TCP/IP
        WSP
                                        PC


DISPOSITIVO
                                      Serial
                                      USB
        Bluetooth      DISPOSITIVO
O que é J2ME?
Configurações e perfis

J2ME por si, não faz tudo
Configurações: Bibliotecas básicas e JVM
Perfis (Profiles): Ferramentas para o dispositivo ou
mercado específico
Configurações J2ME:
- CDC
- CLDC
Configurações J2ME:
- MIDP
- Foundation, PDAP, Personal Java, etc...
O que é uma configuração ?

A configuração, define a capacidade
das bibliotecas básicas e da JVM
Sujeita a testes de compatibilidade
Configurações do J2ME:
- Connected Device Configuration (CDC)
- Connected Limited Device Coniguration (CLDC)
Configurações

CLDC
  Equipamentos com baixíssimos níveis de
       Processamento
       Capacidade de memória
  Máximo 512kb de RAM
  Ex. Celulares 2G; 2,5G

CDC
Dispositivos com cerca de 2MB de RAM (alguns
PDA’s, telefones 3G, etc.)
O que é um perfil (profile) ?

Uma coleção de API’s que
complementam uma configuração
fornecendo ferramentas de interação
para o dispositivo

O perfil ajuda na portabilidade das
aplicações
Perfis (Profiles)

Os perfis existentes para o CLDC são
diferentes dos existentes para o CDC

Um perfil pode depender da
funcionalidade de outro perfil, assim
como uma configuração
Mobile Information Device Profile

 Foi o primeiro perfil do J2ME
 É focado em dispositivos
 implementados com o CLDC
 É responsável por:
 - ferramentas de tela (Display)
 - interação com o usuário
 - persistência de dados
 - “Messaging” (SMS, email, etc), segurança e comunicação
 através da rede wireless
Configuração CLDC


  MIDP         PDAP




         CLDC

         JVM
MIDlets

Tem que conter pelo menos uma classe
derivada do pacote
javax.microedition.midlet.MIDlet
Obrigatoriamente, um número de métodos
têm que ser implementados para que sua
execução torne-se possível
Tem que usar somente as API’s do MIDP
para manter sua portabilidade
Suite de MIDlet’s

Conjunto de MIDlets que fazem parte
de um único grupo que podem dividir
entre si os recursos utilizados.
Todos MIDlets em uma suite rodam na
mesma VM, dividem as mesmas
instancias de classes e recursos.
Execução de um MIDlet

Tem que haver, por padrão, um construtor
público (public).
3 estados: pausado, ativo, destruido
Enquanto o MIDlet estiver ativo, ele está
rodando o método startApp()
O mesmo vale para o método pauseApp()
(para quando estiver pausado) e
destroyApp() para quando o MIDlet for
finalizado.
Exemplo de um MIDlet

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

   public class OlaMidlet extends MIDlet implements
   CommandListener {
     private Display display; //Referencia para o objeto Display
     private TextBox tbMain; //TextBox para mostrar a
   mensagem
     private Command cmSair; //Botão para sair do MIDlet
Exemplo de um MIDlet

public OlaMidlet() {
         display = Display.getDisplay(this);
         cmSair = new Command(quot;Sairquot;, Command.SCREEN, 1);
         tbMain = new TextBox(quot;Bem Vindoquot;, quot;Ola Midletquot;, 50, 0);
         tbMain.addCommand(cmSair);
         tbMain.setCommandListener(this);
     }
Exemplo de um MIDlet

//Chamada do gerenciador de aplicação para iniciar o Midlet.
      public void startApp() {
        display.setCurrent(tbMain);
      }
     //Requisição de método
      public void pauseApp() { }
       //Outra requisição de método
       public void destroyApp(boolean unconditional) { }
       // Checa se o comando de saída foi selecionado
       public void commandAction(Command c, Displayable s) {
          if (c == cmSair) {
              destroyApp(false);
              notifyDestroyed();
          }
       }
   }
Alo Mundo - Compilação

Linha de comando (MS-DOS)
VANTAGENS
  Maior capacidade de manipulação de memória e outros
  recursos
  Conhece-se o processo de compilação em “baixo nível”

DESVANTAGENS
  Digitação
  Complexo o suficiente para desmotivar iniciantes em
  segundos
  Depende de configuração bem feita
Linha de comando (MS-DOS)
Linha de comando (MS-DOS)
Alo Mundo - Compilação

J2ME Wireless Toolkit (Sun Microsystems)
VANTAGENS
  Fácil de usar
  Ambiente Windows
  Um botão faz tudo
  Já dispoõe de emuladores e trabalha com ROMS externos
  (PalmOS)

DESVANTAGENS
  Não dá muitas opções de customização do MIDlet
  “Esconde” o processo de compilação e pré-verificação
J2ME Wireless Toolkit
J2ME Wireless Toolkit
J2ME Wireless Toolkit

Mais conteúdo relacionado

Mais procurados

Eureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou HíbridoEureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou Híbridodrbatiston
 
Desenvolvimento de aplicações nativas para ios e android
Desenvolvimento de aplicações nativas para ios e androidDesenvolvimento de aplicações nativas para ios e android
Desenvolvimento de aplicações nativas para ios e androidDiogo Andre Loff
 
Jogo para dispositivos móveis
Jogo para dispositivos móveisJogo para dispositivos móveis
Jogo para dispositivos móveisCristiano Agosti
 
SISTEMAS OPERACIONAIS MÓVEIS (S.O)
SISTEMAS OPERACIONAIS MÓVEIS (S.O)SISTEMAS OPERACIONAIS MÓVEIS (S.O)
SISTEMAS OPERACIONAIS MÓVEIS (S.O)Ivan Marks
 

Mais procurados (8)

Web ou App?
Web ou App?Web ou App?
Web ou App?
 
Eureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou HíbridoEureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou Híbrido
 
JAVA
JAVA JAVA
JAVA
 
Desenvolvimento de aplicações nativas para ios e android
Desenvolvimento de aplicações nativas para ios e androidDesenvolvimento de aplicações nativas para ios e android
Desenvolvimento de aplicações nativas para ios e android
 
Apps Hibridos
Apps HibridosApps Hibridos
Apps Hibridos
 
Jogo para dispositivos móveis
Jogo para dispositivos móveisJogo para dispositivos móveis
Jogo para dispositivos móveis
 
Fotusbook
FotusbookFotusbook
Fotusbook
 
SISTEMAS OPERACIONAIS MÓVEIS (S.O)
SISTEMAS OPERACIONAIS MÓVEIS (S.O)SISTEMAS OPERACIONAIS MÓVEIS (S.O)
SISTEMAS OPERACIONAIS MÓVEIS (S.O)
 

Semelhante a Introdução ao J2ME Conexão Java 2004

Aplicações Móveis com J2ME
Aplicações Móveis com J2MEAplicações Móveis com J2ME
Aplicações Móveis com J2MEelliando dias
 
Introdução a JavaME
Introdução a JavaMEIntrodução a JavaME
Introdução a JavaMEfrgo
 
Introdução a Programação de Dispositivos Móveis
Introdução a Programação de Dispositivos MóveisIntrodução a Programação de Dispositivos Móveis
Introdução a Programação de Dispositivos Móveisigorpimentel
 
Java para dispositivos móveis
Java para dispositivos móveisJava para dispositivos móveis
Java para dispositivos móveisJoão Gabriel Lima
 
Java Micro Edition
Java Micro EditionJava Micro Edition
Java Micro Editionjgbirk
 
Aplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEAplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEJoão Longo
 
Apostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdfApostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdfJoberthSilva
 
Apostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdfApostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdfJoberthSilva
 
Minicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseMinicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseNécio de Lima Veras
 
Java Micro Edition Applied
Java Micro Edition AppliedJava Micro Edition Applied
Java Micro Edition Appliedmarcelobeckmann
 
Palestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPalestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPET Computação
 
New Microsoft Word Document.docx
New Microsoft Word Document.docxNew Microsoft Word Document.docx
New Microsoft Word Document.docxNiltonLourenoCanda
 
Curso de J2ME - Parte 01 - Conceitos básicos
Curso de J2ME - Parte 01 - Conceitos básicosCurso de J2ME - Parte 01 - Conceitos básicos
Curso de J2ME - Parte 01 - Conceitos básicosLeonardo Melo Santos
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?Douglas Aguiar
 

Semelhante a Introdução ao J2ME Conexão Java 2004 (20)

Aplicações Móveis com J2ME
Aplicações Móveis com J2MEAplicações Móveis com J2ME
Aplicações Móveis com J2ME
 
Introdução a JavaME
Introdução a JavaMEIntrodução a JavaME
Introdução a JavaME
 
Introducao ao J2ME
Introducao ao J2MEIntroducao ao J2ME
Introducao ao J2ME
 
Introdução a Programação de Dispositivos Móveis
Introdução a Programação de Dispositivos MóveisIntrodução a Programação de Dispositivos Móveis
Introdução a Programação de Dispositivos Móveis
 
Java para dispositivos móveis
Java para dispositivos móveisJava para dispositivos móveis
Java para dispositivos móveis
 
Java Micro Edition
Java Micro EditionJava Micro Edition
Java Micro Edition
 
Aplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEAplicativos Moveis Com J2ME
Aplicativos Moveis Com J2ME
 
Apostila JavaME
Apostila JavaMEApostila JavaME
Apostila JavaME
 
Apostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdfApostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdf
 
Apostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdfApostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdf
 
So cap01
So cap01So cap01
So cap01
 
Minicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseMinicurso de TotalCross e Litebase
Minicurso de TotalCross e Litebase
 
Java Micro Edition Applied
Java Micro Edition AppliedJava Micro Edition Applied
Java Micro Edition Applied
 
Palestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPalestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas Embarcados
 
JavaME - Aula 1
JavaME - Aula 1JavaME - Aula 1
JavaME - Aula 1
 
New Microsoft Word Document.docx
New Microsoft Word Document.docxNew Microsoft Word Document.docx
New Microsoft Word Document.docx
 
Curso de J2ME - Parte 01 - Conceitos básicos
Curso de J2ME - Parte 01 - Conceitos básicosCurso de J2ME - Parte 01 - Conceitos básicos
Curso de J2ME - Parte 01 - Conceitos básicos
 
Aula 02
Aula 02Aula 02
Aula 02
 
Minicurso Java Me
Minicurso Java MeMinicurso Java Me
Minicurso Java Me
 
ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?ASP .NET MVC - Você esta pronto para a pílula vermelha?
ASP .NET MVC - Você esta pronto para a pílula vermelha?
 

Mais de elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 

Mais de elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Introdução ao J2ME Conexão Java 2004

  • 1. Introdução ao J2ME Conexão Java 2004 14 e 15 de Agosto de 2004 Douglas Alves dougzilla@uol.com.br douglas@dis.epm.br
  • 2. O que é um dispositivo wireless? PC PDA’s Comunicadores Telefones Pagers Carros Smart Cards, etc
  • 3. Por que usar J2ME ? Pode ser a única forma de programar em alguns dispositivos Compartilha sua lógica entre servidores e dispositivos Dinamismo na obtenção dos aplicativos Programas compactos Ambiente de desenvolvimento é rápido e seguro
  • 4. Por que usar J2ME ? Existem aproximadamente 1 bilhão e 500 mil celulares no mundo Newsweek – 07 de junho de 2004 Entre 40-50% destes aparelhos devem estar aptos a acessar internet nos próximos 2 anos Já é 2 vezes mais numeroso que os PC’s
  • 5. Como deve parecer uma aplicação em J2ME ? SERVIDOR TCP/IP TCP/IP WSP PC DISPOSITIVO Serial USB Bluetooth DISPOSITIVO
  • 6. O que é J2ME?
  • 7. Configurações e perfis J2ME por si, não faz tudo Configurações: Bibliotecas básicas e JVM Perfis (Profiles): Ferramentas para o dispositivo ou mercado específico Configurações J2ME: - CDC - CLDC Configurações J2ME: - MIDP - Foundation, PDAP, Personal Java, etc...
  • 8. O que é uma configuração ? A configuração, define a capacidade das bibliotecas básicas e da JVM Sujeita a testes de compatibilidade Configurações do J2ME: - Connected Device Configuration (CDC) - Connected Limited Device Coniguration (CLDC)
  • 9. Configurações CLDC Equipamentos com baixíssimos níveis de Processamento Capacidade de memória Máximo 512kb de RAM Ex. Celulares 2G; 2,5G CDC Dispositivos com cerca de 2MB de RAM (alguns PDA’s, telefones 3G, etc.)
  • 10. O que é um perfil (profile) ? Uma coleção de API’s que complementam uma configuração fornecendo ferramentas de interação para o dispositivo O perfil ajuda na portabilidade das aplicações
  • 11. Perfis (Profiles) Os perfis existentes para o CLDC são diferentes dos existentes para o CDC Um perfil pode depender da funcionalidade de outro perfil, assim como uma configuração
  • 12. Mobile Information Device Profile Foi o primeiro perfil do J2ME É focado em dispositivos implementados com o CLDC É responsável por: - ferramentas de tela (Display) - interação com o usuário - persistência de dados - “Messaging” (SMS, email, etc), segurança e comunicação através da rede wireless
  • 13. Configuração CLDC MIDP PDAP CLDC JVM
  • 14. MIDlets Tem que conter pelo menos uma classe derivada do pacote javax.microedition.midlet.MIDlet Obrigatoriamente, um número de métodos têm que ser implementados para que sua execução torne-se possível Tem que usar somente as API’s do MIDP para manter sua portabilidade
  • 15. Suite de MIDlet’s Conjunto de MIDlets que fazem parte de um único grupo que podem dividir entre si os recursos utilizados. Todos MIDlets em uma suite rodam na mesma VM, dividem as mesmas instancias de classes e recursos.
  • 16. Execução de um MIDlet Tem que haver, por padrão, um construtor público (public). 3 estados: pausado, ativo, destruido Enquanto o MIDlet estiver ativo, ele está rodando o método startApp() O mesmo vale para o método pauseApp() (para quando estiver pausado) e destroyApp() para quando o MIDlet for finalizado.
  • 17. Exemplo de um MIDlet import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class OlaMidlet extends MIDlet implements CommandListener { private Display display; //Referencia para o objeto Display private TextBox tbMain; //TextBox para mostrar a mensagem private Command cmSair; //Botão para sair do MIDlet
  • 18. Exemplo de um MIDlet public OlaMidlet() { display = Display.getDisplay(this); cmSair = new Command(quot;Sairquot;, Command.SCREEN, 1); tbMain = new TextBox(quot;Bem Vindoquot;, quot;Ola Midletquot;, 50, 0); tbMain.addCommand(cmSair); tbMain.setCommandListener(this); }
  • 19. Exemplo de um MIDlet //Chamada do gerenciador de aplicação para iniciar o Midlet. public void startApp() { display.setCurrent(tbMain); } //Requisição de método public void pauseApp() { } //Outra requisição de método public void destroyApp(boolean unconditional) { } // Checa se o comando de saída foi selecionado public void commandAction(Command c, Displayable s) { if (c == cmSair) { destroyApp(false); notifyDestroyed(); } } }
  • 20. Alo Mundo - Compilação Linha de comando (MS-DOS) VANTAGENS Maior capacidade de manipulação de memória e outros recursos Conhece-se o processo de compilação em “baixo nível” DESVANTAGENS Digitação Complexo o suficiente para desmotivar iniciantes em segundos Depende de configuração bem feita
  • 21. Linha de comando (MS-DOS)
  • 22. Linha de comando (MS-DOS)
  • 23. Alo Mundo - Compilação J2ME Wireless Toolkit (Sun Microsystems) VANTAGENS Fácil de usar Ambiente Windows Um botão faz tudo Já dispoõe de emuladores e trabalha com ROMS externos (PalmOS) DESVANTAGENS Não dá muitas opções de customização do MIDlet “Esconde” o processo de compilação e pré-verificação