SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
Introdução a Programação de Dispositivos Móveis
• Sistemas de Informação, UFC-Quixadá   (5º semestre)


• Bolsista UFC:
  Monitor do Laboratório de Mobilidade e
  Tecnologia da Informação (MobiTI)

• Mais? www.igorpimentel.com
• 02/09
  –   Introdução
  –   Por que desenvolver para dispositivos móveis?
  –   Plataformas
  –   Por que Java ME?
  –   Java ME - Conceitos básicos
  –   Ambiente de Desenvolvimento
  –   Distribuição
  –   Hello World
  –   Praticando
• 04/09
  – Exemplos (Prática)
•   Pequenos em tamanho
•   Memória limitada (Primária e secundária)
•   Poder de processamento limitado
•   Baixo consumo de energia
•   Robusto e confiável
•   Conectividade limitada
•   Curto tempo de inicialização
• Clientes potenciais em constante crescimento
• Existe vários fabricantes, modelos e
  funcionalidades
• Crescimento explosivo de dispositivos móveis
  – Celulares, PDAs, notebooks, netbooks, tocadores de
    mídia, ...
• Diferentes recursos de multimídia
  – Tela, captura de imagens, armazenamento,
    processamento, comunicação
• Redes Móveis
  – Maior largura de banda, melhor cobertura
• Conteúdo
  – Crescimento da mídia digital
  – Mudanças na forma como o conteúdo é produzido
• Tipos de aplicações
  –   Comunicação via voz
  –   Navegação pela Web
  –   Acesso a arquivos de mídia
  –   GPS
  –   Jogos
  –   Conectando com pessoas...
• Baseado em Java      • Não Java
  –   Sun JavaME         – Symbian (C/C++,
  –   SuperWaba            Python)
  –   Google Android     – Windows Mobile (Dot
  –   RIM Blackberry       Net Compact
                           Framework)
                         – PalmOS, Pocket PC
                           (C/C++)
                         – IPhone (Objective C)
                         – BREW (C/C++)
                         – Microbrowser (XHTML)
                         – FlashLite (ActionScript)
Introdução a Programação de Dispositivos Móveis
• Como programar em uma única linguagem de
  forma a garantir que a aplicação possa
  funcionar nos diversos tipos de dispositivos?
  –   Independência de Plataforma
  –   Orientação a Objetos
  –   Networking
  –   Segurança
  –   Tratamento de Exceções
  –   Multithreads
  –   ...e o mais importante, PADRONIZAÇÃO
• 1995: Surgimento da linguagem Java
• 1999:
  – Lançado o Java2 (Java 1.2)
  – Divisão das 3 plataformas:
     • J2EE (Java2 Enterprise Edition)
     • J2SE (Java2 Standard Edition)
     • J2ME (Java2 Micro Edition)
• 2006:
  – Nova nomenclatura – Tachal “2”:
     • JEE (Java Enterprise Edition)
     • JSE (Java Standard Edition)
     • JME (Java Micro Edition)
• Java EE
  Plataforma voltada a aplicações coorporativas, no lado do servidor.
• Java SE
  Plataforma para aplicações do lado do cliente e demais aplicativos
  para computadores pessoais.
• Java ME
  Plataforma Java voltada ao desenvolvimento de aplicações
  executadas em dispositivos com limitados recursos de hardware.
O Java ME é uma versão reduzida da
plataforma Java que permite que aplicativos
sejam criados para dispositivos móveis com
diversas vantagens da plataforma Java.
Projetado para dispositivos com limitações de
memória, tela e processamento.


ATENÇÃO!
– JME == Java Micro Edition
– JME != Java Mobile Edition
Introdução a Programação de Dispositivos Móveis
Introdução a Programação de Dispositivos Móveis
• Define uma plataforma Java para uma ampla
  variedade de dispositivos
• Define recursos da linguagem Java e as
  bibliotecas Java básicas da JVM para essa
  configuração específica
• Leva em consideração
  – Memória, vídeo, conectividade e processamento
• Principais configurações
  – Conected Device Configuration (CDC)
  – Conected, Limited Device Configuration (CLDC)
• Conjunto de API’s que complementa uma
  “Configuração” para prover funcionalidades para
  um determinado mercado ou dispositivo.
• O perfil ajuda na portabilidade das aplicações
• Principal configuração
  – Mobile Information Device Profile (MIDP)
     • Aplicações em dispositivos wireless sobre a CLDC
• As JVMs transformam os arquivos .class em
  código de máquina para a plataforma específica
• Isto torna os programas escritos em Java
  independentes de plataforma de execução
• Cada SO deve possuir uma implementação da
  JVM
• Para o CDC
  – Mesma especificação da JVM do J2SE
• Para o CLDC
  – Kilo Virtual Machine (KVM)
• CDC – Connected Device Configuration
  – Especifica o ambiente Java para TV Digital,
    dispositivos sem fio de alto nível e sistemas
    automotivos.
  – Dispositivos com cerca de 2MB de RAM (alguns
    PDA’s, telefones 3G, etc.)
