SlideShare une entreprise Scribd logo
1  sur  43
Télécharger pour lire hors ligne
Introdução a
Java Micro Edition
    (Java ME)

 Anderson Vasconcelos dos
                   Santos
                  Aula 1
Agenda
• Mercado Mobile
• Dispositivos Mobile
• Aplicações Mobile
• Arquitetura Java ME
• MIDLET
Mercado Mobile
• Existem hoje milhares de
  dispositivos móveis
• No mundo são mais de 2,5
  bilhões de aparelhos celulares
• O mercado de dispositivos
  móveis movimenta cerca de 100
  bilhões de dólares por ano
Mercado Mobile
• O mercado de jogos para celular
  movimentou mais de 1 bilhão de
  dólares nos Estados Unidos em
  2006
• Este mercado cresce 18% ao ano
• Em 2008 o mercado mundial de
  jogos para celular movimentará 8
  bilhões de dólares
Mercado Mobile
• No Brasil há hoje mais de 100
  milhões de celulares em
  operação
• O Brasil é o sexto maior mercado
  do mundo em celulares
• O mercado de jogos para
  celulares no Brasil, movimentou
  30 milhões em 2006
Mercado Mobile
• Há hoje uma disseminação massiva de
  celulares, smartphones, pdas.
• Com o blackberry (por exemplo) pode-se:
   – Visualizar emails, planilhas, documentos
   – Fazer reuniões usando o MSN
   – Gerenciar suas fotos usando o Picasa
     Mobile
   – Ver suas noticias preferidas com o
     Netvibes Mobile
Mercado Mobile
• As vendas de smartphones no
  Brasil tiveram um crescimento
  de 140%
• No mundo a taxa de crescimento
  média será de 28% nos
  próximos 5 anos
Mercado Mobile
• Cada vez mais empresas como a
  Apple, SonyEricsoon, Nokia,
  investem em tecnologia para
  dispositivo móveis
• Os celulares, pdas e
  smartphones, a cada dia estão
  com um maior poder de
  processamento
Mercado Mobile
• Com a popularização dos dispositivos
  móveis surge a necessidade de
  aplicações para essa grande massa
  de consumidores
• Segundo a InfoExame de setembro
  de 2007, o desenvolvimento de
  aplicações para dispositivos móveis é
  algo bastante promissor
Tipos de Dispositivos
• Celulares
• PDA´s (Personal Digital Assistence)
  –Palm
  –PocketPC
• Smartphones
  –Symbian
  –Window Mobile
  –Palm
  –BlackBerry
Tipos de Aplicações
• Jogos 2D e 3D
• Aplicações Corporativas, com
  conexão a servidores web
• Aplicações Corporativas off-line
• Aplicações que gerenciam o
  conteúdo do dispositivo.
Tipos de Aplicações
• Aplicações que usam tecnologias
  específicas do dispositivo
  –Bluetooth
  –GPS
  –Captura de Imagem, Vídeo e
    Som
O que é Java ME
O que é Java ME
• Java ME é uma coleção de
  tecnologias e especificações
  (JSRs)
• Java ME usa um subconjuntos de
  componentes Java SE, tais como
  maquinas virtuais menores e
  APIs mais enxutas
Arquitetura Java ME
• KVM
• Configurations
   –CDC
   –CLDC
• Profiles
   –MIDP 1.0, 2.0 e 3.0
• Pacotes Opcionais
• JTWI e MSA
KVM
• Kilobyte Virtual Machine
• Utilizada em dispositivos mais
  limitados para a configuração CLDC
• Ela não possui todos os recursos da
  JVM, porém executa em um sistema
  de 16 a 32 bits e um total de 160 Kb
  a 512 Kb de memória
Configurations
• Fornece um ambiente Java
  completo.
• O conjunto de classes é pequeno
  e deve ser estendido por perfis.
  Não implementa classes de
  interface com o usuário.
Configurations
• Uma configuração é divida em:
  –Código proprietário que faz
   interface com o sistema
   provido pelo dispositivo
  –Um conjunto de APIs básicas
   (subjconjunto da Java SE)
CDC
• Connected Device Configuration
• Utilizada em dispositivos com
  maior capacidade de
  processamento e memória
