DESENVOLVIMENTO DE APLICATIVOS PARA CELULAR – JAVA 2 MICRO

EDITION

 

RESUMO

Engana-se quem acha que o aparelho celular é um dispositivo eletrônico

utilizado apenas para transmitir sinal de voz, hoje com a grande tecnologia

disponível é comum encontrar aparelhos celulares com poder de

processamento igual ou até mesmo superior a computadores do início da

década passada, e esses celulares podem rodar aplicativos e jogos. A

tecnologia Java disponibiliza recursos para desenvolver programas para estes

pequenos dispositivos criando para isso uma versão especial chamado J2ME

(Java 2 Micro Edition). Esta versão apresenta vários recursos e bibliotecas para

este tipo de desenvolvimento. Este artigo apresenta de forma básica todo o

desenvolvimento de um aplicativo para celular, desde baixar as ferramentas

gratuitas da internet, instalar, configurar o Ambiente de desenvolvimento,

desenvolver o aplicativo, gerar o pacote e instalar no aparelho celular.

Palavras-Chaves: Celular, J2ME, Java, MIDP.

 

1 INTRODUÇÃO

A miniaturização dos dispositivos eletrônicos, o aumento do poder de

processamento destes dispositivos aliado a necessidade do ser humano

permanecer informado a qualquer hora e em qualquer lugar foi um dos motivos

da grande popularização dos aparelhos celulares, hoje são mais de um bilhão

de telefones celulares no mundo e esse número cresce a cada dia. Os

aparelhos celulares mais modernos podem rodar aplicativos até então existente

apenas em computadores e com certeza os usuários vão querer estes

aplicativos, a questão é: quem irá desenvolvê-los? Vista esta grande

oportunidade, gigantes da informática estão investindo cada vez mais nesta

área, um exemplo é a Sun Microsystem que desenvolveu uma versão de sua

plataforma de desenvolvimento, Java, exclusivamente para dispositivos móveis

como celular, o nome dado foi J2ME (Java 2 Micro Edition). O Java se destaca

de outras linguagens de programação, pois dispõe de recursos de Orientação a

Objetos, permitindo desenvolver códigos portáveis, reusáveis e robusto. A

plataforma de desenvolvimento Java possibilita desenvolver aplicativos para

qualquer dispositivo, desde SmartCard’s, passando por celulares e

computadores até grande servidores, desde que o mesmo disponha uma

máquina virtual Java (JVM), este recurso possibilita que o mesmo programa

rode em várias plataformas, garantindo com isso o que o Java considera sua

principal vantagem, a WORA (Write Once, Run Anywhere ou escreva uma vez

e rode em qualquer lugar).

Hoje muitas empresas fabricantes de celulares vêem grandes vantagens

e oportunidades na tecnologia Java, tanto que a praticamente todos os

modelos de celulares da NOKIA fabricado hoje já dispõe da Maquina Virtual

Java, para que possam ser instalados aplicativos desenvolvidos nesta

plataforma.

image002.gif 

 

Fig. 1 – Alguns Fabricante junto com seus celulares que dispõe de JVM

 

1.1 Um Tamanho Nem Sempre Serve Para Todos

Na programação para celulares,

infelizmente a idéia da WORA não funciona

como deveria, principalmente pela grande

heterogeneidade dos aparelhos celulares,

existem celulares extremamente simples, com

visor monocromático, telas pequenas e teclas

básicas para entrada de dados e existem

também celulares extremamente complexos,

com grande poder de processamento, telas

grandes e com suporte a uma grande

quantidade de cores, além de várias teclas de

entrada de dados a mais, muitas vezes sendo confundidos com vídeo Games

portáteis.

Para garantir esta heterogeneidade o J2ME dispõe de recursos básicos

e padrões, disponíveis na grande maioria dos aparelhos, para celulares que

possuem recursos a mais como teclas adicionais, alertas vibratórios

conectividades diferentes é disponibilizada pelo próprio fabricante API’s

adicionais para um determinado aparelho, garantindo que o programa utilize o

máximo dos recursos daquele celular. Com isso um programa que rode

perfeitamente bem em um aparelho pode não funcionar tão bem em outro, por

