Iniciando o desenvolvimento de aplicações J2ME – Parte 01

Veja neste artigo um conhecimento básico para desenvolver uma aplicação para celular.

Iniciando o desenvolvimento de aplicações J2ME – Parte 01

 

A cada ano que passa, as aplicações wirelles vão ganhando força e mercado. As pessoas precisam se comunicar onde quer que estejam, seja por necessidade de fazer negócios, por prazer ou por necessidade social.


Através do celular a comunicação com mobilidade é atingida. Talvez isto seja a causa do sucesso mundial da telefonia móvel e também do crescimento de aplicações que permitem, por exemplo, as pessoas a controlar seus negócios em qualquer hora e em qualquer lugar.

 

Com este artigo, você terá um conhecimento básico para desenvolver uma aplicação para celular. O objetivo deste não é desenvolver uma aplicação complexa e nem ensinar a utilizar as ferramentas aqui indicadas, e sim, iniciar o desenvolvimento de uma simples aplicação para que você possa se familiarizar com este tipo de desenvolvimento.

Inicialmente, serão apresentados alguns conceitos e as ferramentas de desenvolvimento que serão utilizadas. Logo após, será apresentado como instalar as ferramentas e desenvolver a aplicação.

 

Alguns conceitos

 

J2ME (Java 2 Micro Edition) – Consiste de uma plataforma JAVA para desenvolvimento de aplicações para sistemas embarcados. Na verdade, como o próprio nome indica, é uma micro edição da plataforma JAVA.

 

O J2ME tem como alvo dois grupos distintos de produtos:

- dispositivos pessoais, móveis e conectados à informação (information connected): telefones celulares, pagers e PDAs.

- dispositivos compartilhados, fixos e conectados à informação (information connected): são as Internet TVs, telefones com Internet, comunicadores high-end e sistemas de navegação de carros.

 

O tamanho da tela e a disponibilidade de memória de programa fez com que existisse esta divisão entre os dois grupos.

Embora todos esses dispositivos tenham coisas em comum, eles diferem na forma, função e características. Para isso existe o conceito de configuração. Há dois tipos de configuração:

 

Connected, Limited Device Configuration (CLDC) – Especificação de uma configuração mínima em termos de hardware e bibliotecas padrão para os dispositivos do primeiro grupo.

 

Connected Device Configuration (CDC) - Especificação de configuração para os dispositivos do segundo grupo de produtos.

 

Há também o conceito de perfil (profile). Um perfil é um conjunto de bibliotecas que são muito mais específicas a uma categoria de dispositivos do que as bibliotecas disponíveis pela configuração. Perfis são implementados ao topo da configuração.

A figura 1 ilustra as camadas J2ME.

 

 

Figura 1 - Camadas J2ME

A CLDC (Connected, Limited Device Configuration)

 

As características desta configuração são:

-160kB a 512kB de memória disponível para a plataforma Java

-processador de 16 a 32 bits

-baixo consumo de energia, freqüentemente usando energia de baterias

-conectividade a algum tipo de rede, em geral sem-fio. Conexão intermitente e banda limitada (em geral 9600bit/s ou menos)

 

A especificação CLDC não suporta as seguintes características da linguagem Java:

 

-Pontos flutuantes

-Finalização de objetos

-Hierarquia da classe java.lang.Error

 

Devido as bibliotecas CLDC serem mais limitadas, algumas características foram eliminadas da JVM. São elas:

 

-Java Native Interface (JNI)

-class loaders definidas pelo usuário

-reflexão

-thread groups e daemon threads

-finalização (Object.finalize())

-referências fracas

 

Bibliotecas CLDC

 

O objetivo das bibliotecas CLDC é o de prover o conjunto mínimo necessário para o desenvolvimento de aplicações e definição de perfis para uma variedade de pequenos dispositivos. Dados a memória restrita e as características variadas dos dispositivos, é impossível de se ter um conjunto de bibliotecas que agrada a todos.

Na definição das bibliotecas, foi usada a especificação Java original como base, dando-se bastante ênfase na conectividade.

 

A maioria das bibliotecas CLDC são um subconjunto das edições Java maiores (J2SE e J2EE) para garantir compatibilidade e portabilidade de aplicações. Embora compatibilidade seja um objetivo muito desejado, as bibliotecas J2SE e J2EE possuem fortes dependências internas que dificultam a formação de subconjuntos destas bibliotecas. Por esta razão, algumas bibliotecas foram modificadas, especialmente na área de rede e I/O.

 