• Presente em PDAs, smartphones
• Suporta Ponto Flutuante
CLDC
• Connected Limited Device
  Configuration
• Utilizada em dispositivos com
  recursos limitados de
  processamento e memória
• Presente em celulares, pagers
  entre outros.
CLDC

• CLDC 1.0 Não suporta Ponto
  Flutuante
• CLDC 1.1 Suporta Ponto
  Flutuante
Java SE X CDC X CLDC
Profiles
• São mais específicas que as
  configurações
• Provêem um conjunto de APIs
  para auxiliar o desenvolvimento
  de aplicações
Profiles
• Tipos:
  –Foundation Profile: usado em
    dispositivos que possuem CDC
  –MIDP: usado em dispositivos
    que possuem CLDC
Profiles
–Information Module Profile
 (IMP): subset do MIDP, para
 dispositivos sem capacidade
 gráfica
–Personal Profile (PP):
 dispositivos com capacidades
 gráficas avançadas
MIDP
• Mobile Information Device Profile
• Prove um conjunto de APIs que
  podem ser utilizadas no
  dispositivo
• MIDP 1.0
• MIDP 2.0
• MIDP 3.0
MIDP 1.0
• Prove API para manipulação de
  –UI
  –Conexão HTTP, e Socket
  –RMS
MIDP 2.0
• Evolução do MIDP 1.0, trazendo
  APIs adicionais, para facilitar o
  desenvolvimento de aplicações
• GameAPI
• Media
• HttpsConnection
• Push-Registry
MIDP 3.0
• Traz um conjunto de APIs para
  facilitar ainda mais o
  desenvolvimento
• Pode se ter várias MIDLETs na
  mesma aplicação
• Jogos mais ricos
• Melhorias nas parte de UI e de
  RMS
Pacotes Opcionais
• São bibliotecas para o
  desenvolvimento de funções
  específicas.
• O desenvolvedor escolhe qual pacote
  irá utilizar
• São bibliotecas, que, em geral,
  dependem de recursos presentes em
  dispositivos específicos (Bluetooth,
  Suporte a 3d....)
Pacotes Opcionais

• JSR-75: PDA Profile for J2ME
• JSR-120: WMA - Wireless
  Messaging API
• JSR-135: MMAPI - Mobile Media
  API
• JSR-172: WSA - Web Services
• JSR-179: Location API
Pacotes Opcionais

• JSR-184: M3G - Mobile 3D
  Graphics API
• JSR-229: Payment API
• JSR-172: JAXP XML Parser
• JSR-226: Scalable 2D Vector
  Graphics API
JTWI
• JSR 185 - Java Technology for
  the Wireless Industry
• Tentativa resolver:
   –Fragmentação do Mercado
   –Diferenças de implementações
    entre os fabricantes
MSA
• JSR248 - Mobile Service
  Architecture
• Evolução do JTWI
• Engloba especificações mais
  recentes e nova realidade dos
  celulares
MSA
MSA
Lista de Dispositivos e Suas
       Configurações

• Lista de Dispositivos
MIDLET
• São aplicações escritas para o
  perfil MIDP.
• Deve estender
  javax.microedition.midlet.MIDlet
• São distribuídas em JARs, similar
  a distribuição JavaSE
MIDLET
• MIDLET SUITE:
  –JAR que possui mais de uma
   MIDLET
  –As midlets do JAR, podem
   compartilhar recursos e classes
   dentro do mesmo JAR
MIDLET
• Dentro do JAR que contém a
  MIDLET deve haver o arquivo
  manifesto.
• Além do Manifesto é
  acompanhado ao JAR o descritor
  da aplicação(JAD).
MIDLET
• Nos descritores, são definidos os
  atributos da aplicação como:
  –MIDlet-Name
  –MIDlet-Version
  –MIDlet-Icon
  –MicroEdition-Profile
  –MicroEdition-Configuration
MIDLET- Ciclo de Vida
Bibliografia
• http://tinyurl.com/2v8lq6
• http://tinyurl.com/35pm8v
• Muchow, John W. “Core J2me -
  Tecnologia & Midp”. Editora
  MAKRON BOOKS

