SlideShare uma empresa Scribd logo
1 de 62
Baixar para ler offline
Aplicações Móveis
    com J2ME

         Claudio Montenegro
 claudio.montenegro@datasul.com.br
         GU Java SUCESU-SC
Fabricação de
Microprocessadores


- Intel: 100 milhões/ANO


- Motorola: 35 milhões/MÊS
Popularização de
Dispositivos
Microprocessados e
Programáveis




             Tendência mundial de utilização de
             Java como a plataforma de
             desenvolvimento de aplicações
             para tais dispositos...
Porque tanto interesse em
Aplicações Móveis?



- Mercado de US$ 6.0 bilhões em
  'mobile games' em 2004.
 fonte: Gartner Group




- Mercado de US$12,9 bilhões em
  aplicações 'mobile office' em 2005.
 fonte: Yankee
Porque Java para
pequenos dispositivos?

- Independência de Plataforma
- Orientação a Objetos
- Networking
- Segurança
- Tratamento de Exceções
- Multithreads
- ...
- ... e o mais importante, PADRONIZAÇÃO
Porque Java para
pequenos dispositivos?
Padronização:

- A tecnologia Java está em 100 % das
  listas de padrões da empresas
  'Fortune 500'.
 fonte: IBM


Plataforma:

- 78 % dos executivos vêem a tecnologia
  Java como a melhor plataforma para
  Web Services.
 fonte: Giga, Computerworld
Dispositivos 'Java Enabled'
- Java é a plataforma líder em aplicações
  móveis, 53 operadoras de telefonia
  celular no mundo já fazem 'deploy' de
  aplicações J2ME. Mais 11 estão em testes.


- Já existem mais de 150 dispositivos 'Java
  Enabled' de 22 fabricantes.


- Serão 841 milhões de celulares Java
  em 2004 e 1.1 bilhão em 2006.
 fonte: ARC Group
A Plataforma Java 2
A Plataforma Java
   Java 2 Runtime Environment


    Deployment
   Technologies

 User Interface
       Toolkits


Integration APIs



      Core APIs




    Java Virtual
       Machine


      Platforms
Como colocar Java em
pequenos dispositivos?
Como colocar Java em
pequenos dispositivos?
Como colocar Java em
pequenos dispositivos?
       Subset da API 
         do J2SE
             +
     API Complementar 
             +
      JVM Adequada
                         Resposta:
                         Criando-se um
                         JRE apropriado
                         para as capacidades
                         do dispositivo.
www.jcp.org

- Organização aberta de abrangência mundial,
 focada na padronização da plataforma Java.
- Mais de 660 empresas e participantes
 individuais.


         JCP é maneira através da qual
           a plataforma Java evolui.
A Plataforma J2ME
Java 2 Micro Edition
J2ME define um padrão para colocar
Java dentro de dispositivos que não
possuem o poder de processamento
de ambientes J2SE completos.
Dispositivos como PDAs, celulares,
TVs, eletrodomésticos,
computadores de bordo e muitos
outros.
J2ME

- Com J2ME é possível construir ambientes
  de execução Java (runtime environments)
  muito pequenos, menores que 200 Kbytes.

- Possui arquitetura bastante modularizada.
Atualmente existem 52 JSRs
(Java Specification Request)
   relacionadas com J2ME

  Algumas delas:

  JSR 66 – RMI Optional Package

  JSR 120 – Wireless Messaging API

  JSR 134 – Java Game Profile

  JSR 135 – Mobile Media API

  JSR 82 – Java APIs for Bluetooth

  JSR 184 – Mobile 3D Graphics API
Algumas das Empresas
que Suportam J2ME
Arquitetura Modular
Configurations


- Define a mínima plataforma Java para um
  conjunto de dispositivos comuns.

- Suporta um ou mais 'profile'

- Definido através do Java Comunity
  Process(JCP)
Configurações Atuais


- Connected Device Configuration (CDC)
  . Web Phones
  . Computadores de Bordo
  . Network-capable devices


- Connected Limited Device Configuration
  (CLDC)
  . Celulares
  . PDAs
  . Pagers                 CDC 1.0 – JSR 36
                           CDC 1.1 – JSR 218
                             CLDC 1.0 – JSR 30
                             CLDC 1.1 – JSR 139
