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

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
1 de 44

Recomendados

Arquitetura dos dispositivos móveis por
Arquitetura dos dispositivos móveisArquitetura dos dispositivos móveis
Arquitetura dos dispositivos móveisAlexsander Fontes
4.2K visualizações36 slides
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2 por
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
6.1K visualizações35 slides
Mobile - Uma introdução sobre sistemas para dispositivos móveis. por
Mobile - Uma introdução sobre sistemas para dispositivos móveis.Mobile - Uma introdução sobre sistemas para dispositivos móveis.
Mobile - Uma introdução sobre sistemas para dispositivos móveis.Júlia Fernandes Alves
1.1K visualizações31 slides
Aula 1 - Introdução ao Mobile por
Aula 1 - Introdução ao MobileAula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileCloves da Rocha
2.3K visualizações45 slides
Android - Programação para dispositivos móveis (Aula 1) por
Android - Programação para dispositivos móveis (Aula 1)Android - Programação para dispositivos móveis (Aula 1)
Android - Programação para dispositivos móveis (Aula 1)Ricardo Longa
3.1K visualizações55 slides
Desenvolvimento de aplicações para dispositivos móveis por
Desenvolvimento de aplicações para dispositivos móveisDesenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveisMarcelo Quinta
3.3K visualizações52 slides

Mais conteúdo relacionado

Mais procurados

Arquitetura de dispositivos móveis por
Arquitetura de dispositivos móveis Arquitetura de dispositivos móveis
Arquitetura de dispositivos móveis Italo Andrade
1.5K visualizações28 slides
Seminário sistemas operacionais móveis por
Seminário sistemas operacionais móveisSeminário sistemas operacionais móveis
Seminário sistemas operacionais móveisArthur Azevedo
1.7K visualizações20 slides
Dispositivos móveis por
Dispositivos móveisDispositivos móveis
Dispositivos móveisMauricio Carvalho
31.1K visualizações38 slides
Teste para dispositivos móveis - EATS Manaus 2014 por
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
1.6K visualizações53 slides
Arquitetura de Celulares por
Arquitetura de CelularesArquitetura de Celulares
Arquitetura de CelularesMurilknot
8.3K visualizações35 slides
Sistemas operacionais mobile por
Sistemas operacionais mobileSistemas operacionais mobile
Sistemas operacionais mobileDaniel Brandão
4K visualizações9 slides

Mais procurados(20)