Contenu connexe

Tendances

Inteligência Artificial
Inteligência ArtificialInteligência Artificial
Inteligência ArtificialLincolm Aguiar
 
Desenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveisDesenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveisMarcelo Quinta
 
Internet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicaçõesInternet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicaçõesFabio Souza
 
Mini Curso Sistemas Embarcados
Mini Curso Sistemas EmbarcadosMini Curso Sistemas Embarcados
Mini Curso Sistemas EmbarcadosSuzana Viana Mota
 
Ciência de Dados: a revolução na tomada de decisões
Ciência de Dados: a revolução na tomada de decisõesCiência de Dados: a revolução na tomada de decisões
Ciência de Dados: a revolução na tomada de decisõesMarlesson Santana
 
Apresentação de Internet
Apresentação de InternetApresentação de Internet
Apresentação de InternetCDP_Online
 
Apresentacao - Introducao Informatica.ppt
Apresentacao - Introducao Informatica.pptApresentacao - Introducao Informatica.ppt
Apresentacao - Introducao Informatica.pptJunioSantos28
 
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional AndroidLucas Damasceno
 
Visão geral do sistema operacional
Visão geral do sistema operacionalVisão geral do sistema operacional
Visão geral do sistema operacionalLuciano Crecente
 
Introdução a Ciência de Dados
Introdução a Ciência de DadosIntrodução a Ciência de Dados
Introdução a Ciência de DadosNauber Gois
 
Aula 01: introdução à informática aplicada
Aula 01:  introdução à informática aplicadaAula 01:  introdução à informática aplicada
Aula 01: introdução à informática aplicadaRubens Vinicius Conte
 
A Internet das Coisas
A Internet das CoisasA Internet das Coisas
A Internet das CoisasLuiz Avila
 
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERBanco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERRangel Javier
 

Tendances (20)

Inteligência Artificial
Inteligência ArtificialInteligência Artificial
Inteligência Artificial
 
Desenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveisDesenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveis
 
Internet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicaçõesInternet das Coisas - Conceitos, tecnologias e aplicações
Internet das Coisas - Conceitos, tecnologias e aplicações
 
Informatica Aplicada
Informatica AplicadaInformatica Aplicada
Informatica Aplicada
 
Mini Curso Sistemas Embarcados
Mini Curso Sistemas EmbarcadosMini Curso Sistemas Embarcados
Mini Curso Sistemas Embarcados
 
Ciência de Dados: a revolução na tomada de decisões
Ciência de Dados: a revolução na tomada de decisõesCiência de Dados: a revolução na tomada de decisões
Ciência de Dados: a revolução na tomada de decisões
 
Big Data - Conceitos Básicos
Big Data - Conceitos BásicosBig Data - Conceitos Básicos
Big Data - Conceitos Básicos
 
internet das coisas .pptx
internet das coisas .pptx internet das coisas .pptx
internet das coisas .pptx
 
Apresentação de Internet
Apresentação de InternetApresentação de Internet
Apresentação de Internet
 
Apresentacao - Introducao Informatica.ppt
Apresentacao - Introducao Informatica.pptApresentacao - Introducao Informatica.ppt
Apresentacao - Introducao Informatica.ppt
 
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional Android
 
Visão geral do sistema operacional
Visão geral do sistema operacionalVisão geral do sistema operacional
Visão geral do sistema operacional
 
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional Android
 
Introdução a Ciência de Dados
Introdução a Ciência de DadosIntrodução a Ciência de Dados
Introdução a Ciência de Dados
 
Palestra Introdução a Big Data
Palestra Introdução a Big DataPalestra Introdução a Big Data
Palestra Introdução a Big Data
 
Aula 01: introdução à informática aplicada
Aula 01:  introdução à informática aplicadaAula 01:  introdução à informática aplicada
Aula 01: introdução à informática aplicada
 
A Internet das Coisas
A Internet das CoisasA Internet das Coisas
A Internet das Coisas
 
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERBanco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
 
Hardware e software
Hardware e softwareHardware e software
Hardware e software
 
Internet das Coisas
 Internet das Coisas Internet das Coisas
