Iniciando o desenvolvimento de aplicações J2ME – Parte 02
Estrutura da aplicação J2ME
Como foi dito anteriormente, a aplicação é empacotada em um arquivo com extensão JAR. Este arquivo contêm além do código fonte os seguintes arquivos:
MANIFEST.MF – Este arquivo descreve configurações básicas para que o MIDlet execute, tais como, nome do MIDlet, localização do JAR e outras.
Arquivo com extensão JAD – É um arquivo de propriedades onde cada linha é composta de um nome de atributo e valor deste atributo. Os atributos definidos neste arquivo não podem diferir dos que já estão definidos no arquivo MANIFEST.MF
As ferramentas de desenvolvimento
Agora que você possui um conhecimento básico, inicia-se a preparação para o desenvolvimento. A primeira etapa a ser alcançada é a instalação das ferramentas básicas, que são:
Java 2 Platform, Standard Edition (J2SE) e Java 2 Platform, Micro Edition (J2ME) disponíveis para download no site http://java.sun.com.
Existem várias ferramentas disponíveis na internet para facilitar o desenvolvimento de aplicações para celular. Para o nosso exemplo vamos utilizar o framework Eclipse 3.0 disponível no site http://www.eclipse.org.com com o plugin EclipseME 0.7.0 disponível para download no site http://eclipseme.sourceforge.net/.
Após o download das ferramentas para o sistema operacional Windows, você deverá instalá-las em seu computador.
Instalando o Eclipse
A instalação do Eclipse é bastante simples. Basta você descompactar o arquivo eclipse-SDK-3.0-win32.zip no diretório C:.
Instalando o plugin EclipseME
Para instalar o plugin você pode utilizar o próprio Eclipse. Para isto, clique no arquivo eclipse.exe para inicializar o Eclipse. O procedimento de instalação e configuração do EclipseME se encontra disponível no site http://eclipseme.sourceforge.net/. Recomendo que você siga os procedimentos para evitar possíveis problemas. As configurações opcionais não serão utilizadas no exemplo. Portanto você não precisa configurá-las.
Iniciando o desenvolvimento
Para começar o desenvolvimento da aplicação é necessário estar na perspectiva Java. Para isto, selecione a opção Window->Open perspective->Java do menu principal do Eclipse.
Para criar um projeto, selecione a opção File->New->Other->J2ME->J2ME Midlet Suite e entre com um nome para o projeto (por exemplo MyMidlet) e selecione Finish. Será criada uma workspace com o projeto e um arquivo com extensão JAD com os atributos obrigatórios preenchidos como ilustra a figura 2.
Figura 2 - Criação do projeto
A seguir selecione o projeto MyMidlet e com o botão direito do mouse selecione a opção New->Other->J2ME->J2ME MIDlet, digite o nome para a classe, por exemplo MyMidletClass. Veja que a classe irá herdar de javax.microedition.midlet.MIDlet e já contêm os métodos obrigatórios do pacote javax.microedition.midlet.
Agora, basta preencher os métodos já criados.
Adapte o código como mostrado a seguir:
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.TextBox;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class MyMidletClass extends MIDlet implements CommandListener {
private Display display; // Referência para o objeto Display
private TextBox tbMain; // Referência para mostrar a mensagem
private Command cmdSair; // Botão para sair do MIDlet
public MyMidletClass() {
display = Display.getDisplay(this);
cmdSair = new Command ("Sair",Command.SCREEN,1);
tbMain = new TextBox ("Bem vindo", "Digite aqui", 50,0);
tbMain.addCommand(cmdSair);
tbMain.setCommandListener(this);
}
// Gerenciador da aplicação para iniciar o MIDlet
protected void startApp() throws MIDletStateChangeException {
display.setCurrent(tbMain);
}
protected void pauseApp() {
}
// Finaliza o MIdlet
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}
// Trata eventos relacionados a comandos
public void commandAction(Command cmd, Displayable disp) {
if (cmd == cmdSair) {
try {
destroyApp(false);
} catch (MIDletStateChangeException e) {
e.printStackTrace();
}
notifyDestroyed();
}
}
}
Compilando e preverificando o MIDlet
O Midlet é compilado e preverificado quando salvamos o projeto MyMidlet. Estes comandos são automatizados pelo EclipseME e como resultado de sucesso, arquivos com extensão class são gerados para cada classe. A figura 3 ilustra a workspace..
Figura 3 - Resultado da compilação e preverificação do MIDlet
Empacotando o MIDlet
O próximo passo após a compilação e preverificação é gerar o arquivo com extensão JAR. Selecione o projeto MyMidlet e selecione a opção J2ME->Create package. A figura 4 ilustra o resultado de sucesso do comando.
Figura 4 - Resultado do empacotamento do MIDlet
Note que o arquivo JAD da pasta deployed já contêm o nome do MIDlet e o arquivo JAR foi gerado.
Executando o MIDlet
Para executar o MIDlet, selecione o projeto MyMidlet e selecione a opção Run->Run ... do menu principal do Eclipse. Uma janela de configuração aparece com a configuração Wirelles Toolkit Emulator, selecione-o e com o botão direito do mouse e clique em New para criar uma nova configuração. Escolha o panel Emulation, selecione um dos emuladores disponíveis e clique em Run. A figura 5 ilustra a execução do MIDlet no emulador DefaultColorPhone.
Figura 5 - Execução do MIDlet
Há várias maneiras de executar a aplicação no dispositivo móvel. Para isto o dispositivo precisa
ter a tecnologia Java. O uso do cabo DKU-5 é uma das opções mais simples para instalar a aplicação, a outra é através do processo Over The Air (OTA).
Conclusão
Com os conceitos básicos demonstrados e também com o desenvolvimento de uma simples aplicação utilizando ferramentas que facilitam o desenvolvimento, o leitor já tem condições de começar a construir aplicações para dispositivo móvel. Este artigo foi apenas um “ínício”, há muitos recursos ainda a serem aprendidos. Mas com o que foi mostrado aqui você pode pensar em desenvolver aplicações um pouco mais complexas e com o tempo ser um “expert” em desenvolvimento wirelless.