DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Mobile magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Artigo WebMobile 29 - Ant + Antenna com Java ME

Veremos uma aplicação prática de reuso de código utilizando Ant e Antenna para customizar aplicações Java ME. Falaremos um pouco dessas tecnologias e suas configurações a fim de obtermos versões da mesma aplicação para vários aparelhos a partir de um único código-fonte. Por fim, mostraremos um exemplo de como construir uma aplicação utilizando essas ferramentas.






Java Mobile
Ant + Antenna com Java ME
Reuso de código entre aparelhos e otimização do processo de deploy

Uma das tarefas mais árduas no desenvolvimento de software para dispositivos móveis é escrever código que, além de prezar pelo bom gerenciamento de memória possa prover portabilidade a uma grande diversidade de fabricantes e modelos de aparelhos para os quais se desenvolve. Tamanho de tela, quantidade e disponibilidade de teclas, formato de áudio e vídeo suportados são algumas das características que variam bastante entre fabricantes e modelos. Mas como escrever um código que esteja preparado para todos esses tipos de variações? A utilização da ferramenta Ant juntamente com o Antenna é uma saída para esse tipo de problema.
A maioria das empresas que trabalham com o desenvolvimento mobile recorre a esse “artifício” para facilitar o processo de entrega (deploy) e tornar o seu código reutilizável, visando atingir o maior número de dispositivos possível. A Figura 1 mostra um esquema de como funciona o processo de deploy de uma aplicação Java ME com Ant e Antenna.
 
Figura 1. Etapas do deploy de uma aplicação Java ME com Ant/Antenna.

Conforme podemos ver na figura, o Ant recebe um arquivo XML e, baseado nesse arquivo, várias ações podem ser executadas. Veremos cada uma dessas ações mais adiante no artigo.
Termos e definições
Antes de continuarmos, vamos definir o que faz cada etapa do processo ilustrado na Figura 1:
•    Pré-processar: realiza uma varredura do código-fonte antes da compilação, que permite incluir diretivas de pré-processamento em código Java, similares às diretivas de compilação usadas na linguagem C, que de uma maneira geral definem partes do código que devem ou não ser compiladas;
•    Compilar: é o processo de gerar os bytecodes (arquivos *.class) Java usando um compilador como o javac;
•    Gerar JAD: é a criação do arquivo JAD (Java Application Descriptor) da aplicação;
•    Gerar JAR: empacota todos os bytecodes e os recursos da aplicação (imagens, sons, etc.) em um arquivo JAR (Java ARchive);
•    Obfuscar: reduz o tamanho do JAR final, renomeando classes, atributos e métodos para nomes menores, dificultando o entendimento do código caso seja submetido à engenharia reversa. Além disso, este processo remove classes, métodos, atributos e variáveis não utilizadas;
•    Pré-Verificar: A verificação dos bytecodes é feita em dois locais: na máquina do desenvolvedor e no aparelho. O processo de pré-verificação é realizado na máquina do desenvolvedor e consiste na inserção de anotações nas classes para reduzir o tempo e a memória necessários para realização da segunda etapa. Essas anotações são chamadas de “stack maps”, e melhoram o desempenho da execução de operações na pilha do interpretador. A segunda parte é realizada dentro do aparelho, onde os bytecodes são validados quanto a algum acesso indevido que viole a segurança da KVM (Kilobyte Virtual Machine).
Ant
O Ant é uma ferramenta para automatização de scripts desenvolvida pela Apache Foundation. Ela é similar ao make (usado na compilação de programas escritos na linguagem C, por exemplo), mas escrita em Java e independente de plataforma. Baseia-se em tarefas a serem executadas e descritas em um arquivo XML. Esse XML, chamado de build file, normalmente é nomeado como build.xml, e assim o  referenciaremos daqui para frente, é composto basicamente por quatro elementos:
•    project: elemento raiz do build file, representa o projeto a ser executado pelo Ant;
•    property: parâmetros que passam valores a serem utilizados nas tarefas. Servem como variáveis dentro do build.xml. Essas propriedades também podem ser carregadas a partir de arquivos .properties;
•    target: bloco de tarefas a ser executado;
•    task: tarefa a ser executada.

Cada target pode conter várias tasks, e essas estão mapeadas em tags XML que executam uma tarefa específica. A Listagem 1 mostra um exemplo simples de um build.xml para uma aplicação Java SE.

Listagem 1. Conteúdo do arquivo build.xml usando apenas Ant.
1. <?xml version="1.0"?>
2. <project name="OlaMundo" default="executar">
3.   <property name="dirDestino" value="classes"/>
4.   <property name="nomeDoJar" value="ola.jar"/>
5.   <target name="limpar">
6.      <delete dir="${dirDestino}"/>
7.      <delete file="${nomeDoJar}"/>
8.   </target>
9.   <target name="compilar" depends="limpar">
10.     <mkdir dir="${dirDestino}"/>
"


ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Mobile magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Publicidade
Autor
Silvio Paganini

(Sem mini-bio cadastrado)




Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03