• CLDC – Connected Limited Device
  Configuration
  – Especifica o ambiente Java para telefones celulares,
    pagers e PDAs.
  – Equipamentos com baixíssimos níveis de
    processamento e capacidade de memória.
• CLDC
• Foi o primeiro perfil do Java ME
• É 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
•   128 kB de memória não volátil;
•   32 kB para heap;
•   8 kB para persistência de dados;
•   Tela de 96x54 pixels;
•   Entrada de dados;
•   Conexões de rede (intermitentes);
•   Segurança – conceito de sandbox das applets;
• Segurança: baseado em permissões do JSE;
• Novas API´s para aprimorar o desenvolvimento:
  – Game API;
  – Media API;
  – Secure Connection API;
• Uma aplicação MIDP é chamada de MIDlet. O
  software de gerenciamento da aplicação (AMS -
  Application Management Software) do
  dispositivo interage diretamente com o MIDlet
  com os métodos de criar, iniciar, pausar e
  destruir o MIDlet.
• O MIDlet é parte do pacote
  javax.microedition.midlet. Necessita estender a
  classe MIDlet. E pode requisitar parâmetros do
  AMS conforme definido no descritor da
  aplicação (JAD – Java Application Descriptor).
Introdução a Programação de Dispositivos Móveis
• Start – Onde é feita a Aquisição de
  recursos inicializando a execução
  (startApp);
• Pause – Liberação de recursos em um
  modo de espera, ou seja, pausado
  utilizado ao atender telefone, receber SMS
  dentre outra aplicação (pauseApp);
• Destroy – Liberação de todos os recursos
  (destroyApp);
• Hierarquia dos principais componentes gráficos
• Alguns recursos disponíveis:
   – RMS - Record Management System
   – GCF - Generic Connection Framework


• Principais pacotes opcionais:
   –   JABWT - Java API for Bluetooth
   –   WMA - Wireless Messaging API
   –   MMAPI - Mobile Media API
   –   WSA - J2ME Web Service API
   –   Game API
   –   Telephony API
• É preciso ter instalado:
   – JDK (Java Development Kit);
   – WTK (JME Wireless Toolkit);
   – IDE ou Editor para os códigos:
      •   Eclipse + EclipseME
      •   NetBeans + Mobility Pack;
      •   Gel;
      •   JBuilder;
• Ferramenta principal para desenvolvimento de
  J2ME MIDP
• Emula vários dispositivos e possibilita que
  outros sejam instalados.
• Possibilita conexão e na versão 2, testes de
  SMS e MMS
• É possível controlar a taxa de transmissão,
  quantidade de memória, tipo de http
Introdução a Programação de Dispositivos Móveis
Introdução a Programação de Dispositivos Móveis
• MIDlets precisam ser empacotados
  corretamente antes de serem enviados a um
  dispositivo para instalação. A classe principal
  MIDlet que age como o ponto de entrada
  principal para o MIDlet, juntamente com as
  classes que você construiu e quaisquer imagens
  ou outros arquivos para os quais precisa de
  acesso em tempo de execução, precisam ser
  empacotados em um único arquivo JAR.
• Um arquivo JAR (Java Archive file) contém a
  definição de empacotamento dos arquivos que
  são necessários para rodar a aplicação.
  Também é provida informação de
  empacotamento semelhante em outro arquivo
  chamado Java Aplication Descriptor (ou JAD)
  que é tratado separadamente do JAR. Um JAR
  pode conter mais de um MIDlet, neste caso
  todos os MIDlets devem estar dentro do mesmo
  MIDlet suite. O arquivo JAR deve conter todos
  os arquivos que fazem parte de um MIDlet suite