Arquitetura de dispositivos móveis por Italo Andrade
Arquitetura de dispositivos móveis Arquitetura de dispositivos móveis
Arquitetura de dispositivos móveis
Italo Andrade1.5K visualizações
Seminário sistemas operacionais móveis por Arthur Azevedo
Seminário sistemas operacionais móveisSeminário sistemas operacionais móveis
Seminário sistemas operacionais móveis
Arthur Azevedo1.7K visualizações
Dispositivos móveis por Mauricio Carvalho
Dispositivos móveisDispositivos móveis
Dispositivos móveis
Mauricio Carvalho31.1K visualizações
Teste para dispositivos móveis - EATS Manaus 2014 por Luana Lobão
Teste para dispositivos móveis - EATS Manaus 2014Teste para dispositivos móveis - EATS Manaus 2014
Teste para dispositivos móveis - EATS Manaus 2014
Luana Lobão1.6K visualizações
Arquitetura de Celulares por Murilknot
Arquitetura de CelularesArquitetura de Celulares
Arquitetura de Celulares
Murilknot8.3K visualizações
Sistemas operacionais mobile por Daniel Brandão
Sistemas operacionais mobileSistemas operacionais mobile
Sistemas operacionais mobile
Daniel Brandão4K visualizações
Desenvolvimento Mobile por Elton Minetto
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
Elton Minetto2.5K visualizações
Apresentação - Sistemas Operacionais para Smartphones por Tiago Carmo
Apresentação - Sistemas Operacionais para SmartphonesApresentação - Sistemas Operacionais para Smartphones
Apresentação - Sistemas Operacionais para Smartphones
Tiago Carmo2.7K visualizações
Aula 1- Fundamentos da computação móvel por Janynne Gomes
Aula 1- Fundamentos da computação móvelAula 1- Fundamentos da computação móvel
Aula 1- Fundamentos da computação móvel
Janynne Gomes2.6K visualizações
SISTEMAS OPERACIONAIS MÓVEIS (S.O) por Ivan Marks
SISTEMAS OPERACIONAIS MÓVEIS (S.O)SISTEMAS OPERACIONAIS MÓVEIS (S.O)
SISTEMAS OPERACIONAIS MÓVEIS (S.O)
Ivan Marks1.3K visualizações
Dispositivos Móveis - Mobile por ruirodas
Dispositivos Móveis - MobileDispositivos Móveis - Mobile
Dispositivos Móveis - Mobile
ruirodas10.8K visualizações
Resumo Desenvolvimento Mobile por Cícero Moura
Resumo Desenvolvimento MobileResumo Desenvolvimento Mobile
Resumo Desenvolvimento Mobile
Cícero Moura996 visualizações
Aula: Características dos dispositivos móveis por Janynne Gomes
Aula: Características dos dispositivos móveisAula: Características dos dispositivos móveis
Aula: Características dos dispositivos móveis
Janynne Gomes6.1K visualizações
Arquitetura celular arm por Carlos Magno
Arquitetura celular armArquitetura celular arm
Arquitetura celular arm
Carlos Magno1.2K visualizações
Desenvolvendo aplicações móveis por cedulio
Desenvolvendo aplicações móveisDesenvolvendo aplicações móveis
Desenvolvendo aplicações móveis
cedulio415 visualizações
Sergio antao 03_s_tc5_final por Sérgio Antao
Sergio antao 03_s_tc5_finalSergio antao 03_s_tc5_final
Sergio antao 03_s_tc5_final
Sérgio Antao504 visualizações
Apresentacao jornada-unesp-2011 por Tadeu Araujo
Apresentacao jornada-unesp-2011Apresentacao jornada-unesp-2011
Apresentacao jornada-unesp-2011
Tadeu Araujo521 visualizações

Destaque

Tipos de Aplicações Móveis por
Tipos de Aplicações MóveisTipos de Aplicações Móveis
Tipos de Aplicações MóveisNeilor Caldeira
1.9K visualizações31 slides
Palestra Dispositivos Móveis por
Palestra Dispositivos MóveisPalestra Dispositivos Móveis
Palestra Dispositivos MóveisGrendene S/A
975 visualizações43 slides
Competências para aprender e competências para ensinar COM TIC por
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
3.4K visualizações46 slides
Programação de dispositivos móveis com Java ME e NetBeans - Leandro Nunes por
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
1.4K visualizações17 slides

Destaque(14)

Tipos de Aplicações Móveis por Neilor Caldeira
Tipos de Aplicações MóveisTipos de Aplicações Móveis
Tipos de Aplicações Móveis
Neilor Caldeira1.9K visualizações
Palestra Dispositivos Móveis por Grendene S/A
Palestra Dispositivos MóveisPalestra Dispositivos Móveis
Palestra Dispositivos Móveis
Grendene S/A975 visualizações
Competências para aprender e competências para ensinar COM TIC por Fernando Albuquerque Costa
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
Fernando Albuquerque Costa3.4K visualizações
Programação de dispositivos móveis com Java ME e NetBeans - Leandro Nunes por Tchelinux
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
Tchelinux1.4K visualizações
Histórias, Mitos e Aspirações das TIC na Educação em Portugal por Antonio Dias de Figueiredo
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
Antonio Dias de Figueiredo7.3K visualizações
Mini Curso de Design de Interfaces para Dispositivos Móveis por Paolo Passeri
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
Paolo Passeri5.2K visualizações
Dispositivos Móveis - BlackBerry por Valdir Junior
Dispositivos Móveis - BlackBerryDispositivos Móveis - BlackBerry
Dispositivos Móveis - BlackBerry
Valdir Junior655 visualizações
Introdução ao desenvolvimento de aplicativos com PhoneGap e Sencha Touch por Leonardo Soares
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
Leonardo Soares3.3K visualizações
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis por Rogério Moraes de Carvalho
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
Rogério Moraes de Carvalho2.1K visualizações
Pesquisa analisa o mercado de mobile e de m-commerce no Brasil por Hi-Midia
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
Hi-Midia10.3K visualizações
Android - Programação para dispositivos móveis (Aula 2) por Ricardo Longa
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 Longa1.1K visualizações
Android N, Java 8, Android Studio 2.2? por Marcelo Quinta
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 Quinta696 visualizações

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