Relação entre as Configurações




       J2SE   CDC                   CLDC
                                            
Profiles


- Complementam a Configuração para
  prover capacidades para uma família
  específica de dispositivos ou segmento
  da indústria.

- Provê flexibilidade e optimiza portabilidade.

- Frequentemente provê UI, tratamento de
  evento e mecanismos de persistência.
CLDC + MIDP
Pacotes do CLDC


- java.lang

- java.io

- java.util

- javax.microedition.io
MIDP - Mobile Information
        Device Profile

 Pacotes:
 - java.lang
 - java.io
 - java.util
 - javax.microedition.io
 - javax.microedition.lcd
 - javax.microedition.midlet
 - javax.microedition.rms

      MIDlet – aplicação móvel
      desenvolvida para MIDP
MIDP 1.0 – JSR 37

MIDP 2.0 – JSR 118


Algumas Melhorias no MIDP 2.0
- HTTPS
- Multimídia: suporte para áudio/vídeo
- Itens de tela customizados (GUI)
- Game API
- “Push Registry - incoming network connections”
Instalação de MIDlets


      http://www...../arquivo.jad
                                    Web Server
      arquivo.jad                   arquivo.jad

      http://www...../arquivo.jar    arquivo.jar

      arquivo.jar
Exemplos de Aplicações
Móveis com J2ME


    - Entretenimento
    - Internet
    - Educação
    - Produtividade
    - Utilitários
    - e-commerce
    - Empresarial
Entretenimento




 ChessBuddy      Spruce GO    Metris




  Commics         Foto Fun   PopStar
Entretenimento




                    Prince of Persia
    Dragon Island




    Racing Fever      Desailly Pro
                        Soccer
Internet




     jBrowser    e-mail Viewer




    MiMessager       Azure
Produtividade/Educação




 Micro Reader   Jtask - ToDo   Periodic Table
Utilitários




      QuickShop       Fly Cam




      CroWeather   First Aid Guide
e-commerce




  Piranha Pricecheck - http://mpowers.net/piranha
e-commerce
e-commerce
e-commerce
e-commerce
e-commerce
e-commerce
e-commerce
e-commerce
Empresariais




           Datasul CRM SFA
Empresariais




Datasul CRM SFA
Onde obter MIDLETS:



- www.midlet.org

- www.microjava.com

- www.handango.com

- www.zgroup-mobile.com
Onde obter informações sobre
aparelhos com
suporte a J2ME


- wireless.java.sun.com


- www.jbenchmark.com


- site do fabricante
Ferramentas para o
Desenvolvimento de Aplicações
J2ME/MIDP




Nokia Developers Suite for J2ME

Motorola SDK for J2ME
J2ME Wireless Toolkit




   http://java.sun.com/products/j2mewtoolkit/
IDEs para o Desenvolvimento de
Aplicações J2ME/MIDP


  - WebSphere Studio Device Developer

  - Sun ONE Studio, Mobile Edition

  - JBuilder MobileSet

  - Simplicity for Java

  - JDeveloper J2ME Extension
Etapas no Desenvolvimento de
     uma Aplicação MIDP

           Código Fonte
          (arquivos .java)

                      javac

              Binários
          (arquivos .class)


                      preverify

            Binários Pré-
             verificados
          (arquivos .class)

                      jar

            Arquivo .jar          Arquivo .jad
           (.class + .png)
Exemplo de Código
package exemplo;

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

public class Contador extends MIDlet implements CommandListener {

    private   Command cmdAdd;
    private   Command cmdReset;
    private   Command cmdExit;
    private   Form frm;
    private   StringItem strTotal;
    private   int counter;

    public Contador() {

        // Cria e inicializa a tela principal
        frm = new Form(quot;Contadorquot;);
        strTotal = new StringItem(quot;Total: quot;, quot;0quot;);
        frm.append(strTotal);

        // Cria e adiciona os Commands(botoes)
        cmdAdd = new Command(quot;+quot;, Command.SCREEN, 0);
        cmdReset = new Command(quot;Resetquot;, Command.SCREEN, 1);
        cmdExit = new Command(quot;Sairquot;, Command.SCREEN, 0);
        frm.addCommand(cmdAdd);
        frm.addCommand(cmdReset);
        frm.addCommand(cmdExit);

        frm.setCommandListener(this);
    }
Exemplo de Código                 (cont.)