esse motivo a NOKIA, uma das empresas que está mais investindo em Java,

criou várias series de celulares, agrupados por características do aparelho,

com isso é garantido que um programa desenvolvido para série 60, por

exemplo, funcionará perfeitamente em todos os aparelhos desta mesma série.

 

2 DESENVOLVENDO APLICATIVOS PARA CELULAR

Hoje é possível desenvolver aplicativos para celulares sem gastar nada

com ferramentas para o desenvolvimento, é possível trabalhar somente com

softwares livres, utilizando sistema operacional como Linux, usando editor de

código gratuito e utilizando ferramentas J2ME como Wireless Toolkit que a

Sun distribuí de maneira gratuita pela internet, é só fazer o download através

do site da própria Sun.

O Java dispõe de 3 versões para o desenvolvimento de aplicativos, o

J2ME (Java Micro Edition), voltado para dispositivos pequenos e limitados,

como celulares e palm’s, o J2SE (Java Standard Edition) voltado para o

desenvolvimento de aplicativos desktop e o J2EE (Java Enterprise Edition)

usado no desenvolvimento de grandes servidores e desenvolvimento para

internet.

Este artigo irá configurar um ambiente de desenvolvimento J2ME

baseado em Windows, utilizando o JDK da Sun, como ferramenta de

desenvolvimento e emulação de celular será utilizado o Wireless Toolkit da

Sun, estes dois disponíveis tanto para plataforma Windows como para Linux,

como editor de código será utilizado o Gel da GExpert, por ser uma IDE de

desenvolvimento rápida e de fácil utilização, porém até o presente momento só

existe versão do Gel para plataforma Windows.

Será abordado os conhecimentos prévios, necessários para

desenvolver aplicativos para celular, em seguido o processo de instalação do

JDK, que fornece bibliotecas necessárias para o desenvolvimento dos

aplicativos, na seqüência, a instalação do Wireless ToolKit (J2ME) e o editor de

código Gel, após a instalação e configuração das ferramentas será codificado

um programa. Para terminar será simulado o aplicativo e mostrado o processo

de envio do programa do computador para o aparelho celular.

 

2.1 Conhecimentos necessários para o desenvolvimento para celular

Para se desenvolver aplicativos para celular é necessário ter um

conhecimento prévio da tecnologia Java, ter um conhecimento bom da

Orientação a Objetos dentro da plataforma e um conhecimento prévio das

principais classes existentes no Java. Conhecimentos sobre a interface gráfica

do Java (principalmente AWT) podem ajudar bastante no momento de

desenvolver o layout do programa.

 

2.2 Instalando o JDK

O JDK é o Kit de Desenvolvimento Java do J2SE (Standard Edition),

utilizada na maioria das vezes para o desenvolvimento desktop, porém para

todo o desenvolvimento de aplicações Java é necessário instalar essa

ferramenta. É possível baixar a ultima versão do JDK no site da sun