Java para dispositivos móveis por
Java para dispositivos móveisJava para dispositivos móveis
Java para dispositivos móveisJoão Gabriel Lima
2.7K visualizações79 slides
20070131 mgjug-enterprise java-me_netbeans_mp_nokia_juarez_junior por
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
292 visualizações33 slides
18803468 desenvolvimento-de-aplicacoes-para-dispositivos-moveis por
18803468 desenvolvimento-de-aplicacoes-para-dispositivos-moveis18803468 desenvolvimento-de-aplicacoes-para-dispositivos-moveis
18803468 desenvolvimento-de-aplicacoes-para-dispositivos-moveisJuarez Junior
437 visualizações80 slides
Desenvolvimento aplicacoesdispositivosmoveis por
Desenvolvimento aplicacoesdispositivosmoveisDesenvolvimento aplicacoesdispositivosmoveis
Desenvolvimento aplicacoesdispositivosmoveisJuarez Junior
307 visualizações80 slides
Introdução a JavaME por
Introdução a JavaMEIntrodução a JavaME
Introdução a JavaMEfrgo
1.1K visualizações52 slides
JavaME - Aula 1 por
JavaME - Aula 1JavaME - Aula 1
JavaME - Aula 1Elenilson Vieira
554 visualizações27 slides

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

Java para dispositivos móveis por João Gabriel Lima
Java para dispositivos móveisJava para dispositivos móveis
Java para dispositivos móveis
João Gabriel Lima2.7K visualizações
20070131 mgjug-enterprise java-me_netbeans_mp_nokia_juarez_junior por 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
Juarez Junior292 visualizações
18803468 desenvolvimento-de-aplicacoes-para-dispositivos-moveis por Juarez Junior
18803468 desenvolvimento-de-aplicacoes-para-dispositivos-moveis18803468 desenvolvimento-de-aplicacoes-para-dispositivos-moveis
18803468 desenvolvimento-de-aplicacoes-para-dispositivos-moveis
Juarez Junior437 visualizações
Desenvolvimento aplicacoesdispositivosmoveis por Juarez Junior
Desenvolvimento aplicacoesdispositivosmoveisDesenvolvimento aplicacoesdispositivosmoveis
Desenvolvimento aplicacoesdispositivosmoveis
Juarez Junior307 visualizações
Introdução a JavaME por frgo
Introdução a JavaMEIntrodução a JavaME
Introdução a JavaME
frgo1.1K visualizações
JavaME - Aula 1 por Elenilson Vieira
JavaME - Aula 1JavaME - Aula 1
JavaME - Aula 1
Elenilson Vieira554 visualizações
Introducao ao J2ME por Rodrigo Botelho
Introducao ao J2MEIntroducao ao J2ME
Introducao ao J2ME
Rodrigo Botelho1.4K visualizações
Introdução ao J2ME Conexão Java 2004 por elliando dias
Introdução ao J2ME Conexão Java 2004Introdução ao J2ME Conexão Java 2004
Introdução ao J2ME Conexão Java 2004
elliando dias795 visualizações
18804691 java-for-s60-java-me-and-msa-for-smart-phones por Juarez Junior
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
Juarez Junior329 visualizações
Minicurso de TotalCross e Litebase por Nécio de Lima Veras
Minicurso de TotalCross e LitebaseMinicurso de TotalCross e Litebase
Minicurso de TotalCross e Litebase
Nécio de Lima Veras3.2K visualizações
Aplicações Móveis com J2ME por elliando dias
Aplicações Móveis com J2MEAplicações Móveis com J2ME
Aplicações Móveis com J2ME
elliando dias1.8K visualizações
Curso de J2ME - Parte 01 - Conceitos básicos por Leonardo Melo Santos
Curso de J2ME - Parte 01 - Conceitos básicosCurso de J2ME - Parte 01 - Conceitos básicos
Curso de J2ME - Parte 01 - Conceitos básicos
Leonardo Melo Santos1.4K visualizações
Minicurso Java Me por Marcelo Quinta
Minicurso Java MeMinicurso Java Me
Minicurso Java Me
Marcelo Quinta3.3K visualizações
Aplicativos Moveis Com J2ME por João Longo
Aplicativos Moveis Com J2MEAplicativos Moveis Com J2ME
Aplicativos Moveis Com J2ME
João Longo1.7K visualizações
Sistema Operacional Android por Guiherme Alarcão
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional Android
Guiherme Alarcão33.9K visualizações
Introdução a Java Micro Edition (Java ME) por elliando dias
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 dias1.1K visualizações
Apostila de J2ME versão 1.0.pdf por JoberthSilva
Apostila de J2ME versão 1.0.pdfApostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdf
JoberthSilva36 visualizações
Apostila de J2ME versão 1.0.pdf por JoberthSilva
Apostila de J2ME versão 1.0.pdfApostila de J2ME versão 1.0.pdf
Apostila de J2ME versão 1.0.pdf
JoberthSilva31 visualizações
APRESENTACAO WALANEM ANDROID (1) por Walanem Figueiredo
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)
Walanem Figueiredo321 visualizações

