Com o passar do tempo cada vez mais encontramos aplicações bem maiores relativamente ao seu espaço. Nos inicios tinhamos aplicações com 2-3MB, mas agora facilmente temos 20-30MB.

Porque agora ocupam mais?

Com este acréscimo chegamos rápidamente à pergunta porque isto aconteceu com o passar do tempo no mundo tecnológico? A resposta não tem apenas uma explicação, mas sim a uma variedade de argumentos:

  • a multiplicação das categorias DPI: neste momento temos um grande número de displays, que fazem aumentar os recursos
  • a evolução do Android: um sistema em constante evolução
  • as expectativas dos utilizadores, porque com o aumento de qualidade dos equipamentos, é requerido mais potência em software

Também é verdade que em muitos casos não podemos evitar este crescimento, mas no entanto vamos continuar com todas as medidas possíveis. Os desenvolvedores tentarão sempre reduzir ao máximo o tamanho, porque nem todos têm acesso a um boa ligação de internet e com um pacote de dados, que permita uma extravagancia de uma aplicação de 50MB.

Formato APK

Antes de tentar reduzir o tamanho, temos que perceber a estrutura. Resumidamente é um ficheiro com vários arquivos, mas com um formato bastante reduzido.

apk

Agora vamos falar de algumas técnicas para tentar reduzir o tamanho do ficheiro, mas uma coisa sabemos, temos dois tamanhos: um compresso e outro por comprimir.

Reduzir o tamanho do APK

Em primeiro lugar é necessário saber que um aplicativo é composto por três partes:

  • Código fonte JAVA
  • Recursos ASSETS
  • Código nativo
Limpeza na altura de começar

O normal antes de programar é conhecer bem a linguagem pois assim não iremos ter o que se chama, o código morto. Linhas de código que só ocupam espaço e não estão a ser úteis. Felizmente podemos contar com algumas ferramentas que ajudam a fazer a limpeza das várias linhas de programação.

ProGuard

Esta ferramenta tal como o nome indica, vai ajudar-nos a guardar o que interessa, e deitar fora o que não interessa. Vai percorrer todas as linhas e ver o que está parado dentro do APK.

proguard

Usar o LINT

O ProGuard serve para o código JAVA, mas se pretendemos melhorar os recursos disponíveis, é necessário utilizar o LINT. Aqui vai servir para ver os recursos físicos que não estão a ser utilizados, mediante a chamada: ./gradlew lint. Isto irá gerar uma extensa listagem dos recursos.

lint

Racionalizar os Recursos

Como devemos imaginar o Android possui uma fragmentação incrivelmente FORTE, mas por outro lado foi desenhado para suportar uma grande parte de equipamentos independentes da marca Google. A partir do Android 4.4, foram incluídas novas densidades como a TVDPI. Isto quer dizer, que a nossa App tem que servir em todas as novas versões. Cada vez mais, terá que servir em todos os equipamentos.

frag

Comprimir as imagens

Esta nova arquitectura no software do Android possui ferramentas que nos ajudam a comprimir as imagens que usamos dentro do APK. Mas continuamos a ter ferramentas muito importantes: pngquant, ImageAlpha e o ImageOptim.

Limitar o número de Arquitecturas

Apesar de grande parte do código ser JAVA, por vezes é preciso utilizar o código nativo (NDK). Assim sendo vamos precisar das arquitecturas Armeabi e x86.

Importante Reutilizar

Tal como no Mundo “normal”, temos que aprender a reutilizar para optimizar todo o código. Por exemplo: utilizar a mesma imagem, mas com formatos diferentes e tamanhos também, mas para isso utilizar sempre comandos, e não introduzir novos ficheiros, com o mesmo aspecto.

resource

Renderizar com código

As imagens são um dos factores que fazem o APK ser pesado em termos de tamanho. Uma solução é realizar as animações com a programação e não ter ficheiros de vídeo dentro da programação.

drawable

Repara agora que é possível realizar a animação com linhas de programação, fazendo assim uma grande redução do espaço total do APK.

drawable-animado

Ir mais LONGE?

Vimos agora uns pequenos truques que são utilizados pelos programadores, para reduzir o tamanho do APK. Mas agora diz-me que achas importante todas estas medidas? E será que com os avanços em termos de velocidade de internet, será mesmo necessário todos estes esquemas????

PUBLICIDADE

About The Author

Nuno Agonia
Desenvolvedor
Google+

A culpa disto tudo foi o momento em usei uns euros para adquirir o meu primeiro smartphone. Deste então tive a necessidade de compartilhar o conhecimento e as experiências vividas num equipamento tão pequeno, mas com tanto por descobrir...

One Response

Leave a Reply

Your email address will not be published.