• Conteúdo de um arquivo JAD
MIDlet-1: Teste, Teste.png, Teste
MIDlet-Jar-Size: 100
MIDlet-Jar-URL: Teste.jar
MIDlet-Name: Teste
MIDlet-Vendor: Unknown
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-2.0
1.    // Bibliotecas Básicas:
2.    import javax.microedition.lcdui.*;
3.    import javax.microedition.midlet.*;
4.
5.    public class OlaMundo extends MIDlet implements CommandListener
6.    {
7.       private Display display;
8.       private Form formPrincipal;
9.       private Command cmdSair;
10.
11.      // Construtor:
12.      public AloMundo() {
13.              display = Display.getDisplay(this);
14.              formPrincipal = new Form("Titulo formPrincipal");
15.              cmdSair = new Command("Sair", Command.EXIT, 1);
16.
17.             formPrincipal.append(“Olá mundo!");
18.             formPrincipal.addCommand(cmdSair);
19.             formPrincipal.setCommandListener(this);
20.      }
21.     // Método chamado na inicialização do MIDlet
22.     public void startApp() {
23.                  display.setCurrent(formPrincipal);
24.     }
25.
26.     // Método chamado quando o MIDlet é pausado
27.     public void pauseApp() {}
28.
29.     // Método chamado quando o MIDlet é fechado
30.     public void destroyApp(boolean unconditional) {}
31.
32.     // Método chamado quando algum command é ativado
33.     public void commandAction(Command cmd, Displayable dis)   {
34.             if (cmd == cmdSair) {
35.                    destroyApp(false);
36.                    notifyDestroyed();
37.             }
38.     }
39. }
• Iniciem o NetBeans...
• JME (Java Micro Edition) é a plataforma Java direcionada para
  micro aplicativos. Ou seja, aplicativos destinados a dispositivos
  que possuem processamento, memória e vídeo limitados, como
  celulares, PDA’s, TVs, controle remotos e outros embarcados.
• A arquitetura JME é dividida em Configurações, Perfis, Máquina
  Virtual e API’s opcionais.
• As configurações definem as bibliotecas que são necessárias para
  o funcionamento da máquina virtual (JVM). As principais são: CLDC
  (Connected, Limited Device Configuration) e CDC (Connected
  Device Configuration).
• A primeira é destinada a dispositivos mais simples e menores, como
  celulares, pagers e PDAs, que possuem processamento de 16/32
  bits e memória de 128/512 kb. A segunda rege os dispositivos com
  capacidade um pouco maior: com pelo menos 32bits de
  processamento e 2 MegaBytes de memória, como TV digital,
  dispositivos sem fio de alto nível e sistemas automotivos.
• Os perfis são um conjunto de aplicações que complementam uma
  configuração e fornecem funcionalidades para desenvolver um
  aplicativo para um determinado dispositivo.
• Perfis para a configuração CLDC: MIDP (Mobile Information
  Device Profile) e PDAP (PDA Profile).
• MIDP é a biblioteca necessária para a execução de qualquer
  aplicativo escrito para J2ME, os chamados MIDlets. Ele possui
  classes de interface com o usuário e acesso a rede, entre outros. E
  PDAP é um ambiente de execução especialmente para PDAs.
• Para a CDC temos o Foundation Profile e o Personal Basis Profile.
  O primeiro é um perfil para dispositivos interconectados em rede e
  sem interface gráfica. E o segundo oferece suporte a gráficos.
• Quanto a máquina virtual temos a CVM (Compact Virtual Machine),
  que é vinculada a configuração CDC e a KVM (Kilo Virtual Machine)
  que é vinculada a CLDC.
Fonte: www.javamovel.com
• Java: www.java.com
• JDK (Java Development Kit):
  http://java.sun.com/javase/downloads
• Netbeans: www.netbeans.org
• Eclipse: www.eclipse.org
• Plugin EclipseME: www.eclipseme.org
• WTK (JME Wireless Toolkit):
  http://java.sun.com/javame/downloads
• Referêcnias:
  www.javafree.org
  www.javamovel.com
Introdução a Programação de Dispositivos Móveis

Contenu connexe

Tendances

Arquitetura de dispositivos móveis
Arquitetura de dispositivos móveis Arquitetura de dispositivos móveis
Arquitetura de dispositivos móveis Italo Andrade
 
Seminário sistemas operacionais móveis
Seminário sistemas operacionais móveisSeminário sistemas operacionais móveis
Seminário sistemas operacionais móveisArthur Azevedo
 
Teste para dispositivos móveis - EATS Manaus 2014
Teste para dispositivos móveis - EATS Manaus 2014Teste para dispositivos móveis - EATS Manaus 2014
Teste para dispositivos móveis - EATS Manaus 2014Luana Lobão
 
Arquitetura de Celulares
Arquitetura de CelularesArquitetura de Celulares
Arquitetura de CelularesMurilknot
 
Sistemas operacionais mobile
Sistemas operacionais mobileSistemas operacionais mobile
Sistemas operacionais mobileDaniel Brandão
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento MobileElton Minetto
 
Apresentação - Sistemas Operacionais para Smartphones
Apresentação - Sistemas Operacionais para SmartphonesApresentação - Sistemas Operacionais para Smartphones
Apresentação - Sistemas Operacionais para SmartphonesTiago Carmo
 
Aula 1- Fundamentos da computação móvel
Aula 1- Fundamentos da computação móvelAula 1- Fundamentos da computação móvel
Aula 1- Fundamentos da computação móvelJanynne Gomes
 
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
 
Dispositivos Móveis - Mobile
Dispositivos Móveis - MobileDispositivos Móveis - Mobile
Dispositivos Móveis - Mobileruirodas
 
Resumo Desenvolvimento Mobile
Resumo Desenvolvimento MobileResumo Desenvolvimento Mobile
Resumo Desenvolvimento MobileCícero Moura
 
Aula: Características dos dispositivos móveis
Aula: Características dos dispositivos móveisAula: Características dos dispositivos móveis
Aula: Características dos dispositivos móveisJanynne Gomes
 
Arquitetura celular arm
Arquitetura celular armArquitetura celular arm
Arquitetura celular armCarlos Magno
 
Desenvolvendo aplicações móveis
Desenvolvendo aplicações móveisDesenvolvendo aplicações móveis
Desenvolvendo aplicações móveiscedulio
 
Sergio antao 03_s_tc5_final
Sergio antao 03_s_tc5_finalSergio antao 03_s_tc5_final
Sergio antao 03_s_tc5_finalSérgio Antao
 
Apresentacao jornada-unesp-2011
Apresentacao jornada-unesp-2011Apresentacao jornada-unesp-2011
Apresentacao jornada-unesp-2011Tadeu Araujo
 

Tendances (20)

Arquitetura de dispositivos móveis
Arquitetura de dispositivos móveis Arquitetura de dispositivos móveis
Arquitetura de dispositivos móveis
 
Seminário sistemas operacionais móveis
Seminário sistemas operacionais móveisSeminário sistemas operacionais móveis
Seminário sistemas operacionais móveis
 
Dispositivos móveis
Dispositivos móveisDispositivos móveis
Dispositivos móveis
 
Teste para dispositivos móveis - EATS Manaus 2014
Teste para dispositivos móveis - EATS Manaus 2014Teste para dispositivos móveis - EATS Manaus 2014
Teste para dispositivos móveis - EATS Manaus 2014
 
Arquitetura de Celulares
Arquitetura de CelularesArquitetura de Celulares
Arquitetura de Celulares
 
Sistemas operacionais mobile
Sistemas operacionais mobileSistemas operacionais mobile
Sistemas operacionais mobile
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
 
Apresentação - Sistemas Operacionais para Smartphones
Apresentação - Sistemas Operacionais para SmartphonesApresentação - Sistemas Operacionais para Smartphones
Apresentação - Sistemas Operacionais para Smartphones
 
Aula 1- Fundamentos da computação móvel
Aula 1- Fundamentos da computação móvelAula 1- Fundamentos da computação móvel
Aula 1- Fundamentos da computação móvel
 
SISTEMAS OPERACIONAIS MÓVEIS (S.O)
SISTEMAS OPERACIONAIS MÓVEIS (S.O)SISTEMAS OPERACIONAIS MÓVEIS (S.O)
SISTEMAS OPERACIONAIS MÓVEIS (S.O)
 
Dispositivos Móveis - Mobile
Dispositivos Móveis - MobileDispositivos Móveis - Mobile
Dispositivos Móveis - Mobile
 
Resumo Desenvolvimento Mobile
Resumo Desenvolvimento MobileResumo Desenvolvimento Mobile
Resumo Desenvolvimento Mobile
 
Aula: Características dos dispositivos móveis
Aula: Características dos dispositivos móveisAula: Características dos dispositivos móveis
Aula: Características dos dispositivos móveis
 
Arquitetura celular arm
Arquitetura celular armArquitetura celular arm
Arquitetura celular arm
 
Sistemas operacionais I - trabalho software movel
Sistemas  operacionais I - trabalho software movelSistemas  operacionais I - trabalho software movel
Sistemas operacionais I - trabalho software movel
 
Desenvolvendo aplicações móveis
Desenvolvendo aplicações móveisDesenvolvendo aplicações móveis
Desenvolvendo aplicações móveis
 
Ciclo de palestras da JFRJ - Aplicativos Móveis
Ciclo de palestras da JFRJ - Aplicativos MóveisCiclo de palestras da JFRJ - Aplicativos Móveis
Ciclo de palestras da JFRJ - Aplicativos Móveis
 
Sergio antao 03_s_tc5_final
Sergio antao 03_s_tc5_finalSergio antao 03_s_tc5_final
Sergio antao 03_s_tc5_final
 
TelemóVeis E Sistemas Operativos
TelemóVeis E Sistemas OperativosTelemóVeis E Sistemas Operativos
TelemóVeis E Sistemas Operativos
 
Apresentacao jornada-unesp-2011
Apresentacao jornada-unesp-2011Apresentacao jornada-unesp-2011
Apresentacao jornada-unesp-2011
 

En vedette

Tipos de Aplicações Móveis
Tipos de Aplicações MóveisTipos de Aplicações Móveis
Tipos de Aplicações MóveisNeilor Caldeira
 
Palestra Dispositivos Móveis
Palestra Dispositivos MóveisPalestra Dispositivos Móveis
Palestra Dispositivos MóveisGrendene S/A
 
Competências para aprender e competências para ensinar COM TIC
Competências para aprender e competências para ensinar COM TICCompetências para aprender e competências para ensinar COM TIC
Competências para aprender e competências para ensinar COM TICFernando Albuquerque Costa
 
Programação de dispositivos móveis com Java ME e NetBeans - Leandro Nunes
Programação de dispositivos móveis com Java ME e NetBeans - Leandro NunesProgramação de dispositivos móveis com Java ME e NetBeans - Leandro Nunes
Programação de dispositivos móveis com Java ME e NetBeans - Leandro NunesTchelinux
 
Histórias, Mitos e Aspirações das TIC na Educação em Portugal
Histórias, Mitos e Aspirações das TIC na Educação em PortugalHistórias, Mitos e Aspirações das TIC na Educação em Portugal
Histórias, Mitos e Aspirações das TIC na Educação em PortugalAntonio Dias de Figueiredo
 
Mini Curso de Design de Interfaces para Dispositivos Móveis
Mini Curso de Design de Interfaces para Dispositivos MóveisMini Curso de Design de Interfaces para Dispositivos Móveis
Mini Curso de Design de Interfaces para Dispositivos MóveisPaolo Passeri
 
Dispositivos Móveis - BlackBerry
Dispositivos Móveis - BlackBerryDispositivos Móveis - BlackBerry
Dispositivos Móveis - BlackBerryValdir Junior
 
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha TouchIntrodução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha TouchLeonardo Soares
 
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveisSeminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveisRogério Moraes de Carvalho
 
Pesquisa analisa o mercado de mobile e de m-commerce no Brasil
Pesquisa analisa o mercado de mobile e de m-commerce no BrasilPesquisa analisa o mercado de mobile e de m-commerce no Brasil
Pesquisa analisa o mercado de mobile e de m-commerce no BrasilHi-Midia
 
Android - Programação para dispositivos móveis (Aula 2)
Android - Programação para dispositivos móveis (Aula 2)Android - Programação para dispositivos móveis (Aula 2)
Android - Programação para dispositivos móveis (Aula 2)Ricardo Longa
 
Android N, Java 8, Android Studio 2.2?
Android N, Java 8, Android Studio 2.2?Android N, Java 8, Android Studio 2.2?
Android N, Java 8, Android Studio 2.2?Marcelo Quinta
 

En vedette (14)

Tipos de Aplicações Móveis
Tipos de Aplicações MóveisTipos de Aplicações Móveis
Tipos de Aplicações Móveis
 
Dispositivos Móveis
Dispositivos MóveisDispositivos Móveis
Dispositivos Móveis
 
Palestra Dispositivos Móveis
Palestra Dispositivos MóveisPalestra Dispositivos Móveis
Palestra Dispositivos Móveis
 
Dispositivos móveis na aula: apredizagem apoiada em projetos
Dispositivos móveis na aula: apredizagem apoiada em projetosDispositivos móveis na aula: apredizagem apoiada em projetos
Dispositivos móveis na aula: apredizagem apoiada em projetos
 
Competências para aprender e competências para ensinar COM TIC
Competências para aprender e competências para ensinar COM TICCompetências para aprender e competências para ensinar COM TIC
Competências para aprender e competências para ensinar COM TIC
 
Programação de dispositivos móveis com Java ME e NetBeans - Leandro Nunes
Programação de dispositivos móveis com Java ME e NetBeans - Leandro NunesProgramação de dispositivos móveis com Java ME e NetBeans - Leandro Nunes
Programação de dispositivos móveis com Java ME e NetBeans - Leandro Nunes
 
Histórias, Mitos e Aspirações das TIC na Educação em Portugal
Histórias, Mitos e Aspirações das TIC na Educação em PortugalHistórias, Mitos e Aspirações das TIC na Educação em Portugal
Histórias, Mitos e Aspirações das TIC na Educação em Portugal
 
Mini Curso de Design de Interfaces para Dispositivos Móveis
Mini Curso de Design de Interfaces para Dispositivos MóveisMini Curso de Design de Interfaces para Dispositivos Móveis
Mini Curso de Design de Interfaces para Dispositivos Móveis
 
Dispositivos Móveis - BlackBerry
Dispositivos Móveis - BlackBerryDispositivos Móveis - BlackBerry
Dispositivos Móveis - BlackBerry
 
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha TouchIntrodução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch
 
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveisSeminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
 
Pesquisa analisa o mercado de mobile e de m-commerce no Brasil
Pesquisa analisa o mercado de mobile e de m-commerce no BrasilPesquisa analisa o mercado de mobile e de m-commerce no Brasil
Pesquisa analisa o mercado de mobile e de m-commerce no Brasil
 
Android - Programação para dispositivos móveis (Aula 2)
Android - Programação para dispositivos móveis (Aula 2)Android - Programação para dispositivos móveis (Aula 2)
Android - Programação para dispositivos móveis (Aula 2)
 
Android N, Java 8, Android Studio 2.2?
Android N, Java 8, Android Studio 2.2?Android N, Java 8, Android Studio 2.2?
Android N, Java 8, Android Studio 2.2?
 

Similaire à 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óveisJoão Gabriel Lima
 
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 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 a JavaME
Introdução a JavaMEIntrodução a JavaME
Introdução a JavaMEfrgo
 
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
 
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
 
Minicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseMinicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseNécio de Lima Veras
 
Aplicações Móveis com J2ME
Aplicações Móveis com J2MEAplicações Móveis com J2ME
Aplicações Móveis com J2MEelliando dias
 
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
 
Aplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEAplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEJoão Longo
 
Introdução a Java Micro Edition (Java ME)
Introdução a Java Micro Edition (Java ME)Introdução a Java Micro Edition (Java ME)
Introdução a Java Micro Edition (Java ME)elliando dias
 
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
 
APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)Walanem Figueiredo
 