Internet das Coisas
 

Similaire à Introdução a Java Micro Edition (Java ME)

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 EE netbeans
Java EE netbeansJava EE netbeans
Java EE netbeansReuel Lopes
 
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
 
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
 
Apresentacao jornada-unesp-2011
Apresentacao jornada-unesp-2011Apresentacao jornada-unesp-2011
Apresentacao jornada-unesp-2011Tadeu Araujo
 
Tutorial: Desenvolvimento de aplicacoes moveis com Java
Tutorial: Desenvolvimento de aplicacoes moveis com JavaTutorial: Desenvolvimento de aplicacoes moveis com Java
Tutorial: Desenvolvimento de aplicacoes moveis com JavaPaulo César M Jeveaux
 
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
 
Desenvolvimento de Aplicações Móveis em Java - Parte 1
Desenvolvimento de Aplicações Móveis em Java - Parte 1Desenvolvimento de Aplicações Móveis em Java - Parte 1
Desenvolvimento de Aplicações Móveis em Java - Parte 1Waldir R. Pires Jr
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2Carlos Eugenio Torres
 
18804691 java-for-s60-java-me-and-msa-for-smart-phones
18804691 java-for-s60-java-me-and-msa-for-smart-phones18804691 java-for-s60-java-me-and-msa-for-smart-phones
18804691 java-for-s60-java-me-and-msa-for-smart-phonesJuarez Junior
 
Desenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaDesenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaWaldir R. Pires Jr
 
Desenvolvimento aplicacoesdispositivosmoveis
Desenvolvimento aplicacoesdispositivosmoveisDesenvolvimento aplicacoesdispositivosmoveis
Desenvolvimento aplicacoesdispositivosmoveisJuarez Junior
 
18803468 desenvolvimento-de-aplicacoes-para-dispositivos-moveis
18803468 desenvolvimento-de-aplicacoes-para-dispositivos-moveis18803468 desenvolvimento-de-aplicacoes-para-dispositivos-moveis
18803468 desenvolvimento-de-aplicacoes-para-dispositivos-moveisJuarez Junior
 
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
 
Treinamento Android Nooclix
Treinamento Android NooclixTreinamento Android Nooclix
Treinamento Android NooclixIury Teixeira
 

Similaire à Introdução a Java Micro Edition (Java ME) (20)

O Mundo Wireless
O Mundo WirelessO Mundo Wireless
O Mundo Wireless
 
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 EE netbeans
Java EE netbeansJava EE netbeans
Java EE netbeans
 
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
 
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
 
Apresentacao jornada-unesp-2011
Apresentacao jornada-unesp-2011Apresentacao jornada-unesp-2011
Apresentacao jornada-unesp-2011
 
Minicurso Java Me
Minicurso Java MeMinicurso Java Me
Minicurso Java Me
 
Tutorial: Desenvolvimento de aplicacoes moveis com Java
Tutorial: Desenvolvimento de aplicacoes moveis com JavaTutorial: Desenvolvimento de aplicacoes moveis com Java
Tutorial: Desenvolvimento de aplicacoes moveis com Java
 
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
 
Desenvolvimento de Aplicações Móveis em Java - Parte 1
Desenvolvimento de Aplicações Móveis em Java - Parte 1Desenvolvimento de Aplicações Móveis em Java - Parte 1
Desenvolvimento de Aplicações Móveis em Java - Parte 1
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
 
Py S60
Py S60Py S60
Py S60
 
18804691 java-for-s60-java-me-and-msa-for-smart-phones
18804691 java-for-s60-java-me-and-msa-for-smart-phones18804691 java-for-s60-java-me-and-msa-for-smart-phones
18804691 java-for-s60-java-me-and-msa-for-smart-phones
 
Desenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaDesenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em Java
 
Desenvolvimento aplicacoesdispositivosmoveis
Desenvolvimento aplicacoesdispositivosmoveisDesenvolvimento aplicacoesdispositivosmoveis
Desenvolvimento aplicacoesdispositivosmoveis
 
