desenvolvimento de aplicações roteiro para dispositivos … de... · c e java j2me, superwaba,...
TRANSCRIPT
1
Desenvolvimento de Aplicações para Dispositivos Móveis
José de Ribamar Martins Bringel FilhoMestre em Ciência da Computação (UFC)
Roteiro
�Overview das Plataformas e Linguagens�J2ME�Superwaba�J2ME x Superwaba�Projetos do Grupo�Dissertações
Desenvolvimento de Aplicações para DM
�É um desafio a escolha da linguagem e plataforma de desenvolvimento�Diversidade de dispositivos e aplicações
�Memória, desempenho, plataforma suportada
�Perfil do desenvolvedor�Facilidade de desenvolvimento
�Recursos da linguagem e plataforma� Identificar a mais indicada para uma determinada
aplicação e dispositivo alvo
Linguagens, plataformas e ambientes de Desenvolvimento
�Principais linguagens�C e Java
�Plataformas�J2ME, Superwaba, BREW
�Ambientes de desenvolvimento�CodeWarrior, PRC-Tools, Wireless Toolkit
Linguagem C
� Acesso direto às APIs do SO (e.g. Palm OS)� Melhor desempenho� Gerenciamento de memória� Aplicações compactas� Acesso direto aos dispositivos de comunicação
� IrDA, serial� Ambientes de desenvolvimento
� CodeWarrior (Palm OS, Symbian OS), PRC-Tools(Palm OS), Falch.Net (Palm OS)
Java
�Oferece portabilidade�JVM embutida nos dispositivos
�Facilita a adoção do padrão
�APIs compactas para uma linha de dispositivos
�Plataformas�J2ME, Superwaba
2
Superwaba
� JVM adaptada para DM� Desenvolvida por Guilherme Hazan
� Evolução da Waba (Rick Wild)
� Suporte aos SOs Palm OS e Windows CE� Permite a utilização de bibliotecas C e Java� Requisitos para o desenvolvimento
� Editor de texto, J2SE, SDK (software DelelopmentKit), Superwaba Virtual Machine, Emulador
J2ME
� Java Micro Edition
� Foco� dispositivos móveis em geral e aparelhos domésticos
� É dividida em perfis e configurações� Configurações
� CDC - Connected Device Configuration
� CLDC - Connected Limited Device Configuration
J2ME
�Profiles (perfis)�Personal Basis Profile – dispositivos
domésticos, principalmente televisores� PersonalJava[tm] Application Environment
– Dispositivos que rodam WinCE (a partir daversao 2.12)
� MIDP – dispositivos com baixo podercomputacional e baixa conectividade
Requisitos para o Desenvolvimento
�J2SE�J2ME Wireless Toolkit (WTK)
�Emulador�POSE (Palm OS)
�Pode ter tudo integrado em uma IDE de desenvolvimento�Sun One Studio
KVM e CLDC
� KVM (Kilobyte Virtual Machine) e CLDC (ConnectedLimited Device Configuration)� projetados para dispositivos com pouca memória e
de conexão instável� Pacotes:
� Derivados do J2SE: java.lang; java.util; java.io� Pacote específico: javax.microedition.io (Framework
de conexão)� As classes de ponto flutuante não fazem parte do
java.lang do CLDC 1.0� MathFP pode ser usado para esse propósito
MIDLets
�Aplicações do MIDP�Ciclo de vida:
Active
Destroyed
PausedActive: o programa está rodandoPaused: o programa foi interrompido pelo dispositivoDestroyed: os recursos adquiridos pelo programa foram liberados
Estende a classe javax.microedition.midlet.MIDlet
3
Estrutura de um MIDlet
public class VerGastosMIDlet extends MIDlet {
public void startApp() {
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
MIDletSuite
�Permite o compartilhamento de arquivos de dados (e.g., RMS, txt) e imagens entre MIDlets
�MIDletSuite deve ser convertido no formato aceitável pelo dispositivo alvo�Alguns celulares suportam o .jar
�O MIDletSuite se torna um .prc no Palm OS
Ciclo de Desenvolvimento
Codificação
Dispositivo
EmuladorSincronismo
Compilação ByteCodeDesktop
Binário Alvo
Conversão
Bibliotecas Gráficas do MIDP
� javax.microedition.lcdui� É dividida em duas:
Low Api: � não é garantido o funcionamento em todos os
dispositivos� Os principais objetos são o Canvas e Graphics
� O objeto Canvas gerencia os eventos de teclado e da stylus do dispositivo
� O objeto Graphics possibilita desenhar linhas, arcos, imagens.
Exemplo da LowApiBibliotecas Gráficas do MIDP
(cont.)High Api:
� Seu funcionamento é garantido em todos os dispositivos
� Contém os objetos de interface: Form, Command, List, Gauge, ChoiceGroup, TextField, TextBox ...
� Os únicos que possuem eventos são o Command(action) e o List(select_command)
� Pode-se usar Listener para capturar mudanças de estado de alguns componentes
� Não possui controle sobre o posicionamento dos componentes
4
J2ME x Superwaba
RazoávelBoaDisponívelDocumentação
Licença LGPLGratuitaAlgumas são pagasCustos Máquinas virtuais
BoaBoaBoaFacilidade dedesenvolvimento
ExcelenteExcelenteRazoávelControle do layout
BMPJPGPNGSuporte a imagens
SIMDepende do dispositivoNÃOSuporte a IrDA
SIMSIMSIMSuporte a TCP/IP
SIMSIMNÃOAcesso a arquivos doSistema
NÃODepende do celularDepende do celularExecuta em celulares
SIMSIMSIMExecuta em Windows CE
SIMNÃOSIMExecuta em Palm OS
SuperwabaJ2ME/Personal JavaJ2ME/MIDP 1.0Critério
Projetos do Grupo
� MobiS� Desenvolvimento uma solução para a transmissão
segura para dispositivos móveis visando garantir a confidencialidade, integridade e autenticidade dos dados transmitidos
� MobiSware� Continuação do projeto MobiS, tem como principal
objetivo desenvolver um framework para garantir a segurança na transmissão de dados através de dispositivos móveis
Projetos (Cont...)
�Wireless Doctor�O Projeto tem como objetivo desenvolver
um sistema para controle e acompanhamento de uma clínica médica
�O sistema permite ao médico acompanhar seus clientes, sua agenda e sua parte finnaceira a partir do Desktop e de um celular P800/P900
Dissertações
� Framesec: Um framework para a provisão de segurança fim-a-fim para aplicações no ambiente de computação móvel (Bringel)
� Framepersist: Um framework de persistência de objetos para o desenvolvimento de aplicações para dispositivos móveis (Katy)
� Um Ambiente de Desenvolvimento de Aplicações Multi-Plataformas e Adaptativas para Dispositívos Móveis (Windson)
� Um Framework para o Desenvolvimento de Treinamentos Utilizando Realidade Virtual em Dispositivos Móveis (Edgar)
FRAMESEC
� Framework de aplicação para a construção de mecanismos de segurança� Confidencialidade, integridade, autenticidade e não-repúdio, bem
como suas combinações
� Definido utilizando como base a linguagem de Padrões Tropyc e padrões de projeto� Information Secrecy, Message Authentication, Message Integrity,
Sender Authentication, Secrecy with Authentication, Secrecy withSignature, Secrecy with Integrity, Signature with Appendix, e Secrecywith Signature with Appendix
� Forward-Receiver, Strategy e Null Object
Ferramenta PEARL
5
Web PEARL Analyser Framepersist
�Provê uma camada de persistência para o desenvolvimento de aplicações para dispositivos móveis�Operações básicas de inclusão, exclusão,
atualização e busca de objetos, levando em consideração as limitações dos dispositivos móveis