Similaire à Introdução a Programação de Dispositivos Móveis (20)

Java para dispositivos móveis
Java para dispositivos móveisJava para dispositivos móveis
Java para dispositivos móveis
 
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
 
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
 
Introdução a JavaME
Introdução a JavaMEIntrodução a JavaME
Introdução a JavaME
 
JavaME - Aula 1
JavaME - Aula 1JavaME - Aula 1
JavaME - Aula 1
 
Introducao ao J2ME
Introducao ao J2MEIntroducao ao J2ME
Introducao ao J2ME
 
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
 
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
 
Minicurso de TotalCross e Litebase
Minicurso de TotalCross e LitebaseMinicurso de TotalCross e Litebase
Minicurso de TotalCross e Litebase
 
Aplicações Móveis com J2ME
Aplicações Móveis com J2MEAplicações Móveis com J2ME
Aplicações Móveis com J2ME
 
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
 
Minicurso Java Me
Minicurso Java MeMinicurso Java Me
Minicurso Java Me
 
Aplicativos Moveis Com J2ME
Aplicativos Moveis Com J2MEAplicativos Moveis Com J2ME
Aplicativos Moveis Com J2ME
 
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional Android
 
Introdução a Java Micro Edition (Java ME)
Introdução a Java Micro Edition (Java ME)Introdução a Java Micro Edition (Java ME)
Introdução a Java Micro Edition (Java ME)
 
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
 