18803468 desenvolvimento-de-aplicacoes-para-dispositivos-moveis
18803468 desenvolvimento-de-aplicacoes-para-dispositivos-moveis18803468 desenvolvimento-de-aplicacoes-para-dispositivos-moveis
18803468 desenvolvimento-de-aplicacoes-para-dispositivos-moveis
 
Desenvolvimento 3G
Desenvolvimento 3GDesenvolvimento 3G
Desenvolvimento 3G
 
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
 
Treinamento Android Nooclix
Treinamento Android NooclixTreinamento Android Nooclix
Treinamento Android Nooclix
 

Plus 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
 

Plus 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 a Java Micro Edition (Java ME)

  • 1. Introdução a Java Micro Edition (Java ME) Anderson Vasconcelos dos Santos Aula 1
  • 2. Agenda • Mercado Mobile • Dispositivos Mobile • Aplicações Mobile • Arquitetura Java ME • MIDLET
  • 3. Mercado Mobile • Existem hoje milhares de dispositivos móveis • No mundo são mais de 2,5 bilhões de aparelhos celulares • O mercado de dispositivos móveis movimenta cerca de 100 bilhões de dólares por ano
  • 4. Mercado Mobile • O mercado de jogos para celular movimentou mais de 1 bilhão de dólares nos Estados Unidos em 2006 • Este mercado cresce 18% ao ano • Em 2008 o mercado mundial de jogos para celular movimentará 8 bilhões de dólares
  • 5. Mercado Mobile • No Brasil há hoje mais de 100 milhões de celulares em operação • O Brasil é o sexto maior mercado do mundo em celulares • O mercado de jogos para celulares no Brasil, movimentou 30 milhões em 2006
  • 6. Mercado Mobile • Há hoje uma disseminação massiva de celulares, smartphones, pdas. • Com o blackberry (por exemplo) pode-se: – Visualizar emails, planilhas, documentos – Fazer reuniões usando o MSN – Gerenciar suas fotos usando o Picasa Mobile – Ver suas noticias preferidas com o Netvibes Mobile
  • 7. Mercado Mobile • As vendas de smartphones no Brasil tiveram um crescimento de 140% • No mundo a taxa de crescimento média será de 28% nos próximos 5 anos
  • 8. Mercado Mobile • Cada vez mais empresas como a Apple, SonyEricsoon, Nokia, investem em tecnologia para dispositivo móveis • Os celulares, pdas e smartphones, a cada dia estão com um maior poder de processamento
  • 9. Mercado Mobile • Com a popularização dos dispositivos móveis surge a necessidade de aplicações para essa grande massa de consumidores • Segundo a InfoExame de setembro de 2007, o desenvolvimento de aplicações para dispositivos móveis é algo bastante promissor
  • 10. Tipos de Dispositivos • Celulares • PDA´s (Personal Digital Assistence) –Palm –PocketPC • Smartphones –Symbian –Window Mobile –Palm –BlackBerry
  • 11. Tipos de Aplicações • Jogos 2D e 3D • Aplicações Corporativas, com conexão a servidores web • Aplicações Corporativas off-line • Aplicações que gerenciam o conteúdo do dispositivo.
  • 12. Tipos de Aplicações • Aplicações que usam tecnologias específicas do dispositivo –Bluetooth –GPS –Captura de Imagem, Vídeo e Som
  • 13. O que é Java ME
  • 14. O que é Java ME • Java ME é uma coleção de tecnologias e especificações (JSRs) • Java ME usa um subconjuntos de componentes Java SE, tais como maquinas virtuais menores e APIs mais enxutas
  • 15. Arquitetura Java ME • KVM • Configurations –CDC –CLDC • Profiles –MIDP 1.0, 2.0 e 3.0 • Pacotes Opcionais • JTWI e MSA
  • 16. KVM • Kilobyte Virtual Machine • Utilizada em dispositivos mais limitados para a configuração CLDC • Ela não possui todos os recursos da JVM, porém executa em um sistema de 16 a 32 bits e um total de 160 Kb a 512 Kb de memória
  • 17. Configurations • Fornece um ambiente Java completo. • O conjunto de classes é pequeno e deve ser estendido por perfis. Não implementa classes de interface com o usuário.
  • 18. Configurations • Uma configuração é divida em: –Código proprietário que faz interface com o sistema provido pelo dispositivo –Um conjunto de APIs básicas (subjconjunto da Java SE)
  • 19. CDC • Connected Device Configuration • Utilizada em dispositivos com maior capacidade de processamento e memória • Presente em PDAs, smartphones • Suporta Ponto Flutuante
  • 20. CLDC • Connected Limited Device Configuration • Utilizada em dispositivos com recursos limitados de processamento e memória • Presente em celulares, pagers entre outros.
  • 21. CLDC • CLDC 1.0 Não suporta Ponto Flutuante • CLDC 1.1 Suporta Ponto Flutuante
  • 22. Java SE X CDC X CLDC
  • 23. Profiles • São mais específicas que as configurações • Provêem um conjunto de APIs para auxiliar o desenvolvimento de aplicações
  • 24. Profiles • Tipos: –Foundation Profile: usado em dispositivos que possuem CDC –MIDP: usado em dispositivos que possuem CLDC
  • 25. Profiles –Information Module Profile (IMP): subset do MIDP, para dispositivos sem capacidade gráfica –Personal Profile (PP): dispositivos com capacidades gráficas avançadas
  • 26. MIDP • Mobile Information Device Profile • Prove um conjunto de APIs que podem ser utilizadas no dispositivo • MIDP 1.0 • MIDP 2.0 • MIDP 3.0
  • 27. MIDP 1.0 • Prove API para manipulação de –UI –Conexão HTTP, e Socket –RMS
  • 28. MIDP 2.0 • Evolução do MIDP 1.0, trazendo APIs adicionais, para facilitar o desenvolvimento de aplicações • GameAPI • Media • HttpsConnection • Push-Registry
  • 29. MIDP 3.0 • Traz um conjunto de APIs para facilitar ainda mais o desenvolvimento • Pode se ter várias MIDLETs na mesma aplicação • Jogos mais ricos • Melhorias nas parte de UI e de RMS
  • 30. Pacotes Opcionais • São bibliotecas para o desenvolvimento de funções específicas. • O desenvolvedor escolhe qual pacote irá utilizar • São bibliotecas, que, em geral, dependem de recursos presentes em dispositivos específicos (Bluetooth, Suporte a 3d....)
  • 31. Pacotes Opcionais • JSR-75: PDA Profile for J2ME • JSR-120: WMA - Wireless Messaging API • JSR-135: MMAPI - Mobile Media API • JSR-172: WSA - Web Services • JSR-179: Location API
  • 32. Pacotes Opcionais • JSR-184: M3G - Mobile 3D Graphics API • JSR-229: Payment API • JSR-172: JAXP XML Parser • JSR-226: Scalable 2D Vector Graphics API
  • 33. JTWI • JSR 185 - Java Technology for the Wireless Industry • Tentativa resolver: –Fragmentação do Mercado –Diferenças de implementações entre os fabricantes
  • 34. MSA • JSR248 - Mobile Service Architecture • Evolução do JTWI • Engloba especificações mais recentes e nova realidade dos celulares
  • 35. MSA
  • 36. MSA
  • 37. Lista de Dispositivos e Suas Configurações • Lista de Dispositivos
  • 38. MIDLET • São aplicações escritas para o perfil MIDP. • Deve estender javax.microedition.midlet.MIDlet • São distribuídas em JARs, similar a distribuição JavaSE
  • 39. MIDLET • MIDLET SUITE: –JAR que possui mais de uma MIDLET –As midlets do JAR, podem compartilhar recursos e classes dentro do mesmo JAR
  • 40. MIDLET • Dentro do JAR que contém a MIDLET deve haver o arquivo manifesto. • Além do Manifesto é acompanhado ao JAR o descritor da aplicação(JAD).
  • 41. MIDLET • Nos descritores, são definidos os atributos da aplicação como: –MIDlet-Name –MIDlet-Version –MIDlet-Icon –MicroEdition-Profile –MicroEdition-Configuration
  • 43. Bibliografia • http://tinyurl.com/2v8lq6 • http://tinyurl.com/35pm8v • Muchow, John W. “Core J2me - Tecnologia & Midp”. Editora MAKRON BOOKS