(http://java.sun.com/j2se/download.html), embora para desenvolver programas

para celular exista o J2ME que possuí a API MIDlet e uma grande quantidade

de classes utilizadas neste tipo desenvolvimento, é necessário instalar também

o JDK que disponibiliza classes e recursos essenciais da própria tecnologia

Java, como tratamento de datas, classes de I/O entre outros recursos básicos

para qualquer desenvolvimento.

Também é aconselhável baixar a documentação do J2SE, pois pode ser

muito útil para posteriores consultas. A documentação tem aproximadamente

33 MB e está disponível para download no mesmo link do SDK, mostrado

anteriormente. A documentação está num arquivo compactado, é necessário

descompactar preferencialmente na pasta onde será instalado o SDK.

O SDK possui aproximadamente 50 MB, é necessário baixar o arquivo

executável e em seguida se faz o processo de instalação padrão do Windows,

a instalação é muito fácil, segue passo a passo a instalação sem precisar

nenhuma configuração adicional.

 

image004.gif

Fig. 2 – Site da Sun com o link para cópia do SDK e sua documentação

 

2.3 Instalando a Ferramenta de desenvolvimento para Celular – WTK

O WTK (Wireless ToolKit) é fornecida pela Sun para o desenvolvimento

de aplicativos para celular – J2ME. Ele dispõe de compilador e emulador do

aparelho celular, nele é possível configurar a velocidade da CPU do aparelho e

o fluxo de rede, para que a emulação seja a mais próxima possível do real, já

que computadores possuem muito mais memória e CPU e nem sempre o

desenvolvedor dispõe do aparelho celular para instalar e testar o aplicativo.

Para conseguir a instalação do WTK basta acessar o site da Sun

(http://java.sun.com/products/j2metoolkit/) e fazer o download da ferramenta.

Essa ferramenta não ocupa mais que 10MB.

A instalação do WTK também instala a documentação do J2ME, muito

útil para aprender ou consultar classes disponíveis no Micro Edition. Ele é

padrão Javadoc, ou seja, no mesmo formato da documentação J2SE, instalado

anteriormente.

O processo de instalação do WTK também é muito simples, sem a

necessidade de configurações adicionais.

image006.gif 

 

Fig. 3 – Site para download do WTK

 

2.4 Editor de Código

A escolha de um bom editor de código pode facilitar muito o trabalho de

codificação, um dos editores mais difundidos entre usuários que estão

aprendendo a tecnologia Java a é o Gel, pela sua facilidade de trabalho e

alguns recursos um pouco mais avançados, que facilita muito a codificação.

Pode ser obtido através fazendo o download do site de seu fabricante

http://www.gexpert.com.

O Gel é uma IDE de desenvolvimento feito para Windows, logo se você

deseja utilizar uma plataforma livre para o desenvolvimento, como o Linux,

você terá que optar por editores como o Eclipse ou NetBeans, sendo que o

último esta disponível para download no site da Sun (ver link na fig. 2).

O processo de instalação do Gel é simples, porém após a instalação é

necessário fazer a configuração da IDE, para que ela possa trabalhar com o

SDK. Uma grande vantagem é que a configuração da IDE pode ser feita

apenas uma vez, após a primeira instalação, depois que o Gel está instalado e

configurado, basta copiar sua pasta para outros micros, sem a necessidade de

fazer um novo processo de instalação e configuração, facilitando muito o

processo de cópia desta IDE para outros computadores. O processo de

configuração do Gel não será abordado neste artigo, pela grande quantidade

de materiais na Internet que ensina a fazer isso, um bom tutorial de

configuração do Gel pode ser baixado do site http://www.dukeduck.com.br.

image008.gif 

Fig. 4 – Interface da IDE Gel para desenvolvimento Java

 

2.5 Configurando o Gel para trabalhar com o J2ME.

Para o desenvolvimento de aplicativos para celulares utilizamos uma API

do J2ME chamado MIDP, que vem junto com o Wireless Toolkit. É necessário

configurar o Gel para que recursos de auto-completar do código e précompilação

sejam ativados para essa nova API. Adiciona-se o MIDP através

do menu Tools – Options, escolhendo a opção JDK no lado esquerdo e, em

seguida, acessando a guia Classpath onde se adiciona novas API’s. Clicando

no botão Add File e incluindo o arquivo midpapi.zip que se encontra na pasta

lib do Wireless Toolkit (WTK) estará configurando o acesso a API MIDP. Para

confirmação pressiona o botão OK e pronto, o Gel já esta configurado para

trabalhar com o desenvolvimento para celular.

image010.gif 

Fig. 5 – Configuração do Gel para trabalhar com a API MIDP

 

2.6 Iniciando um Projeto

Acesse o programa Wireless ToolKit pelo atalho chamado KToolBar que

se encontra no menu de programas. Em seguida clica no botão New Project...

e preencha o campo com o nome do seu projeto e o nome da classe principal

do seu projeto, eles deverão ter os mesmo nome, no nosso exemplo o projeto

se chamará OlaDukeDuck. Após clique em Create Project. A tela que aparece

em seguida é utilizado para informar informações detalhadas do teu projeto,

estas informações ficam disponíveis no arquivo.JAD (frisando que um

programa para celular se divide em dois arquivos, o.JAR que possui o

programa e o arquivo .JAD que possui diversas informações sobre o projeto),

não é interessante alterar essas propriedades, a não ser que seja realmente

necessário, como colocar um ícone personalizado ou trocar a versão da MIDP.

A maioria dos celulares suporta a versão 1.0 da MIDP, que é bem

limitada, porém alguns modelos já suportam a MIDP 2.0, que possuí vários

recursos de segurança como HTTPS e novos recursos multimídias, utilizadas

principalmente para desenvolver jogos. No exemplo utilizado neste artigo serão

utilizados somente recursos básicos do MIDP 1.0, para garantir a

compatibilidade com a grande maioria dos celulares existentes hoje no

mercado brasileiro.

Após a confirmação no OK, o projeto será criado. Automaticamente é

incluído um diretório dentro da pasta app, que se encontra no diretório do WTK,

nesta pasta com o nome do projeto ficará localizado todos os recursos do

aplicativo, conforme a figura abaixo:

 

image012.gif

Fig. 6 – Estrutura de diretório para o projeto OlaDukeDuck, bem como o

conteúdo que deve ser incluído em cada pasta

 

Projeto Criado

ByteCode (.JAD e .JAR)

Código Fonte do aplicativo

Bibliotecas Extras

Imagens e recursos adicionais

 

2.7 Programa Proposto

O programa proposto é bem didático, será uma formulário com um

componente de texto (label) contendo a literal nome, uma caixa de texto (edit)

para digitação da idade, e dois Command’s: Sair e Detalhes, com a função de

encerrar o aplicativo e exibir a tela de detalhe, na tela de detalhe apresentará

um componente de texto longo (memo) para a digitação de uma grande

quantidade de texto, nesta tela não haverá Command’s. Abaixo é exibido as

duas telas do aplicativo exibidas no emulador usando o layout “genérico” de

celular.

image014.gif   image016.gif

 

Fig. 7 – Telas do aplicativo que será codificado no item 2.8

 

2.8 Codificando o Sistema

Para a codificação do sistema, abra o editor de código Gel e seleciona a

opção Java – New – Java File e grave o código fonte no diretório src do seu

projeto, não esqueça que o nome da classe deve ser o mesmo utilizado na

criação do projeto no WTK. Agora é só codificar, segue abaixo o código de um

programa simples, que utiliza alguns componentes visuais, utiliza commands

do celular e troca de tela.

Código 1 – Programa com explicação de todas as linhas de código

· Package que possuí os componentes visuais

da tela

· Package que tem o MIDlet, principal item do

aplicativo

· Classe que herda do MIDlet e implementa os

botões de Actions do celular

· Método acessado quando inicia o programa

· Formulário que será exibido na tela do

celular

· Componente “memo” que será exibido na

tela

· Mensagem que fica passando na tela (parte

superior)

· Componente “label” do celular

· Componente “edit” do celular

· Comando Sair que será apresentado como

action

· Comando detalhe que será apresentado

· Método chamado quando inicia o aplicativo

· O display obtém o controle da tela do celular

· Criação do Form que será exibido no display

· Criação da mensagem que será exibida

· Criação do Label com o Nome fixo Javaboy

· Criação da caixa de texto que contém a

idade, sem conteúdo inicial, tamanho de 15

caractere e aceita somente caractere

numérico

· Criação do Command para opção sair, com

comando de Exit e prioridade 0

· Criação do comando Detalhe, com comando

de Item e prioridade 1

· Adiciona o label no formulário

· Adiciona o edit no formulário

· Adiciona o Command sair no formulário

· Adiciona o Command detalhe no formulário

· Seta o interpretador de command para a

classe

· Inclui no display o formulário para ser

exibido

· Método acessado quando o programa é

encerrado

· Seta o display da tela como nulo (sem tela)

· Notifica o celular que o aplicativo encerrou,

devolvendo o controla ao aparelho

· Método acessado quando acontece pausa (por

exemplo para atender uma ligação)

· Método que faz o tratamento dos botões de

Ação

· Pergunta se a opção selecionado foi sair

· Seta o display da tela como nulo (sem tela)

· Notifica o celular que o aplicativo encerrou,

devolvendo o controla ao aparelho

· Pergunta se a opção selecionada foi detalhe

· Cria um memo para digitação de detalhes,

com conteúdo pré digitado Descrição,

tamanho de 30 e aceita qualquer texto

· Inclui no display o memo para ser exibido

Após a codificação do programa, resta fazer a compilação, apesar de

existir o recurso de compilação no Gel os arquivos .class serão gerados na

pasta src junto com o código fonte, porém eles devem ser gerados na pasta

classes. Para agilizar este processo a melhor alternativa é compilar o programa

pelo WTK, clicando no botão Build, se existir erros de compilação, será

apresentado na própria console do WTK, então é só voltar para o Gel, corrigir o

erro, salvar, volta r para o WTK e voltar a pressionar o botão Build, até que a

mensagem Build Complete apareça.

 

2.9 Executando o aplicativo no emulador

O WTK dispõe do recurso para emular o aplicativo desenvolvido na tela

do celular, porém existem poucos modelos de aparelhos, modelos adicionais

podem ser conseguidos no site da empresa fabricante dos celulares, mesmo

assim com os modelos básicos que vem junto com o WTK já é possível ter uma

idéia de como o software irá se comporta r. Para escolher o layout do aparelho

onde será emulado o aplicativo selecione-o no campo Device e para rodar o

aplicativo clica no botão Run. Aparecerá a tela de menu do celular para

escolher o aplicativo, escolha a opção Launch e pronto, seu aplicativo já

aparece no emulador, como na Fig. 7.

Como sabemos, o poder de processamento do celular bem como sua

conexão com a rede é bem menor de que qualquer computador, a redução

destas velocidades podem ser feitas através da opção Edit – Preferences...

 

2.10 Obfuscando o pacote

Obfuscadores são softwares destinados a diminuir o tamanho dos

pacotes e classes de programas Java, além disso, eles possuem recursos que

evitam a engenharia reversa (obter o código fonte a partir do arquivo .class).

Em programas desenvolvidos para celulares o obfuscador tem um papel

importante, pois ele consegue diminuir o tamanho do aplicativo que serão

instalado no celular, e como os recursos de memória são bem limitados neste

tipo de dispositivo, todos os KB economizado faz uma grande diferença. Um

bom obfuscador para o WTK é o RetroGuard que pode ser conseguido

gratuitamente no site www.retrologic.com. Após baixar o arquivo retrologic.jar

copie o mesmo para a pasta bin do WTK. Após este processo seu ambiente já

está pronto para criar aplicativos obfuscados. Para gerar o pacote obfuscado

acesse no WTK a opção Project – Package – Create Obfuscated Package. Ele

gera na pasta bin do projeto um arquivo .jar e um arquivo .jad. Estes arquivos

já podem ser copiados para o celular.

 

2.11 Copiando o aplicativo para o celular

Esse processo depende muito do aparelho onde o software vai ser

instalado, tem aparelhos em que é possível passar o aplicativo apenas através

de WEB, neste caso via WAP, para fazer isso é necessário disponibilizar os

arquivos .jad e .jar em um servidor WEB, e digita a URL no celular junto com o

nome do arquivo .jad (Ex. http://www.dukeduck.com.br/j2me/OlaDukeDuck.jad),

outra forma é passar o programa via cabo, quando o aparelho dispõe deste

recurso a grande vantagem é que não se paga nada para fazer a transmissão,

a desvantagem é que o cabo costuma ser vendido separadamente, além de ter

um custo relativamente elevado e não é fácil encontrar estes cabos a pronta

entrega.

 

3 CONCLUSÃO

Este artigo mostrou recursos básicos para o desenvolvimento de

aplicativos para celular, utilizando para isso o J2ME. Para que o celular rode

este aplicativo é essencial que ele disponha da máquina virtual Java.

Com essas informações é possível configurar todo o ambiente de

desenvolvimento e fazer alguns programas bem simples, para se aprofundar

mais no assunto existe uma grande quantidade de material na internet, no site

http://www.dukeduck.com.br existe um tutorial mais avançado e bem didático

de programação para celular. Este tipo de desenvolvimento é o segundo

grande salto da tecnologia Java, o primeiro foi em 1995 com os Applets, o

segundo é o desenvolvimento para dispositivos móveis que esta acontecendo

atualmente. Com certeza é uma grande oportunidade para todos os

programadores, sendo que se trata de uma tecnologia nova onde existe poucos

profissionais aptos no mercado.