As bibliotecas CLDC podem ser divididas em duas categorias:

 

-as que são subconjunto das bibliotecas J2SE padrões

-as que são específicas do CLDC (mas que podem ser mapeadas para J2SE)

 

Classes pertencentes à primeira categoria estão localizadas nos pacotes java.lang.*, java.util.* e java.io.*. Estas classes são derivadas do J2SE. Classes pertencentes à segunda categoria estão localizadas no pacote java.microedition.*.

 

Mobile Information Device profile (MIDP)

 

O MIDP é a definição de uma arquitetura e APIs associadas necessárias para prover um ambiente de desenvolvimento aberto para MIDs (mobile information devices). O MIDP foi feito para rodar em cima do CLDC. Portanto, um MID deve possuir as seguintes características mínimas de hardware (além daquelas que são requeridas pelo CLDC):

 

- Display:

 

-Tamanho da tela: 96x54;

-Profundidade: 1 bit;

-Formato do pixel (proporção de aspecto): 1:1;

- Input:

-One handed keyboard” ou

-Two handed keyboard” ou

-Touch Screen;

 

- Memória:

 

-128Kbytes para os componentes MIDP;

-8Kbytes para dados das aplicações;

-32Kbytes para o JAVA runtime;

 

- Rede:

 

-Duplex, sem fio, possivelmente intermitente e com largura de banda limitada.

 

Os MIDs possuem uma grande variedade de softwares de sistema. Por essa razão, o MIDP estabeleceu alguns requisitos mínimos de sistema:

 

-Um kernel para controlar o hardware, que possua uma entidade escalonável para rodar a Máquina Virtual Java;

-Um mecanismo para ler e escrever na memória para suportar as APIs;

-Acesso de leitura e escrita à rede sem fio;

-Um mecanismo que provenha um tempo-base utilizado no timestamping nas escritas na “persistent storage”;

-Capacidade de escrever num display bit-mapped;

-Um mecanismo para capturar entrada de um input device;

 

Como os MIDs possuem uma grande quantidade de potencialidades, o MIDPEG (grupo que elaborou o MIDP) limitou o conjunto de APIs necessárias para apenas aquelas necessárias para alcançar uma grande portabilidade. São as seguintes:

 

-Aplicação;

-Interface do Usuário (UI);

-Persistent Storage;

-Rede;

-Temporizadores (timers);

 

O MIDP herda a conectividade do CLDC e suporta um subconjunto do HTTP, que pode ser implementado com protocolos IP (TCP/IP) e não-IP (WAP e i-mode).

 

A interface HttpConnection possui funcionalidades que permitem a realização de funções específicas do HTTP. Qualquer aparelho que implemente MIDP deve suportar o HTTP 1.1, requisições HEAD, GET, POST e forms.

 

O MIDP disponibiliza um mecanismo para que as MIDlets possam guardar dados e lê-los mais adiante. É a chamada Record Management System (RMS).

 

- Record Stores:

 

É uma coleção de registros que permanece o mesmo durante múltiplas chamadas do MIDlet. A plataforma é responsável por manter a integridade desses registros, mesmo após reboots ou trocas de baterias.

 

- Records:

 

São vetores de bytes. Utilizados para armazenagem de diferentes tipos de dados. Eles são unicamente identificados pelo seu recordId, um valor inteiro.

 

Há duas versões do MIDP, MIDP1.0 e MIDP2.0. Esta última é uma versão revisada da primeira. Inclui novas características para interface do usuário (UI) permitindo as aplicações mais interativas e fáceis de usar. Outras característica marcante é que MIDP2 fornece funcionalidades para construção de games que simplificam o desenvolvimento e provêm maior controle sobre gráficos e performance. Sem contar as funcionalidades para maior conectividade,  Over The Air (OTA) e segurança.

 

MIDlet

 

È um modelo de aplicação definido pelo MIDP. Portanto, a aplicação J2ME tem quer ter pelo menos uma classe derivada da classe javax.microedition.midlet.MIDlet. Esta classe representa o ciclo de vida de um MIDlet. Alguns métodos desta classe:

 

startApp – Este método será chamado toda vez que o usuário da aplicação solicitar a execução do MIDlet.

notifyDestroyed –  Este método destrói o MIDlet.

 

MIDlet Suite

 

Conjunto de MIDlets. Uma aplicação J2ME poderá conter um ou mais MIDlets empacotados em um arquivo JAR.

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados