Esse artigo faz parte da revista Java Magazine edição 52. Clique aqui para ler todos os artigos desta edição 

10pt; FONT-FAMILY: Verdana"> 

O build de aplicações costuma ocupar muito tempo que poderia ser usado para tarefas menos mecânicas,  e definir uma forma automatizada para isso leva a economias em tempo e dinheiro. É por isso que é tão grande a popularidade do Ant e, no ambiente Java ME, do Antenna.

O Antenna oferece uma série de tarefas (tasks) do Ant, adequadas para o desenvolvimento de aplicações MIDP. São tarefas construídas com base em funcionalidades do Java Wireless Toolkit (WTK) da Sun; portanto é necessário ter o WTK instalado. Através do Antenna, é possível compilar, pré-verificar, empacotar e ofuscar classes, manipular descritores (JAD) e executar aplicações MIDP, entre outras operações, tudo isso de forma automatizada. 

Nota :O Wireless Toolkit da Sun para CLDC chegou recentemente à versão 2.5.2, cujo destaque é o suporte multiusuário: a mesma instalação do toolkit pode ser compartilhada por vários usuários na mesma máquina, tanto na versão Windows quanto em Linux.

O desenvolvimento do Antenna foi iniciado em 2002, mas só recentemente a ferramenta chegou à versão 1.0.0. Veremos neste artigo como utilizar a nova versão do Antenna na prática, fazendo o build de uma MIDlet, ao mesmo tempo que analisamos as tarefas do Antenna.

 

Pré-requisitos

O Antenna faz uso de vários outros projetos. Além do WTK, que você pode baixar em java.sun.com/products/sjwtoolkit/ download.html, deve-se ter o Ant instalado (ant.apache.org).

Vamos precisar também do ProGuard,para ofuscamento o código. O ofuscamento serve para diminuir o tamanho final da aplicação, reduzindo nomes de métodos, classes e variáveis, entre outros elementos; também protege o bytecode de sua aplicação, pois “embaralha” o código tornando-o ilegível após uma engenharia reversa. Faça o download da versão 4.0 do ProGuard, em proguard.sf.net, e descompacte em um diretório de fácil acesso, por exemplo c:\proguard4.0.

Nota: A versão 4.0 do ProGuard, lançada recentemente, acrescenta uma característica importante para desenvolvedores Java ME1. Nessa nova versão é possível, além de ofuscar o código, pré-verificar a aplicação, garantindo que tal operação fique independente de um aplicativo externo. No entanto, o Antenna, no momento em que escrevo, ainda usa o programa preverify.exe do WTK para executar esse processo.

versão 4.0 do ProGuard, lançada recentemente, acrescenta uma característica importante para desenvolvedores Java ME1. Nessa nova versão é possível, além de ofuscar o código, pré-verificar a aplicação, garantindo que tal operação fique independente de um aplicativo externo. No entanto, o Antenna, no momento em que escrevo, ainda usa o programa preverify.exe do WTK para executar esse processo.

 

O Antenna em si pode ser obtido em antenna. sf.net. Para usá-lo, é suficiente colocar o arquivo antenna-bin-1.0.0.jar dentro do diretório lib da instalação do Ant. Terminados os downloads e a instalação, é necessário também configurar uma variável de ambiente, para que seja possível executar o build. Defina a variável ANT_HOME, apontando para o caminho onde foi descompactado o Ant, no nosso caso c:\ant.

 

O projeto Java ME

O projeto Java ME de exemplo será simples, pois o enfoque é mesmo mostrar as tarefas do Antenna. Vamos apenas criar um diretório C:\JM_HelloWorld (ou o equivalente no Linux). Dentro dele, criamos outro diretório, src, para os fontes, onde colocamos o arquivo mostrado na Listagem 1 (HelloWorldMIDlet.java). Essa MIDlet mostra a clássica mensagem de cumprimento na tela do dispositivo.

 

Listagem 1. MIDlet mínima para testes com o Antenna

import javax.microedition.lcdui.*;

import javax.microedition.midlet.*;

 

public class HelloWorldMIDlet extends MIDlet implements CommandListener

{

private Form form;

private Display display;

private Command cmdSair = new Command(“Sair”, Command.EXIT, 1);

 

public HelloWorldMIDlet() {

form = new Form(“”);

display = Display.getDisplay(this);

form.append(“Hello World”);

...

Quer ler esse conteúdo completo? Tenha acesso completo