    public void startApp() {
        Display.getDisplay(this).setCurrent(frm);
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean b) {
    }

    public void commandAction(Command cmd, Displayable disp) {

        // Incrementa o contador
        if (cmd == cmdAdd) {
            strTotal.setText(String.valueOf(++counter));

        // Reseta o contador
        } else if (cmd == cmdReset) {
            counter = 0;
            strTotal.setText(quot;0quot;);

        // Sai da aplicacao
        } else {
            destroyApp(false);
            notifyDestroyed();
        }
    }
}
Exemplo de Arquivo JAD



MIDlet-Name: Contador
MIDlet-Jar-URL: contador.jar
MIDlet-Jar-Size: 2509
MIDlet-Version: 1.0
MIDlet-1: Contador, /images/logo.png , exemplo.Contador
MIDlet-Description: Exemplo de MIDlet
MIDlet-Vendor: My Company
MIDlet-Info-URL: http://www.mycompany.com
MIDlets em Palm OS



             MIDP for PalmOS
             http://java.sun.com/products/midp4palm/

             Palm OS > 3.5




             WebSphere Micro Environment
             Parceria Palm e IBM
             http://pluggedin.palm.com

             Palm Tungsten

             Virá de Fábrica
Exemplo de Celular como Ferramenta de
Controle Remoto


                            Internet

                            App Server

                             Servlet



                   x,y                          x,y
                     HTTP                HTTP
Referências

Java(tm) 2 Platform, Micro Edition
http://java.sun.com/j2me

Wireless Developer
http://wireless.java.sun.com/

Micro Java Network
http://www.microjava.com

Java(tm) 2 Platform Micro Edition, Wireless Toolkit
http://java.sun.com/products/j2mewtoolkit/

www.forum.nokia.com.br

www.motocoder.com.br

Mais conteúdo relacionado

Semelhante a J2ME aplicações móveis

Introdução ao J2ME Conexão Java 2004
Introdução ao J2ME Conexão Java 2004Introdução ao J2ME Conexão Java 2004
Introdução ao J2ME Conexão Java 2004elliando dias
 
Java para dispositivos móveis
Java para dispositivos móveisJava para dispositivos móveis
Java para dispositivos móveisJoão Gabriel Lima
 
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
 
Aplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEAplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEJoão Longo
 
Introdução a JavaME
Introdução a JavaMEIntrodução a JavaME
Introdução a JavaMEfrgo
 
Java Micro Edition Applied
Java Micro Edition AppliedJava Micro Edition Applied
Java Micro Edition Appliedmarcelobeckmann
 
Desenvolvimento de Aplicações Móveis com JavaME
Desenvolvimento de Aplicações Móveis com JavaMEDesenvolvimento de Aplicações Móveis com JavaME
Desenvolvimento de Aplicações Móveis com JavaMEWaldir R. Pires Jr
 
Análise de Ameaças Cibernéticas em Protocolos Industriais
Análise de Ameaças Cibernéticas em Protocolos Industriais Análise de Ameaças Cibernéticas em Protocolos Industriais
Análise de Ameaças Cibernéticas em Protocolos Industriais Alexandre Freire
 
20070131 mgjug-enterprise java-me_netbeans_mp_nokia_juarez_junior
20070131 mgjug-enterprise java-me_netbeans_mp_nokia_juarez_junior20070131 mgjug-enterprise java-me_netbeans_mp_nokia_juarez_junior
20070131 mgjug-enterprise java-me_netbeans_mp_nokia_juarez_juniorJuarez Junior
 
Desenvolvimento android braga_geek_nights (1)
Desenvolvimento android braga_geek_nights (1)Desenvolvimento android braga_geek_nights (1)
Desenvolvimento android braga_geek_nights (1)muldy
 
Titanium Mobile - Campus Party Recife 2
Titanium Mobile - Campus Party Recife 2Titanium Mobile - Campus Party Recife 2
Titanium Mobile - Campus Party Recife 2Eric Cavalcanti
 
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
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Javalimadavi
 