JavaME
JavaMEJavaME
JavaME
 
APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)
 

Plus de igorpimentel

Introdução ao framework CakePHP
Introdução ao framework CakePHPIntrodução ao framework CakePHP
Introdução ao framework CakePHPigorpimentel
 
TCC I - Igor Pimentel
TCC I - Igor PimentelTCC I - Igor Pimentel
TCC I - Igor Pimenteligorpimentel
 
Desenvolvimento Web Parte I
Desenvolvimento Web Parte IDesenvolvimento Web Parte I
Desenvolvimento Web Parte Iigorpimentel
 
Ferramentas Livres para Desenvolvimento Web
Ferramentas Livres para Desenvolvimento WebFerramentas Livres para Desenvolvimento Web
Ferramentas Livres para Desenvolvimento Webigorpimentel
 
Montando sites com XHTML e CSS utilizando os padrões web
Montando sites com XHTML e CSS utilizando os padrões webMontando sites com XHTML e CSS utilizando os padrões web
Montando sites com XHTML e CSS utilizando os padrões webigorpimentel
 
Desenvolvimento Web Parte II
Desenvolvimento Web Parte IIDesenvolvimento Web Parte II
Desenvolvimento Web Parte IIigorpimentel
 

Plus de igorpimentel (7)

Introdução ao framework CakePHP
Introdução ao framework CakePHPIntrodução ao framework CakePHP
Introdução ao framework CakePHP
 
