Explorando o Application Resources do Android

Postado em 09. fev, 2012 por André Silva em Inovação, Java, Mobile

Desenvolver para Android não é uma tarefa fácil. Hoje existem cerca de 700 dispositivos que rodam Android. Além de rodarem diversas versões do android, eles possuem hardwares, telas e tamanhos diferentes. Uma grande dor de cabeça para o desenvolvedor Android, a conhecida fragmentação da plataforma.

Para facilitar o desenvolvimento e  aliviar a dor de cabeça do desenvolvedor, a plataforma Android desenvolveu uma ferramenta fantástica: o Application Resources.

O Application Resources é muito útil no desenvolvimento de aplicativos que serão usados por diversos dispositivos, principalmente se for no caso para smartphones e tablets.

Fonte: http://developer.android.com/images/resources/resource_devices_diagram2.png

Para se utilizar do Application Resources, basta colocar qualifiers nas pastas de Resources (res/). Quando criamos um projeto Android ele já tem a pasta layout. Se, por exemplo, formos criar layouts diferentes (mais adequados) para dispositivos de telas pequenas, criaremos a pasta layout-small. Nesse caso, small é seu qualifier.

Quando sua aplicação é executada, ela carregará os resources de acordo com os qualifiers do seu dispositivo. Se você não utilizar nenhum qualifier, a aplicação utilizará os resources defaults (sem qualifiers. Ex: layout, values, etc.). Aplicações podem possuir diferentes diretórios para diferentes qualifiers, como a figura mostra:

Se você vai desenvolver sua aplicação para uma grande quantidade de dispositivos, é praticamente obrigatório o uso do Application Resources. Ele vai evitar que você faça arquivos de layouts desnecessários, ou seja, ao invés de ter um arquivo XML dentro da pasta layout para cada tipo de tela, você terá o arquivo com o mesmo nome em uma pasta layout e outro com o conteúdo diferente em layout-small. Com isso você pode aproveitar as capacidades (processamento, qualidade e tamanho de telas) dos dispositivos.

Uma curta aplicação de exemplo está disponível no github. Nela exibimos um texto diferente para cada tipo de dispositivo: dispositivo com telas pequenas, telas médias, telas médias em landscape, telas grandes e telas grandes com versão 14. O Application Resources não serve só para internacionalização, no exemplo a ideia é exibir qual o tipo de tela que o dispositivo tem alterando apenas o conteúdo do arquivo strings.xml de acordo com os qualifiers. Seguindo esta ideia, também podemos utilizar o Application resources principalmente no styles.xml, facilitando trabalhar com os diferentes tipos e orientações de telas.

Uma aplicação que tem muitos detalhes diferentes em dispositivos diferentes pode aparecer com diversos qualifiers grandes, como values-pt-large-v14-land.

Mas tome cuidado, não saia colocando qualifiers em tudo. Antes disso, procure usar o que realmente você vai precisar. Esperamos te encontrar aqui no curso de desenvolvimento para Android!

André Silva ()

Mais sobre o autor

Tags: , , ,

6 Respostas para “Explorando o Application Resources do Android”

  1. Caio Ribeiro Pereira

    09. fev, 2012

    Bacana o post hein!

    Bem que vocês poderiam liberar para comunidade apostila do curso de Android! hehe

    Só um detalhe: a imagem de thumb desse post esta meio deformada na timeline do blog.

  2. Felipe Conde

    09. fev, 2012

    Muitos resources podem nos levar a resources não utilizados!
    Muitas vezes fica complicado de descobrir quais estão em uso e aqueles que não são.

    Pra isso, apartir da ADT 16 foi introduzida a ferramenta Android Lint. http://tools.android.com/tips/lint

    Mão na roda!

  3. Thiago Marinho

    02. mar, 2012

    Legal o post.

    vlw Felipe Conde, não conhecia o Lint.

  4. Marcos Franklin

    23. mai, 2012

    Muito boa matéria André Silva, poderia me dizer se no curso completo é passado como criar menus otimizados, com tabhost por exemplo quando digo otimizado digo como os do aplicativo do groupon ou parecido? Obrigado

  5. André Silva

    23. mai, 2012

    Opa Marcos Franklin,

    tudo bom?

    Desculpa, mas não entendi o ponto dos menus otimizados?

Trackbacks/Pingbacks

  1. Usando styles nos layouts da sua aplicação Android | blog.caelum.com.br - março 22, 2012

    [...] para quando o dispositivo estiver com a tela em landscape. Podemos resolver esse problema usando o Application Resources. Basta criarmos um main.xml na pasta layout e outro main.xml na pasta layout-land. Vamos começar [...]

Deixar uma Resposta