J2ME
          J2ME
 Conceitos básicos

  Leonardo Melo Santos
  leonardomelosantos@gmail.com
J2ME
Tópicos
•
•
•
    Dispositivos móveis e o mercado
    O que é J2ME?
    O que ela é capaz de fazer?
•   A plataforma Java™
•   Conceitos
    –   Configurations
    –   Profiles
    –   Profiles da CDC
    –   Profiles da CLDC
    –   Profile MIDP
    –   Conceitos da interface do J2ME
• Links interessantes
J2ME
Dispositivos móveis e o mercado

• Mercado de dispositivos móveis (celulares e
  handheld) cresce e evolui constantemente.
• Os celulares estão cada vez com mais cores,
  memória, velocidade e melhor usabilidade.
• Empresas como Nokia, Motorola, Samsung, LG e
  Qualcomm investem milhões de US$ em software
• Brasil ocupa 5ª posição entre os países com mais
  celulares no mundo (89 milhões)
• Japoneses usam celular para fazer compras,
  alugar filmes, fazer reservas em teatro, etc.
  (http://idgnow.uol.com.br/telecom/2007/03/14/idgnoticia.2007-03-13.2864066803)
J2ME
O que é J2ME?
• Uma edição do Java™ projetada para dispositivos
  com memória, vídeo e poder de processamento
  limitados (versão reduzida do J2SE com algumas
  limitações).
• Plataforma de desenvolvimento de software para
  celulares e dispositivos da Palm®.
• Tecnologia que tornou possível instalar novos
  softwares (escritos em Java™) em celulares.

Observação: Chama-se J2ME devido ao nome Java 1.2 Micro
  Edition, pois essa tecnologia nasceu quando a versão do
  Java™ era 1.2 Esse termo está sendo substituído por JME,
  assim como JSE e JEE.
J2ME
O que ela é capaz de fazer?
• Renderizar gráficos/imagens “pixel-art”, 2D e 3D.
• Armazenar dados no dispositivo (como um BD).
• Comunicar-se através de vários protocolos (HTTP,
  HTTPS, FTP, SOCKET, SOAP...)
• Comunicar-se com outros dispositivos via Bluetooth.
• Enviar e receber mensagens SMS/MMS.
• Controlar câmera e sintonizador de rádio do celular.
• Manipular transmissões de conteúdo por difusão,
  como TV digital.
• Manipular WebServices.
• Reconhecer e sintetizar voz...
J2ME
A plataforma Java™
• Standard Edition (JSE): projetada para execução
  em estações de trabalho e máquinas simples de
  computadores pessoais.
• Enterprise Edition (JEE): suporta servlets, JSP,
  XML, Struts MVC... Essa edição é destinada a
  aplicativos baseados no servidor.
• Micro Edition (JME): projetada para dispositivos
  com memória, vídeo e poder de processamento
  limitados.
J2ME
A plataforma Java™




 Imagem: http://java.sun.com
J2ME
A plataforma Java™
J2ME
Conceitos

Configurations
• Uma configuração é uma especificação de
  capacidades da plataforma subjacente (a JVM, e
  indiretamente, o hardware).
• Define os recursos da linguagem Java e as
  bibliotecas Java básicas da Máquina Virtual para
  uma configuração em particular.
• É baseada na memória, no vídeo, na
  conectividade de rede (ou limitações disto) e no
  poder de processamento do dispositivo.
• O JME possui duas principais Configurations: CDC
  e CLDC.
J2ME
Conceitos

Configurations
• Connected Limited Device Configuration (CLDC)
   – JSR 30 (v1.0) e JSR 139 (v1.1)
   – CPU de 16 ou 32 bits
   – 160KB a 512KB (128KB para executar a VM)
   – Conexões de rede lenta
   – Baixo energia, normalmente, alimentado por bateria
     (celulares)
   – CLDC 1.0 x 1.1 (versão 1.0 não suporta ponto flutuante)
• Connected Device Configuration (CDC)
   – JSR 36 (v1.0) e JSR 218 (v1.1.2)
   – CPU de 32 bits
   – Mínimo de 2MB de memória para executar a VM
   – Conexões de rede um pouco melhores que as da CLDC
   – Dispositivos um pouco “maiores” que os CLDC
     (smartphones, PDAs, pontos de terminal, sistemas de
     navegação de carro, etc.)
J2ME
Conceitos

Profiles
• Extensão de uma Configuration
• Cada Configuration possui uma “divisão
  horizontal” que diferencia os dispositivos pela sua
  aplicabilidade
   – Dispositivos de capacidade semelhantes, mas de
     utilização distinta, implementarão Profiles diferentes.
• Especificações definidas nas respectivas JSR (Java
  Specification Request)
   – Documentos formais que descrevem as tecnologias e
     as especificações propostas a serem adicionadas na
     Java™.
J2ME
Conceitos

Profiles da CDC
     Profile        Especificação                Descrição

 Foundation         v1.0: JSR 46    Dispositivos sem nenhuma capacidade
 Profile            v1.1: JSR 219   gráfica.



                    v1.0: JSR 129   Dispositivos com display simples, com
 Personal Basis
                                    suporte à AWT e parte da Java2D. É uma
 Profile            v1.1: JSR 217   versão light do Personal Profile.



                    v1.0: JSR 62    Suporte quase total às APIs do JSE 1.3 e
 Personal Profile
                    v1.1: JSR 216   alguns da JSE 1.4.
J2ME
Conceitos

Profiles da CLDC
     Profile         Especificação                      Descrição
 Mobile                                    Dispositivos móveis, com display de
                     v1.0: JSR 37          tamanho limitado. Suporta APIs de GUI
 Information
                     v2.0: JSR 118         (LCDUI), I/O e persistência (RMS). Prevê
 Device Profile
                     v3.0: JSR 271 (new)   o suporte a aplicações de voz e telefonia
 (MIDP)                                    em geral (SMS, etc.)
                                           Dispositivos sem nenhuma capacidade de
 Information                               display. É um subconjunto da MIDP, que
                     v1.0: JSR 195
 Module Profile                            basicamente não tem sues pacotes de
                                           GUI (LCDUI).

                                           Para PDAs. Inclui APIs para acesso a
 Personal Digital
                     v1.0: JSR 75          dados de informação pessoal (PIM) e para
 Assistant Profile
                                           acesso a sistemas de arquivos.

                                           API pré-J2ME JavaTV. Tem capacidades
 Digital Set Top
                     v1.0: JSR 242         como controle de sintonia ou manipulação
 Box Profile
                                           de dados de streams MPEG.
J2ME
Conceitos

Profile MIDP
• MIDP 1.0
  – Não suporta ponto flutuante.
  – Manipula conexões HTTP (sem criptografia).
  – Tamanho mínimo do heap é de 32kb....
• MIDP 2.0
  – MIDP 1.0 + junção de várias outras APIs.
  – Display: no mínimo 96x54 preto-e-branco.
  – 128kb de memória para executar os componentes MID.
  – Suporta ponto flutuante.
  – Manipula conexões HTTP e HTTPS (HTTP sobre SSL).
  – Conectividade de rede sem fio (Bluetooth).
  – Muitas melhorias na API de interface com o usuário.
  – Novas classes para tratamento de jogos e sons....
J2ME
Links interessantes
•
•
•
    Site oficial do J2ME - http://java.sun.com/javame/
    Diversos aplicativos J2ME – http://www.getjar.com/
    Livro J2ME - http://www.jasonlam604.com/books.php
•   Nokia – http://www.forum.nokia.com
•   Motorola – http://www.motocoder.com
J2ME
  Dúvidas?

Curso de J2ME - Parte 01 - Conceitos básicos

  • 1.
    J2ME J2ME Conceitos básicos Leonardo Melo Santos leonardomelosantos@gmail.com
  • 2.
    J2ME Tópicos • • • Dispositivos móveis e o mercado O que é J2ME? O que ela é capaz de fazer? • A plataforma Java™ • Conceitos – Configurations – Profiles – Profiles da CDC – Profiles da CLDC – Profile MIDP – Conceitos da interface do J2ME • Links interessantes
  • 3.
    J2ME Dispositivos móveis eo mercado • Mercado de dispositivos móveis (celulares e handheld) cresce e evolui constantemente. • Os celulares estão cada vez com mais cores, memória, velocidade e melhor usabilidade. • Empresas como Nokia, Motorola, Samsung, LG e Qualcomm investem milhões de US$ em software • Brasil ocupa 5ª posição entre os países com mais celulares no mundo (89 milhões) • Japoneses usam celular para fazer compras, alugar filmes, fazer reservas em teatro, etc. (http://idgnow.uol.com.br/telecom/2007/03/14/idgnoticia.2007-03-13.2864066803)
  • 4.
    J2ME O que éJ2ME? • Uma edição do Java™ projetada para dispositivos com memória, vídeo e poder de processamento limitados (versão reduzida do J2SE com algumas limitações). • Plataforma de desenvolvimento de software para celulares e dispositivos da Palm®. • Tecnologia que tornou possível instalar novos softwares (escritos em Java™) em celulares. Observação: Chama-se J2ME devido ao nome Java 1.2 Micro Edition, pois essa tecnologia nasceu quando a versão do Java™ era 1.2 Esse termo está sendo substituído por JME, assim como JSE e JEE.
  • 5.
    J2ME O que elaé capaz de fazer? • Renderizar gráficos/imagens “pixel-art”, 2D e 3D. • Armazenar dados no dispositivo (como um BD). • Comunicar-se através de vários protocolos (HTTP, HTTPS, FTP, SOCKET, SOAP...) • Comunicar-se com outros dispositivos via Bluetooth. • Enviar e receber mensagens SMS/MMS. • Controlar câmera e sintonizador de rádio do celular. • Manipular transmissões de conteúdo por difusão, como TV digital. • Manipular WebServices. • Reconhecer e sintetizar voz...
  • 6.
    J2ME A plataforma Java™ •Standard Edition (JSE): projetada para execução em estações de trabalho e máquinas simples de computadores pessoais. • Enterprise Edition (JEE): suporta servlets, JSP, XML, Struts MVC... Essa edição é destinada a aplicativos baseados no servidor. • Micro Edition (JME): projetada para dispositivos com memória, vídeo e poder de processamento limitados.
  • 7.
    J2ME A plataforma Java™ Imagem: http://java.sun.com
  • 8.
  • 9.
    J2ME Conceitos Configurations • Uma configuraçãoé uma especificação de capacidades da plataforma subjacente (a JVM, e indiretamente, o hardware). • Define os recursos da linguagem Java e as bibliotecas Java básicas da Máquina Virtual para uma configuração em particular. • É baseada na memória, no vídeo, na conectividade de rede (ou limitações disto) e no poder de processamento do dispositivo. • O JME possui duas principais Configurations: CDC e CLDC.
  • 10.
    J2ME Conceitos Configurations • Connected LimitedDevice Configuration (CLDC) – JSR 30 (v1.0) e JSR 139 (v1.1) – CPU de 16 ou 32 bits – 160KB a 512KB (128KB para executar a VM) – Conexões de rede lenta – Baixo energia, normalmente, alimentado por bateria (celulares) – CLDC 1.0 x 1.1 (versão 1.0 não suporta ponto flutuante) • Connected Device Configuration (CDC) – JSR 36 (v1.0) e JSR 218 (v1.1.2) – CPU de 32 bits – Mínimo de 2MB de memória para executar a VM – Conexões de rede um pouco melhores que as da CLDC – Dispositivos um pouco “maiores” que os CLDC (smartphones, PDAs, pontos de terminal, sistemas de navegação de carro, etc.)
  • 11.
    J2ME Conceitos Profiles • Extensão deuma Configuration • Cada Configuration possui uma “divisão horizontal” que diferencia os dispositivos pela sua aplicabilidade – Dispositivos de capacidade semelhantes, mas de utilização distinta, implementarão Profiles diferentes. • Especificações definidas nas respectivas JSR (Java Specification Request) – Documentos formais que descrevem as tecnologias e as especificações propostas a serem adicionadas na Java™.
  • 12.
    J2ME Conceitos Profiles da CDC Profile Especificação Descrição Foundation v1.0: JSR 46 Dispositivos sem nenhuma capacidade Profile v1.1: JSR 219 gráfica. v1.0: JSR 129 Dispositivos com display simples, com Personal Basis suporte à AWT e parte da Java2D. É uma Profile v1.1: JSR 217 versão light do Personal Profile. v1.0: JSR 62 Suporte quase total às APIs do JSE 1.3 e Personal Profile v1.1: JSR 216 alguns da JSE 1.4.
  • 13.
    J2ME Conceitos Profiles da CLDC Profile Especificação Descrição Mobile Dispositivos móveis, com display de v1.0: JSR 37 tamanho limitado. Suporta APIs de GUI Information v2.0: JSR 118 (LCDUI), I/O e persistência (RMS). Prevê Device Profile v3.0: JSR 271 (new) o suporte a aplicações de voz e telefonia (MIDP) em geral (SMS, etc.) Dispositivos sem nenhuma capacidade de Information display. É um subconjunto da MIDP, que v1.0: JSR 195 Module Profile basicamente não tem sues pacotes de GUI (LCDUI). Para PDAs. Inclui APIs para acesso a Personal Digital v1.0: JSR 75 dados de informação pessoal (PIM) e para Assistant Profile acesso a sistemas de arquivos. API pré-J2ME JavaTV. Tem capacidades Digital Set Top v1.0: JSR 242 como controle de sintonia ou manipulação Box Profile de dados de streams MPEG.
  • 14.
    J2ME Conceitos Profile MIDP • MIDP1.0 – Não suporta ponto flutuante. – Manipula conexões HTTP (sem criptografia). – Tamanho mínimo do heap é de 32kb.... • MIDP 2.0 – MIDP 1.0 + junção de várias outras APIs. – Display: no mínimo 96x54 preto-e-branco. – 128kb de memória para executar os componentes MID. – Suporta ponto flutuante. – Manipula conexões HTTP e HTTPS (HTTP sobre SSL). – Conectividade de rede sem fio (Bluetooth). – Muitas melhorias na API de interface com o usuário. – Novas classes para tratamento de jogos e sons....
  • 15.
    J2ME Links interessantes • • • Site oficial do J2ME - http://java.sun.com/javame/ Diversos aplicativos J2ME – http://www.getjar.com/ Livro J2ME - http://www.jasonlam604.com/books.php • Nokia – http://www.forum.nokia.com • Motorola – http://www.motocoder.com
  • 16.