Introdução ao desenvolvimento Android

Olá a todos. Como post inaugural do blog, darei início a uma série de artigos relacionados ao desenvolvimento com a plataforma Android, abrangendo suas principais características e diferentes aspectos, construindo uma base de conhecimento progressiva, partindo do básico ao avançado. Para tanto, cada post abordará um assunto específico e seguirá uma ordem de dependência, sendo necessário o acompanhamento de todos os posts para desenvolvedores que não conhecem a tecnologia. Entretanto, para os mais experientes, pode-se avançar para tópicos específicos e, caso desejem, podem contribuir com novas informações nos comentários. Sem mais, vamos ao que interessa. =)

 O que é o Android?

A tecnologia Android refere-se a um sistema operacional de código aberto que foi criado pelo Google e visa atender o crescente mercado de dispositivos móveis, tendo como base o sistema operacional Linux. Apesar de ter sido criado pelo Google, o Android hoje é mantido por um grupo de empresas de diferentes setores que compõem o grupo OHA, ou Open Handset Alliance.

A plataforma possui uma ampla API (Application Programming Interface) de desenvolvimento baseada na linguagem de programação Java, possuindo uma versão própria da JVM (Java Virtual Machine), conhecida como Dalvik, que foi desenvolvida especificamente para executar em aparelhos móveis, tornando possível um melhor desempenho. Uma visão mais detalhada de sua arquitetura é exposta na Figura abaixo.

Fonte: Android Developers (2012)

  • Applications: Inclui tanto as aplicações nativas da plataforma, bem como todas as aplicações desenvolvidas por terceiros.
  • Application Framework: Esta camada inclui componentes de alto nível escritos em Java, que visam facilitar o desenvolvimento permitindo acesso aos diversos recursos disponíveis nos aparelhos, tais como sistema de notificações, localização por GPS, gerenciamento de ciclo de vida e navegação, componentes de interface, dentre vários outros.
  • Libraries: Bibliotecas comuns nas linguagens C e C++ que são abstraídas pelas classes da camada de framework.  Dentre seus principais componentes estão: o sistema de gerenciamento de banco de dados SQLite;  a biblioteca padrão do C (System C Library); a biblioteca Media Framework para aplicações multimídia e, por fim, a biblioteca OpenGL ES, para desenvolvimento de jogos e aplicações com renderização gráfica 3D.
  • Android Runtime: Envolve todo o gerenciamento de execução de aplicações em Android baseado na máquina virtual Dalvik, juntamente com um subconjunto das bibliotecas disponíveis na API padrão do Java.
  • Linux Kernel: Baseado na versão 2.6 do kernel do Linux, essa camada envolve a abstração do hardware dos dispositivos e inclui funcionalidades de baixo nível, tais como gerenciamento de memória e processos, bem como serviços de segurança e de redes. 

Ambiente de desenvolvimento

Atualmente disponível em sua versão 4.0, também referida como Ice Cream Sandwich, o SDK do Android normalmente está associado a um número conhecido como API Level, o que determina quais recursos da API estarão disponíveis para desenvolvimento na plataforma alvo. Por exemplo, há recursos disponíveis na versão 2.3 (API Level 9-10) do Android que não existiam na versão 2.2 (API Level 8), assim, uma aplicação desenvolvida para a versão 2.3 pode não funcionar corretamente em um aparelho que utiliza a versão anterior, todavia o contrário não é verdadeiro, significando que uma aplicação desenvolvida para a versão 2.2 normalmente é compatível com qualquer versão subseqüente. A Imagem abaixo demonstra a lista com todas as versões do SDK do Android e seus respectivos números referentes ao API Level.

Versões - Fonte: Adaptado de Android Developers (2012)

Como ferramentas, além do JDK instalado e do próprio SDK do Android, pode-se utilizar IDEs (Integrated Development Evironment) como o Eclipse ou Netbeans, juntamente com plug-ins específicos que objetivam facilitar o desenvolvimento. Para os exemplos optei por utilizar o Eclipse pela familiaridade com a ferramenta e pela grande facilidade provida pelo plug-in oficial ADT, ou Android Development Tools, que permite o uso de forma facilitada aos diversos recursos disponíveis do SDK, tais como o sistema de log através do LogCat e um eficiente emulador para testar as aplicações. Todas as ferramentas citadas podem ser baixadas nos links abaixo:

JDK: http://www.oracle.com/technetwork/java/javase/downloads/index.html

Android SDK: http://developer.android.com/sdk/index.html

Eclipse IDE: http://www.eclipse.org/downloads/

ADT Plug-in: http://developer.android.com/sdk/eclipse-adt.html

As ferramentas devem ser instaladas na ordem descrita acima. No caso do plug-in ADT, o mesmo deve ser adicionado ao Eclipse através do menu Help / Install New Software / Add, conforme pode ser observado no respectivo link. Caso tenha alguma dificuldade durante a instalação, este tutorial pode ajudá-lo.

No próximo post será demonstrado a estrutura geral de um projeto em Android e serão descritas em detalhes as principais classes envolvidas e diretórios, onde será implementado nosso primeiro exemplo. Deixem suas dúvidas e sugestões nos comentários. Até lá! =)

Referências:

žLECHETA, Ricardo R. Google Android: Aprenda a criar aplicações para dispositivos móveis com o Android SDK – 2 ed. São Paulo : Novatec Editora, 2010.
ž
žAndroid Developers: http://developer.android.com

Sobre allysonjeronimo
Bacharel em Sistemas de Informação (FIP-SI), desenvolvedor de software com experiência em soluções mobile, desktop e web nas linguagens de programação Java, PHP e C#. Atualmente atua com o desenvolvimento de aplicações Web em Java e aplicações mobile para a plataforma Android na empresa Viggo Sistemas (Caicó-RN). Nas horas vagas trabalha em projetos de desenvolvimento de jogos utilizando o framework XNA.

2 Responses to Introdução ao desenvolvimento Android

  1. Wanderson Almeida says:

    Muito bom Allyson.

  2. Rodrigo Farias Herculano Mendes says:

    Parabéns pela sua iniciativa Allyson! Você é muito bom no que faz…

Deixar mensagem para Rodrigo Farias Herculano Mendes Cancelar resposta