Fsi8a Sistemas Internet
Fsi8a Sistemas InternetFsi8a Sistemas Internet
Fsi8a Sistemas InternetLuiz Domingues
 
Utiizando o Celular no Apoio à Gerência de configuração
Utiizando o Celular no Apoio à Gerência de configuraçãoUtiizando o Celular no Apoio à Gerência de configuração
Utiizando o Celular no Apoio à Gerência de configuraçãoJaguaraci Silva
 

Semelhante a J2ME aplicações móveis (20)

Introdução ao J2ME Conexão Java 2004
Introdução ao J2ME Conexão Java 2004Introdução ao J2ME Conexão Java 2004
Introdução ao J2ME Conexão Java 2004
 
Java para dispositivos móveis
Java para dispositivos móveisJava para dispositivos móveis
Java para dispositivos móveis
 
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
 
Aplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEAplicativos Moveis Com J2ME
Aplicativos Moveis Com J2ME
 
Introdução a JavaME
Introdução a JavaMEIntrodução a JavaME
Introdução a JavaME
 
Android
AndroidAndroid
Android
 
Java Micro Edition Applied
Java Micro Edition AppliedJava Micro Edition Applied
Java Micro Edition Applied
 
Desenvolvimento de Aplicações Móveis com JavaME
Desenvolvimento de Aplicações Móveis com JavaMEDesenvolvimento de Aplicações Móveis com JavaME
Desenvolvimento de Aplicações Móveis com JavaME
 
Análise de Ameaças Cibernéticas em Protocolos Industriais
Análise de Ameaças Cibernéticas em Protocolos Industriais Análise de Ameaças Cibernéticas em Protocolos Industriais
Análise de Ameaças Cibernéticas em Protocolos Industriais
 
20070131 mgjug-enterprise java-me_netbeans_mp_nokia_juarez_junior
20070131 mgjug-enterprise java-me_netbeans_mp_nokia_juarez_junior20070131 mgjug-enterprise java-me_netbeans_mp_nokia_juarez_junior
20070131 mgjug-enterprise java-me_netbeans_mp_nokia_juarez_junior
 
Android
AndroidAndroid
Android
 
Desenvolvimento android braga_geek_nights (1)
Desenvolvimento android braga_geek_nights (1)Desenvolvimento android braga_geek_nights (1)
Desenvolvimento android braga_geek_nights (1)
 
Titanium Mobile - Campus Party Recife 2
Titanium Mobile - Campus Party Recife 2Titanium Mobile - Campus Party Recife 2
Titanium Mobile - Campus Party Recife 2
 
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
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Java
 
Fsi8a Sistemas Internet
Fsi8a Sistemas InternetFsi8a Sistemas Internet
Fsi8a Sistemas Internet
 
Utiizando o Celular no Apoio à Gerência de configuração
Utiizando o Celular no Apoio à Gerência de configuraçãoUtiizando o Celular no Apoio à Gerência de configuração
Utiizando o Celular no Apoio à Gerência de configuração
 

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
 