Mais de igorpimentel

Introdução ao framework CakePHP por
Introdução ao framework CakePHPIntrodução ao framework CakePHP
Introdução ao framework CakePHPigorpimentel
1.4K visualizações50 slides
TCC I - Igor Pimentel por
TCC I - Igor PimentelTCC I - Igor Pimentel
TCC I - Igor Pimenteligorpimentel
928 visualizações8 slides
Desenvolvimento Web Parte I por
Desenvolvimento Web Parte IDesenvolvimento Web Parte I
Desenvolvimento Web Parte Iigorpimentel
908 visualizações40 slides
Ferramentas Livres para Desenvolvimento Web por
Ferramentas Livres para Desenvolvimento WebFerramentas Livres para Desenvolvimento Web
Ferramentas Livres para Desenvolvimento Webigorpimentel
1.7K visualizações50 slides
Montando sites com XHTML e CSS utilizando os padrões web por
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
9.7K visualizações76 slides
Desenvolvimento Web Parte II por
Desenvolvimento Web Parte IIDesenvolvimento Web Parte II
Desenvolvimento Web Parte IIigorpimentel
879 visualizações46 slides

Mais de igorpimentel(7)

Introdução ao framework CakePHP por igorpimentel
Introdução ao framework CakePHPIntrodução ao framework CakePHP
Introdução ao framework CakePHP
igorpimentel1.4K visualizações
TCC I - Igor Pimentel por igorpimentel
TCC I - Igor PimentelTCC I - Igor Pimentel
TCC I - Igor Pimentel
igorpimentel928 visualizações
Desenvolvimento Web Parte I por igorpimentel
Desenvolvimento Web Parte IDesenvolvimento Web Parte I
Desenvolvimento Web Parte I
igorpimentel908 visualizações
Ferramentas Livres para Desenvolvimento Web por igorpimentel
Ferramentas Livres para Desenvolvimento WebFerramentas Livres para Desenvolvimento Web
Ferramentas Livres para Desenvolvimento Web
igorpimentel1.7K visualizações
Montando sites com XHTML e CSS utilizando os padrões web por igorpimentel
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
igorpimentel9.7K visualizações
Desenvolvimento Web Parte II por igorpimentel
Desenvolvimento Web Parte IIDesenvolvimento Web Parte II
Desenvolvimento Web Parte II
igorpimentel879 visualizações
Si Para Web por igorpimentel
Si Para WebSi Para Web
Si Para Web
igorpimentel338 visualizações

