Boas práticas de J2ME

24 junho 2009
Programar usando a plataforma J2ME é lidar com dispositivos com capacidade de memória, processamento e vídeo limitados. Portanto uma das maiores preocupações na hora de desenvolver é o desempenho.

Vale lembrar também que os aplicativos móveis devem raramente passar de 1Mb. Os mais apropriados são bem inferiores a metade deste tamanho.

Vamos ver algumas práticas que melhoram o desempenho das aplicações móveis, adiantando que muitas destas práticas podem sacrificar qualidades do seu código, como a legibilidade ou a fácil manutenção. Portanto estas devem ser aplicadas a códigos que realmente necessitem.

Otimizar seu código consiste muitas vezes em ignorar boas práticas de programação Orientado a Objetos. Veja algumas dicas:

* Use o menor número de classes possível
Não use classes para tratar eventos, pois estas geram 2 ao invés de 1 .class, ou seja quase dobra o tamanho de sua aplicação. Além de dentro do JAR, dois arquivos ocuparem mais espaço que um, porque terão dois nomes, dois timestamps e duas cópias de outras informações no header do JAR.

* Não use herança para diferenciar funcionalidades
Seguindo a dica acima, além dos custos de desempenho de adicionar if ou switch ser quase sempre menor que o custo de se ter uma hierarquia de classes.

* Use atributos públicos ou protected
Esta prática evita o uso de getters e setters, que além de reduzir gastos de memória torna o programa menos lento, porque não precisa invocar estes métodos.

* Use modificadores final ou static sempre que possível
Os métodos serão invocados mais rapidamente porque as invocações não são polimórficas. Atributos static também são acessados com melhor desempenho, pois após o carregamento da classe pela JVM, terão um endereço físico na memória. E as classes final facilitam otimizações da JVM.

* Minimize a alocação de objetos
Não abuse do new, prefira pré-alocar objetos e evite classes que só servem para encapsular poucos dados. A alocação e o garbage collector são bem menos avançados em java ME do que em JVMs SE.

Estas práticas podem assustar um pouco, mas não é difícil perceber sua veracidade, portanto nem sempre é necessário usar estas práticas. Esteja sempre ligado no tamanho da sua aplicação. Para reduzir o tamanho de JARs também temos ofuscadores de código, que além de diminuir o tamanho do JAR trocam nome de variáveis entre outros para dificultar a engenharia reversa do seu código. Um bom ofuscador é o ProGuard.

Referência:
Artigo Revista Java Magazine edição 49. Mini curso Programação Java ME - Parte 6: Mais APIs, mais desempenho e considerações finais

3 comentários:

  • wryel

    interessante, mas no faz sentir noobs em programação da epoca do colegial ! :D

  • javamovel.com

    É aquela história... Faça o que eu digo e não faça o que eu faço, rs.

    Essas dicas são muito interessantes, porém temos que levar em conta a organização, legibilidade e a manutenção do fonte. Creio que o maior problema seja quando usar essas técnicas..
    Agora fica a critério do leitor usar ou não as práticas. Mas o teste desse tipo de informação sempre é interessante ;)
    Att, javamovel

  • Postar um comentário