J2ME aplicações móveis

  • 1. Aplicações Móveis com J2ME Claudio Montenegro claudio.montenegro@datasul.com.br GU Java SUCESU-SC
  • 2. Fabricação de Microprocessadores - Intel: 100 milhões/ANO - Motorola: 35 milhões/MÊS
  • 3. Popularização de Dispositivos Microprocessados e Programáveis Tendência mundial de utilização de Java como a plataforma de desenvolvimento de aplicações para tais dispositos...
  • 4. Porque tanto interesse em Aplicações Móveis? - Mercado de US$ 6.0 bilhões em 'mobile games' em 2004. fonte: Gartner Group - Mercado de US$12,9 bilhões em aplicações 'mobile office' em 2005. fonte: Yankee
  • 5. Porque Java para pequenos dispositivos? - Independência de Plataforma - Orientação a Objetos - Networking - Segurança - Tratamento de Exceções - Multithreads - ... - ... e o mais importante, PADRONIZAÇÃO
  • 6. Porque Java para pequenos dispositivos? Padronização: - A tecnologia Java está em 100 % das listas de padrões da empresas 'Fortune 500'. fonte: IBM Plataforma: - 78 % dos executivos vêem a tecnologia Java como a melhor plataforma para Web Services. fonte: Giga, Computerworld
  • 7. Dispositivos 'Java Enabled' - Java é a plataforma líder em aplicações móveis, 53 operadoras de telefonia celular no mundo já fazem 'deploy' de aplicações J2ME. Mais 11 estão em testes. - Já existem mais de 150 dispositivos 'Java Enabled' de 22 fabricantes. - Serão 841 milhões de celulares Java em 2004 e 1.1 bilhão em 2006. fonte: ARC Group
  • 9. A Plataforma Java Java 2 Runtime Environment Deployment Technologies User Interface Toolkits Integration APIs Core APIs Java Virtual Machine Platforms
  • 10. Como colocar Java em pequenos dispositivos?
  • 11. Como colocar Java em pequenos dispositivos?
  • 12. Como colocar Java em pequenos dispositivos? Subset da API  do J2SE + API Complementar  + JVM Adequada Resposta: Criando-se um JRE apropriado para as capacidades do dispositivo.
  • 13. www.jcp.org - Organização aberta de abrangência mundial, focada na padronização da plataforma Java. - Mais de 660 empresas e participantes individuais. JCP é maneira através da qual a plataforma Java evolui.
  • 14. A Plataforma J2ME Java 2 Micro Edition J2ME define um padrão para colocar Java dentro de dispositivos que não possuem o poder de processamento de ambientes J2SE completos. Dispositivos como PDAs, celulares, TVs, eletrodomésticos, computadores de bordo e muitos outros.
  • 15. J2ME - Com J2ME é possível construir ambientes de execução Java (runtime environments) muito pequenos, menores que 200 Kbytes. - Possui arquitetura bastante modularizada.
  • 16. Atualmente existem 52 JSRs (Java Specification Request) relacionadas com J2ME Algumas delas: JSR 66 – RMI Optional Package JSR 120 – Wireless Messaging API JSR 134 – Java Game Profile JSR 135 – Mobile Media API JSR 82 – Java APIs for Bluetooth JSR 184 – Mobile 3D Graphics API
  • 17. Algumas das Empresas que Suportam J2ME
  • 19. Configurations - Define a mínima plataforma Java para um conjunto de dispositivos comuns. - Suporta um ou mais 'profile' - Definido através do Java Comunity Process(JCP)
  • 20. Configurações Atuais - Connected Device Configuration (CDC) . Web Phones . Computadores de Bordo . Network-capable devices - Connected Limited Device Configuration (CLDC) . Celulares . PDAs . Pagers CDC 1.0 – JSR 36 CDC 1.1 – JSR 218 CLDC 1.0 – JSR 30 CLDC 1.1 – JSR 139
  • 21. Relação entre as Configurações J2SE CDC CLDC                         
  • 22. Profiles - Complementam a Configuração para prover capacidades para uma família específica de dispositivos ou segmento da indústria. - Provê flexibilidade e optimiza portabilidade. - Frequentemente provê UI, tratamento de evento e mecanismos de persistência.
  • 24. Pacotes do CLDC - java.lang - java.io - java.util - javax.microedition.io
  • 25. MIDP - Mobile Information Device Profile Pacotes: - java.lang - java.io - java.util - javax.microedition.io - javax.microedition.lcd - javax.microedition.midlet - javax.microedition.rms MIDlet – aplicação móvel desenvolvida para MIDP
  • 26. MIDP 1.0 – JSR 37 MIDP 2.0 – JSR 118 Algumas Melhorias no MIDP 2.0 - HTTPS - Multimídia: suporte para áudio/vídeo - Itens de tela customizados (GUI) - Game API - “Push Registry - incoming network connections”
  • 27. Instalação de MIDlets http://www...../arquivo.jad Web Server arquivo.jad arquivo.jad http://www...../arquivo.jar arquivo.jar arquivo.jar
  • 28. Exemplos de Aplicações Móveis com J2ME - Entretenimento - Internet - Educação - Produtividade - Utilitários - e-commerce - Empresarial
  • 29. Entretenimento ChessBuddy Spruce GO Metris Commics Foto Fun PopStar
  • 30. Entretenimento Prince of Persia Dragon Island Racing Fever Desailly Pro Soccer
  • 31.
  • 32.
  • 33. Internet jBrowser e-mail Viewer MiMessager Azure
  • 34. Produtividade/Educação Micro Reader Jtask - ToDo Periodic Table
  • 35. Utilitários QuickShop Fly Cam CroWeather First Aid Guide
  • 36. e-commerce Piranha Pricecheck - http://mpowers.net/piranha
  • 45. Empresariais Datasul CRM SFA
  • 47. Onde obter MIDLETS: - www.midlet.org - www.microjava.com - www.handango.com - www.zgroup-mobile.com
  • 48.
  • 49.
  • 50. Onde obter informações sobre aparelhos com suporte a J2ME - wireless.java.sun.com - www.jbenchmark.com - site do fabricante
  • 51.
  • 52.
  • 53. Ferramentas para o Desenvolvimento de Aplicações J2ME/MIDP Nokia Developers Suite for J2ME Motorola SDK for J2ME
  • 54. J2ME Wireless Toolkit http://java.sun.com/products/j2mewtoolkit/
  • 55. IDEs para o Desenvolvimento de Aplicações J2ME/MIDP - WebSphere Studio Device Developer - Sun ONE Studio, Mobile Edition - JBuilder MobileSet - Simplicity for Java - JDeveloper J2ME Extension
  • 56. Etapas no Desenvolvimento de uma Aplicação MIDP Código Fonte (arquivos .java) javac Binários (arquivos .class) preverify Binários Pré- verificados (arquivos .class) jar Arquivo .jar Arquivo .jad (.class + .png)
  • 57. Exemplo de Código package exemplo; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class Contador extends MIDlet implements CommandListener { private Command cmdAdd; private Command cmdReset; private Command cmdExit; private Form frm; private StringItem strTotal; private int counter; public Contador() { // Cria e inicializa a tela principal frm = new Form(quot;Contadorquot;); strTotal = new StringItem(quot;Total: quot;, quot;0quot;); frm.append(strTotal); // Cria e adiciona os Commands(botoes) cmdAdd = new Command(quot;+quot;, Command.SCREEN, 0); cmdReset = new Command(quot;Resetquot;, Command.SCREEN, 1); cmdExit = new Command(quot;Sairquot;, Command.SCREEN, 0); frm.addCommand(cmdAdd); frm.addCommand(cmdReset); frm.addCommand(cmdExit); frm.setCommandListener(this); }
  • 58. Exemplo de Código (cont.) public void startApp() { Display.getDisplay(this).setCurrent(frm); } public void pauseApp() { } public void destroyApp(boolean b) { } public void commandAction(Command cmd, Displayable disp) { // Incrementa o contador if (cmd == cmdAdd) { strTotal.setText(String.valueOf(++counter)); // Reseta o contador } else if (cmd == cmdReset) { counter = 0; strTotal.setText(quot;0quot;); // Sai da aplicacao } else { destroyApp(false); notifyDestroyed(); } } }
  • 59. Exemplo de Arquivo JAD MIDlet-Name: Contador MIDlet-Jar-URL: contador.jar MIDlet-Jar-Size: 2509 MIDlet-Version: 1.0 MIDlet-1: Contador, /images/logo.png , exemplo.Contador MIDlet-Description: Exemplo de MIDlet MIDlet-Vendor: My Company MIDlet-Info-URL: http://www.mycompany.com
  • 60. MIDlets em Palm OS MIDP for PalmOS http://java.sun.com/products/midp4palm/ Palm OS > 3.5 WebSphere Micro Environment Parceria Palm e IBM http://pluggedin.palm.com Palm Tungsten Virá de Fábrica
  • 61. Exemplo de Celular como Ferramenta de Controle Remoto Internet App Server Servlet x,y x,y HTTP HTTP
  • 62. Referências Java(tm) 2 Platform, Micro Edition http://java.sun.com/j2me Wireless Developer http://wireless.java.sun.com/ Micro Java Network http://www.microjava.com Java(tm) 2 Platform Micro Edition, Wireless Toolkit http://java.sun.com/products/j2mewtoolkit/ www.forum.nokia.com.br www.motocoder.com.br