Este artigo faz parte de um Guia de Desenvolvimento para Android. O guia fala de vários temas necessários para construir uma aplicação simples na sua totalidade, abordando várias funcionalidades introduzidas no Honeycomb e que ainda são válidas para o Ice Cream Sandwich. Usamos um cliente do Google Buzz chamado Honeybuzz como exemplo para cada tópico. Na introdução encontra-se uma listagem completa de todos os artigos.
O primeiro passo é instalar o ambiente de desenvolvimento. Vamos usar o Eclipse, o IDE recomendado.
Instalar e configurar o SDK do Android e o ambiente de desenvolvimento
Para começar vai precisar de:
- Instalar o Eclipse (3.5 ou superior): Usei a edição "Eclipse IDE for Java Developers". Estou a usar a release Helios (3.6).
- Instalar o JDK (5 ou superior): não basta instalar o JRE. É preciso instalar o JDK (estou a usar a versão 6).
- Instalar o SDK do Android.
- Instalar o plugin das Android Development Tools (ADT) para o Eclipse: siga as instruções no link.
- Adicionar plataformas e componentes usando o AVD manager: certifique-se que adiciona a plataforma Android 3+, as ferramentas do SDK e as APIs da Google.
- Para fazer o debug num dispositivo físico (telefone, tablet, etc.) vai precisar de instalar um driver USB. Os drivers vêm por vezes com o software de instalação para o seu dispositivo, mas em muitos casos é necessário fazer o download do site do fabricante.
Também recomendo que usem um sistema de controlo de versão e os respectivos plugins para o Eclipse, embora isso seja fora do âmbito deste artigo. Podem pesquisar no Eclipse Marketplace a partir do próprio Eclipse (através do menu de ajuda), onde encontrarão muitos plugins differentes.
Criar o primeiro projecto Android
Criar o primeiro projecto Android é fácil.
- Vão a File > New > Project...
- Escolham Android Project em Android.
- Especifiquem os detalhes do projecto:
- Project name: Honeybuzz neste caso.
- Build target: vamos escolher a versão Android 3.0 para esta aplicação.
- Application name: o nome da aplicação (normalmente é parecido ou o mesmo nome do projecto, mas não necessariamente).
- Package name: um nome único que identifica a vossa aplicação. Escolham este nome com cuidado para evitar conflictos com outras aplicações. É comum escolher-se este nome no formato com.domain.application. Neste caso escolhemos com.quasibit.Honeybuzz (porque temos o domínio quasibit.com).
- Create activity: deve estar seleccionado para a maior parte das aplicações (uma Activity é basicamente um ecrã de uma aplicação Android) e devem escolher um nome descritivo. Por exemplo, a Activity principal desta aplicação é chamada HoneybuzzListActivity (porque mostra uma listagem dos últimos buzzes).
- Min SDK version: a versão mínima compatível com a vossa aplicação. Para o Honeycomb é a versão 11.
Adicionar bibliotecas externas
Depois de criar o projecto vamos adicionar as bibliotecas que precisamos. Existem diversas formas de definir as dependências. Uma forma popular é usando o Maven, que tem algumas vantagens como fazer o download automático de bibliotecas Java, mas também tem algumas desvantagens: é mais complexo de configurar inicialmente e no caso do Android não é possível iniciar uma sessão de debug num dispositivo a partir do Eclipse, porque as bibliotecas não vão ser incluídas no APK (Android Application Package) desta forma.
Vamos adicionar as bibliotecas manualmente:
- Façam download das bibliotecas necessárias.
- Google APIs Client Library for Java: Usei a versão 1.4.1-beta. Façam download da última versão aqui.
- Buzz API: usamos a versão 1-1.0.0-beta para este projecto. Façam também o download do código fonte e do JavaDoc.
- Criem uma nova pasta libraries no vosso projecto.
- Adicionem as bibliotecas, código fonte e JavaDoc a esta pasta. Certifiquem-se que os ficheiros são copiados (e não são meros links). Faço desta forma para poder guardar tudo no controlo de versões. Adicionei estas bibliotecas:
- google-api-client-1.4.1-beta
- google-api-client-extensions-android2-1.4.1-beta
- google-api-client-extensions-android3-1.4.1-beta
- google-api-client-googleapis-1.4.1-beta
- google-api-client-googleapis-extensions-android2-1.4.1-beta
- google-api-services-buzz-v1-1.0.0-beta
- E estas dependências:
- gson-1.6
- guava-r09
- jackson-core-asl-1.6.7
- jsr305-1.3.9
- Mais à frente no guia vamos também adicionar bibliotecas para estatísticas, publicidade e registo de erros.
- Especifiquem as bibliotecas nas propriedades do projecto.
- Façam right-click no projecto e abram as propriedades.
- Vão a Java Build Path e abram a tab Libraries.
- Adicionem todas as bibliotecas usando a opção Add JARs...:
- Expandam o vosso projecto e a pasta libraries e escolham o JAR.
- Expandam os detalhes do JAR e especifiquem a localização do código fonte e do JavaDoc quando disponível.
- Devem ficar com algo semelhante a isto:
O Google Plugin for Eclipse também ajuda a adicionar as APIs da Google ao projecto, mas neste caso não fizemos uso dele.
Configurar o ProGuard
Vamos fazer uma configuração extra para reduzir o tamanho da aplicação. O ProGuard comprime e optimiza ficheiros Java, retirando código que não é usado e fazendo várias optimizações no código restante.
Como configurar o ProGuard para a vossa aplicação Android:
- Editar o ficheiro default.properties e adicionar a linha:
proguard.config=proguard.cfg
- Editar o ficheiro proguard.cfg e adicionar as linhas seguintes:
# Needed by google-api-client to keep generic types and @Key annotations accessed via reflection
-keepclassmembers class * {
@com.google.api.client.util.Key <fields>;
}
-keepattributes Signature,RuntimeVisibleAnnotations,AnnotationDefault
# Needed by Guava
-dontwarn sun.misc.Unsafe
Esta é a base inicial do projecto. Em seguida, damos uma breve introdução ao desenvolvimento em Android.
Introdução ao desenvolvimento em Android
O melhor recurso sobre desenvolvimento em Android é o site Android Developers: tem guias de desenvolvimento, referências e recursos.
Neste guia vamos falar de diferentes tópicos, mas não nos vamos focar em demasia nos fundamentais do Android, porque o site Android Developers já faz um bom trabalho nesse aspecto. Para começar recomendo que leiam What is Android? e Application Fundamentals.
Uma visão geral de uma aplicação Android:
- A maior parte das aplicações usa Activities. Uma Activity é basicamente um ecrã da aplicação.
- Algumas aplicações usam Services quem correm no background. Um Service não tem uma interface e é usado em geral para correr processos de longa duração, como actualizar os dados de uma aplicação.
- Para lançar uma Activity ou um Service é necessário declarar um Intent. Um Intent não tem de pertencer à vossa aplicação. Um exemplo de um Intent é abrir uma página web no browser do utilizador.
- Cada aplicação tem um manifesto. No manifesto especificam-se todas as Activities, os Services, os widgets, as permissões necessárias e ainda mais. Está na raiz do projecto e é chamado AndroidManifest.xml.
- O interface das Activities define-se usando ficheiros de layout. Cada layout contém uma ou mais Views.
- Os recursos são guardados na pasta res. Todas as imagens do projecto, os layouts, as strings, as preferências, as configurações e ainda mais, são guardados nessa pasta.
- Uma aplicação Android é instalada usando um APK (Android Application Package): é um arquivo compilado com todos os recursos da aplicação. É este arquivo que é instalado nos dispositivos Android.
Antes de continuar recomendo que leiam pelo menos os 4 primeiros tutoriais encontrados no site Android Developers.