Último

Shift left DevOps Experience por
Shift left DevOps ExperienceShift left DevOps Experience
Shift left DevOps ExperienceWalter Coan
5 visualizações19 slides
Conheça agora o UiPath Autopilot™ para o Studio.pdf por
Conheça agora o UiPath Autopilot™ para o Studio.pdfConheça agora o UiPath Autopilot™ para o Studio.pdf
Conheça agora o UiPath Autopilot™ para o Studio.pdfBrunaCavalcanti29
14 visualizações8 slides
ProxySQL no MySQL: Apenas um load balancer? por
ProxySQL no MySQL: Apenas um load balancer?ProxySQL no MySQL: Apenas um load balancer?
ProxySQL no MySQL: Apenas um load balancer?Roberto Garcia de Bem
6 visualizações62 slides
VIRTUS 1.6 MSI.pdf por
VIRTUS 1.6 MSI.pdfVIRTUS 1.6 MSI.pdf
VIRTUS 1.6 MSI.pdfFbioVieira85
5 visualizações13 slides
certificado excel.pdf por
certificado excel.pdfcertificado excel.pdf
certificado excel.pdfjuniorcarvalho136
5 visualizações1 slide
TechConnection 2023 Floripa Azure Container Apps por
TechConnection 2023 Floripa Azure Container AppsTechConnection 2023 Floripa Azure Container Apps
TechConnection 2023 Floripa Azure Container AppsWalter Coan
6 visualizações14 slides

Último(8)

Shift left DevOps Experience por Walter Coan
Shift left DevOps ExperienceShift left DevOps Experience
Shift left DevOps Experience
Walter Coan5 visualizações
Conheça agora o UiPath Autopilot™ para o Studio.pdf por BrunaCavalcanti29
Conheça agora o UiPath Autopilot™ para o Studio.pdfConheça agora o UiPath Autopilot™ para o Studio.pdf
Conheça agora o UiPath Autopilot™ para o Studio.pdf
BrunaCavalcanti2914 visualizações
ProxySQL no MySQL: Apenas um load balancer? por Roberto Garcia de Bem
ProxySQL no MySQL: Apenas um load balancer?ProxySQL no MySQL: Apenas um load balancer?
ProxySQL no MySQL: Apenas um load balancer?
Roberto Garcia de Bem6 visualizações
VIRTUS 1.6 MSI.pdf por FbioVieira85
VIRTUS 1.6 MSI.pdfVIRTUS 1.6 MSI.pdf
VIRTUS 1.6 MSI.pdf
FbioVieira855 visualizações
certificado excel.pdf por juniorcarvalho136
certificado excel.pdfcertificado excel.pdf
certificado excel.pdf
juniorcarvalho1365 visualizações
TechConnection 2023 Floripa Azure Container Apps por Walter Coan
TechConnection 2023 Floripa Azure Container AppsTechConnection 2023 Floripa Azure Container Apps
TechConnection 2023 Floripa Azure Container Apps
Walter Coan6 visualizações
DevFest2023-Pragmatismo da Internet das Coisas por Walter Coan
DevFest2023-Pragmatismo da Internet das CoisasDevFest2023-Pragmatismo da Internet das Coisas
DevFest2023-Pragmatismo da Internet das Coisas
Walter Coan35 visualizações
MAPA - SAÚDE - FUNDAMENTOS DE FARMACOLOGIA - 54/2023 por AcademicaDlaUnicesum
MAPA - SAÚDE - FUNDAMENTOS DE FARMACOLOGIA - 54/2023MAPA - SAÚDE - FUNDAMENTOS DE FARMACOLOGIA - 54/2023
MAPA - SAÚDE - FUNDAMENTOS DE FARMACOLOGIA - 54/2023
AcademicaDlaUnicesum6 visualizações

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