TCC I - Igor Pimentel
TCC I - Igor PimentelTCC I - Igor Pimentel
TCC I - Igor Pimentel
 
Desenvolvimento Web Parte I
Desenvolvimento Web Parte IDesenvolvimento Web Parte I
Desenvolvimento Web Parte I
 
Ferramentas Livres para Desenvolvimento Web
Ferramentas Livres para Desenvolvimento WebFerramentas Livres para Desenvolvimento Web
Ferramentas Livres para Desenvolvimento Web
 
Montando sites com XHTML e CSS utilizando os padrões web
Montando sites com XHTML e CSS utilizando os padrões webMontando sites com XHTML e CSS utilizando os padrões web
Montando sites com XHTML e CSS utilizando os padrões web
 
Desenvolvimento Web Parte II
Desenvolvimento Web Parte IIDesenvolvimento Web Parte II
Desenvolvimento Web Parte II
 
Si Para Web
Si Para WebSi Para Web
Si Para Web
 

Introdução a Programação de Dispositivos Móveis

  • 2. • Sistemas de Informação, UFC-Quixadá (5º semestre) • Bolsista UFC: Monitor do Laboratório de Mobilidade e Tecnologia da Informação (MobiTI) • Mais? www.igorpimentel.com
  • 3. • 02/09 – Introdução – Por que desenvolver para dispositivos móveis? – Plataformas – Por que Java ME? – Java ME - Conceitos básicos – Ambiente de Desenvolvimento – Distribuição – Hello World – Praticando • 04/09 – Exemplos (Prática)
  • 4. Pequenos em tamanho • Memória limitada (Primária e secundária) • Poder de processamento limitado • Baixo consumo de energia • Robusto e confiável • Conectividade limitada • Curto tempo de inicialização
  • 5. • Clientes potenciais em constante crescimento • Existe vários fabricantes, modelos e funcionalidades • Crescimento explosivo de dispositivos móveis – Celulares, PDAs, notebooks, netbooks, tocadores de mídia, ... • Diferentes recursos de multimídia – Tela, captura de imagens, armazenamento, processamento, comunicação
  • 6. • Redes Móveis – Maior largura de banda, melhor cobertura • Conteúdo – Crescimento da mídia digital – Mudanças na forma como o conteúdo é produzido • Tipos de aplicações – Comunicação via voz – Navegação pela Web – Acesso a arquivos de mídia – GPS – Jogos – Conectando com pessoas...
  • 7. • Baseado em Java • Não Java – Sun JavaME – Symbian (C/C++, – SuperWaba Python) – Google Android – Windows Mobile (Dot – RIM Blackberry Net Compact Framework) – PalmOS, Pocket PC (C/C++) – IPhone (Objective C) – BREW (C/C++) – Microbrowser (XHTML) – FlashLite (ActionScript)
  • 9. • Como programar em uma única linguagem de forma a garantir que a aplicação possa funcionar nos diversos tipos de dispositivos? – Independência de Plataforma – Orientação a Objetos – Networking – Segurança – Tratamento de Exceções – Multithreads – ...e o mais importante, PADRONIZAÇÃO
  • 10. • 1995: Surgimento da linguagem Java • 1999: – Lançado o Java2 (Java 1.2) – Divisão das 3 plataformas: • J2EE (Java2 Enterprise Edition) • J2SE (Java2 Standard Edition) • J2ME (Java2 Micro Edition) • 2006: – Nova nomenclatura – Tachal “2”: • JEE (Java Enterprise Edition) • JSE (Java Standard Edition) • JME (Java Micro Edition)
  • 11. • Java EE Plataforma voltada a aplicações coorporativas, no lado do servidor. • Java SE Plataforma para aplicações do lado do cliente e demais aplicativos para computadores pessoais. • Java ME Plataforma Java voltada ao desenvolvimento de aplicações executadas em dispositivos com limitados recursos de hardware.
  • 12. O Java ME é uma versão reduzida da plataforma Java que permite que aplicativos sejam criados para dispositivos móveis com diversas vantagens da plataforma Java. Projetado para dispositivos com limitações de memória, tela e processamento. ATENÇÃO! – JME == Java Micro Edition – JME != Java Mobile Edition
  • 15. • Define uma plataforma Java para uma ampla variedade de dispositivos • Define recursos da linguagem Java e as bibliotecas Java básicas da JVM para essa configuração específica • Leva em consideração – Memória, vídeo, conectividade e processamento • Principais configurações – Conected Device Configuration (CDC) – Conected, Limited Device Configuration (CLDC)
  • 16. • Conjunto de API’s que complementa uma “Configuração” para prover funcionalidades para um determinado mercado ou dispositivo. • O perfil ajuda na portabilidade das aplicações • Principal configuração – Mobile Information Device Profile (MIDP) • Aplicações em dispositivos wireless sobre a CLDC
  • 17. • As JVMs transformam os arquivos .class em código de máquina para a plataforma específica • Isto torna os programas escritos em Java independentes de plataforma de execução • Cada SO deve possuir uma implementação da JVM
  • 18. • Para o CDC – Mesma especificação da JVM do J2SE • Para o CLDC – Kilo Virtual Machine (KVM)
  • 19. • CDC – Connected Device Configuration – Especifica o ambiente Java para TV Digital, dispositivos sem fio de alto nível e sistemas automotivos. – Dispositivos com cerca de 2MB de RAM (alguns PDA’s, telefones 3G, etc.) • CLDC – Connected Limited Device Configuration – Especifica o ambiente Java para telefones celulares, pagers e PDAs. – Equipamentos com baixíssimos níveis de processamento e capacidade de memória.
  • 21. • Foi o primeiro perfil do Java ME • É 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
  • 22. 128 kB de memória não volátil; • 32 kB para heap; • 8 kB para persistência de dados; • Tela de 96x54 pixels; • Entrada de dados; • Conexões de rede (intermitentes); • Segurança – conceito de sandbox das applets;
  • 23. • Segurança: baseado em permissões do JSE; • Novas API´s para aprimorar o desenvolvimento: – Game API; – Media API; – Secure Connection API;
  • 24. • Uma aplicação MIDP é chamada de MIDlet. O software de gerenciamento da aplicação (AMS - Application Management Software) do dispositivo interage diretamente com o MIDlet com os métodos de criar, iniciar, pausar e destruir o MIDlet. • O MIDlet é parte do pacote javax.microedition.midlet. Necessita estender a classe MIDlet. E pode requisitar parâmetros do AMS conforme definido no descritor da aplicação (JAD – Java Application Descriptor).
  • 26. • Start – Onde é feita a Aquisição de recursos inicializando a execução (startApp); • Pause – Liberação de recursos em um modo de espera, ou seja, pausado utilizado ao atender telefone, receber SMS dentre outra aplicação (pauseApp); • Destroy – Liberação de todos os recursos (destroyApp);
  • 27. • Hierarquia dos principais componentes gráficos
  • 28. • Alguns recursos disponíveis: – RMS - Record Management System – GCF - Generic Connection Framework • Principais pacotes opcionais: – JABWT - Java API for Bluetooth – WMA - Wireless Messaging API – MMAPI - Mobile Media API – WSA - J2ME Web Service API – Game API – Telephony API
  • 29. • É preciso ter instalado: – JDK (Java Development Kit); – WTK (JME Wireless Toolkit); – IDE ou Editor para os códigos: • Eclipse + EclipseME • NetBeans + Mobility Pack; • Gel; • JBuilder;
  • 30. • Ferramenta principal para desenvolvimento de J2ME MIDP • Emula vários dispositivos e possibilita que outros sejam instalados. • Possibilita conexão e na versão 2, testes de SMS e MMS • É possível controlar a taxa de transmissão, quantidade de memória, tipo de http
  • 33. • MIDlets precisam ser empacotados corretamente antes de serem enviados a um dispositivo para instalação. A classe principal MIDlet que age como o ponto de entrada principal para o MIDlet, juntamente com as classes que você construiu e quaisquer imagens ou outros arquivos para os quais precisa de acesso em tempo de execução, precisam ser empacotados em um único arquivo JAR.
  • 34. • Um arquivo JAR (Java Archive file) contém a definição de empacotamento dos arquivos que são necessários para rodar a aplicação. Também é provida informação de empacotamento semelhante em outro arquivo chamado Java Aplication Descriptor (ou JAD) que é tratado separadamente do JAR. Um JAR pode conter mais de um MIDlet, neste caso todos os MIDlets devem estar dentro do mesmo MIDlet suite. O arquivo JAR deve conter todos os arquivos que fazem parte de um MIDlet suite
  • 35. • Conteúdo de um arquivo JAD MIDlet-1: Teste, Teste.png, Teste MIDlet-Jar-Size: 100 MIDlet-Jar-URL: Teste.jar MIDlet-Name: Teste MIDlet-Vendor: Unknown MIDlet-Version: 1.0 MicroEdition-Configuration: CLDC-1.0 MicroEdition-Profile: MIDP-2.0
  • 36. 1. // Bibliotecas Básicas: 2. import javax.microedition.lcdui.*; 3. import javax.microedition.midlet.*; 4. 5. public class OlaMundo extends MIDlet implements CommandListener 6. { 7. private Display display; 8. private Form formPrincipal; 9. private Command cmdSair; 10. 11. // Construtor: 12. public AloMundo() { 13. display = Display.getDisplay(this); 14. formPrincipal = new Form("Titulo formPrincipal"); 15. cmdSair = new Command("Sair", Command.EXIT, 1); 16. 17. formPrincipal.append(“Olá mundo!"); 18. formPrincipal.addCommand(cmdSair); 19. formPrincipal.setCommandListener(this); 20. }
  • 37. 21. // Método chamado na inicialização do MIDlet 22. public void startApp() { 23. display.setCurrent(formPrincipal); 24. } 25. 26. // Método chamado quando o MIDlet é pausado 27. public void pauseApp() {} 28. 29. // Método chamado quando o MIDlet é fechado 30. public void destroyApp(boolean unconditional) {} 31. 32. // Método chamado quando algum command é ativado 33. public void commandAction(Command cmd, Displayable dis) { 34. if (cmd == cmdSair) { 35. destroyApp(false); 36. notifyDestroyed(); 37. } 38. } 39. }
  • 38. • Iniciem o NetBeans...
  • 39. • JME (Java Micro Edition) é a plataforma Java direcionada para micro aplicativos. Ou seja, aplicativos destinados a dispositivos que possuem processamento, memória e vídeo limitados, como celulares, PDA’s, TVs, controle remotos e outros embarcados. • A arquitetura JME é dividida em Configurações, Perfis, Máquina Virtual e API’s opcionais.
  • 40. • As configurações definem as bibliotecas que são necessárias para o funcionamento da máquina virtual (JVM). As principais são: CLDC (Connected, Limited Device Configuration) e CDC (Connected Device Configuration). • A primeira é destinada a dispositivos mais simples e menores, como celulares, pagers e PDAs, que possuem processamento de 16/32 bits e memória de 128/512 kb. A segunda rege os dispositivos com capacidade um pouco maior: com pelo menos 32bits de processamento e 2 MegaBytes de memória, como TV digital, dispositivos sem fio de alto nível e sistemas automotivos.
  • 41. • Os perfis são um conjunto de aplicações que complementam uma configuração e fornecem funcionalidades para desenvolver um aplicativo para um determinado dispositivo. • Perfis para a configuração CLDC: MIDP (Mobile Information Device Profile) e PDAP (PDA Profile). • MIDP é a biblioteca necessária para a execução de qualquer aplicativo escrito para J2ME, os chamados MIDlets. Ele possui classes de interface com o usuário e acesso a rede, entre outros. E PDAP é um ambiente de execução especialmente para PDAs. • Para a CDC temos o Foundation Profile e o Personal Basis Profile. O primeiro é um perfil para dispositivos interconectados em rede e sem interface gráfica. E o segundo oferece suporte a gráficos. • Quanto a máquina virtual temos a CVM (Compact Virtual Machine), que é vinculada a configuração CDC e a KVM (Kilo Virtual Machine) que é vinculada a CLDC.
  • 43. • Java: www.java.com • JDK (Java Development Kit): http://java.sun.com/javase/downloads • Netbeans: www.netbeans.org • Eclipse: www.eclipse.org • Plugin EclipseME: www.eclipseme.org • WTK (JME Wireless Toolkit): http://java.sun.com/javame/downloads • Referêcnias: www.javafree.org www.javamovel.com