UNIVERSIDADE FEDERAL DE SANTA CATARINA – UFSC

Propaganda
UNIVERSIDADE FEDERAL DE SANTA CATARINA – UFSC
CENTRO TECNOLÓGICO – CTC
DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA – INE
DISCIPLINA: PROJETOS I
GRADUANDO: LUCAS DE SOUZA REIS GOMES
0023823-6
Resumo
“Introdução à J2ME e programação MIDP”
- Introdução
J2ME ou Java 2 Micro Edition é a segunda revolução na curta história da
tecnologia Java. A primeira revolução aconteceu em 1995 com o surgimento das applets,
que mudaram o modo como as aplicações Web poderiam ser desenvolvidas e oferecidas
aos usuários.
A segunda revolução se deu com a inserção de tecnologia Java em dispositivos
móveis, aliada à explosão do mercado desses dispositivos, principalmente telefones
celulares. Assim que esses aparelhos começaram a possuir maior capacidade de
processamento e memória, executar programas, aproveitar esses novos recursos passaram a
ser ótimos diferenciais para sistemas que precisavam de mobilidade e portabilidade,
principalmente utilizando uma tecnologia já familiar aos desenvolvedores, como Java.
- Entendendo J2ME
J2ME é a edição de Java para pequenos dispositivos, como pagers, telefones
celulares, set-top boxes de TVs a cabo, PDAs etc. É uma versão específica de máquina
virtual criada para ser executada em um ambiente limitado, com recursos por vezes exíguos
de memória e processamento.
Como pontos importantes na tecnologia J2ME no mercado de telefonia móvel,
destacamos o fato de que os desenvolvedores são livres para criar aplicações e executá-las
em qualquer dispositivos de qualquer fabricante que possua uma máquina virtual, não
sendo necessário se prender a um dos fabricantes ou a uma tecnologia. Os usuários também
são livres para escolher o modelo de telefone celular mais adequado às suas necessidades
que possa executar o aplicativo desejado. Antes do J2ME, qualquer programa que
precisasse ser incluído em celulares deveria ser escrito na linguagem nativa do próprio
dispositivo, provavelmente utilizando bibliotecas proprietárias do mesmo. O processo de
conversão do aplicativo de um dispositivo para outro era potencialmente complexo, com
custos que poderiam inviabilizá-lo.
Também não existem limitações em relação à operadora de telefonia celular ou à
tecnologia adotada por ela. Existem telefones celulares com máquina virtual Java para
quaisquer das tecnologias mais utilizadas atualmente (GSM/GPRS, CDM/1.xRTT, TDMA
etc). Para que o seu aplicativo possa ser executado no celular, não é necessária qualquer
licença especial da operadora ou sequer a sua ciência. Além disso, com as operadoras
criando planos mais acessíveis para transporte de dados, os aplicativos que usam a rede de
comunicação passam a ter uma viabilidade econômica inédita, permitindo que mais
empresas e pessoas físicas se decidam a acessar dados remotos por meio de J2ME. Outro
ponto importante é que recursos conhecidos da tecnologia Java também estão disponíveis
para os aplicativos J2ME, como, por exemplo, os recursos de segurança de código
semelhantes aos encontrados na versão convencional de Java J2SE, entre outros.
- Arquitetura do J2ME
J2ME é dividido entre Configurations (configurações), Profiles (perfis) e APIs
opcionais. Essa divisão permite ao desenvolvedor conhecer informações específicas sobre
as diferentes famílias de dispositivos e as APIs disponíveis em cada uma delas.
Configurations:
A Configuration define o mínimo que um desenvolvedor pode esperar do
dispositivo, classificando-os por capacidade de memória e processamento. Especifica uma
JVM que pode ser portada entre dispositivos e também determina um subconjunto das APIs
da J2SE a serem utilizadas, além de outras APIs adicionais necessárias. Entre as
configurações destacam-se a CDC (Connected Device Configuration) e a CLDC
(Connected, Limited Device Configuration).
A especificação CDC é baseada na máquina virtual Java convencional, definindo
um ambiente com um conjunto rico de recursos, semelhantes aos encontrados em um
sistema desktop.
A CLDC, por outro lado, consiste em uma máquina virtual reduzida (KVM) e um
conjunto de classes mais apropriado para dispositivos pequenos e com limitações de
desempenho e memória. Esta configuração é destinada para dispositivos wireless menores,
possuindo geralmente entre 160Kb e 512 Kb disponíveis para Java (mínimo de 128 Kb),
uma conexão à rede limitada, intermitente e provavelmente lenta. A tela é de tamanho
pequeno, e a fonte de energia é reduzida, fornecida por baterias.
A CLDC 1.0 possui limitações, como o impedimento à adição de métodos nativos
em runtime e a falta de tipos primitivos de ponto flutuante.
Profiles:
Os perfis são conjuntos de APIs que suplementam as Configurations, fornecendo
funcionalidades para um determinado tipo de dispositivo ou mercado virtual. São mais
específicos que as configurações, apesar de serem baseados nelas. Adicionam APIs para
interface com o usuário, armazenamento persistente e outras auxiliares. O profile utilizado
em celulares é a MIDP (Móbile Information Device Profile), com o Foundation Profile
sendo utilizado em dispositivos de rede sem interface gráfica, e o Personal Basis e Personal
Profile utilizados em dispositivos com suporte gráfico e alta capacidade sobre a CDC.
A segurança das aplicações Java em MIDP 1.0 é semelhante às applets, com o
conceito de uma sandbox, onde o programa Java é mantido seguro, sem acesso ao ambiente
externo. Em MIDP 2.0, as aplicações possuem um tratamento de segurança baseado em
permissões semelhantes à J2SE.
APIs opcionais:
As APIs opcionais são funcionalidades adicionais específicas que não serão
encontradas em todos os dispositivos de uma determinada configuração ou perfil, mas
importante o suficiente para serem padronizadas. As APIs opcionais mais conhecidas como
WMA (Wireless Messaging API), que permite aos aplicativos J2ME manipular mensagens
SMS, e a MMAPI (Móbile Media API), que adiciona controle de mídia aos programas
J2ME que o permitem.
Juntos, Configurations, Profiles e APIs opcionais formam uma pilha que define o
que está disponível pra o desenvolvedor em um dado dispositivo ou classe de dispositivos,
fornecendo o escopo de recursos que podem ser acessados pelos aplicativos escritos para
eles.
- Plataforma J2ME Atual
Em telefones celulares, é encontrada a combinação CLDC 1.0 e MIDP 1.0.
Alguns lançamentos recentes atendem à especificação MIDP 2.0 e/ou CLDC 1.1, mas ainda
não são dispositivos massificados. Por muito tempo ainda, o desenvolvedor terá como
plataforma mais freqüente a combinação citada.
- Programação MIDP
O perfil MIDP traz as classes de interface com o usuário e acesso à rede, dando
nome aos aplicativos desenvolvidos para celulares. De maneira semelhante às applets e aos
servlets, um aplicativo MIDP é chamado de midlet, por herdar de uma classe denominada
MIDlet (javax.microedition.midlet.MIDlet). Com essa herança, a classe recebe a
capacidade de se comunicar com o Gerenciador de Aplicativos que os dispositivos MIDP
possuem e de interagir com a interface do aparelho.
Um aplicativo MIDP é um conjunto de classes que implementam seu
funcionamento, reunidas em um pacote chamado MIDlet Suíte. O aplicativo é desenvolvido
em um computador desktop, compilado, pré-verificado, empacotado (JAR) e então
instalado em um dispositivo para execução ou em um emulador. O arquivo JAR que
contém o aplicativo é acompanhado por um descritor da aplicação, um arquivo JAD (Java
Application Descriptor), que é processado pelo Application Manager (gerenciador de
aplicativos) do dispositivo, fornecendo informações sobre os requisitos de funcionamento
da MIDlet Suíte e permitindo que os usuários decidam pela sua instalação. O
desenvolvimento de todos esses passos pode ser executado manualmente, a partir das
bibliotecas e ferramentas disponíveis no Sun MIDP Reference Implementation, ou
otimizado por alguma ferramenta que execute todos esses passos de forma quase
transparente.
Referência Bibliográfica:
Revista Mundo JAVA
Número 05 – Ano I
Autor: Leandro Batista de Almeida
Download