O documento introduz os conceitos básicos do Android, incluindo:
1) Uma breve história do Android e suas principais versões.
2) A arquitetura do Android e suas principais características e funcionalidades.
3) Informações sobre o Android SDK, ferramentas de desenvolvimento e como executar aplicativos no emulador ou dispositivos reais.
2. Introdução a plataforma
Android™
Natanael Fonseca
Arquiteto de Software
Site Pessoal: www.natanaelfonseca.com.br
3. Ementa
• O que é o Android™;
• Versões da Plataforma;
• Arquitetura;
• Android Market;
• Android SDK e Tools para desenvolvimento;
• Hello World.
4. O que é o Android™ ?
• Sistema operacional;
• Versão modificada do Linux;]
• Criada por uma Start-Up chamada Android, Inc. em 2005;
• Estratégia da Google para entrar no mercado mobile;
• Open Souce e totalmente gratuito;
• Possui o apoio de diversas empresas fornecedoras de hardware:
Motorola, Sony Ericsson, Samsung, HTC e outras;
• Atratividade, ou seja, desenvolvedores escrevem para o Android e
distribuem para inumeros hardwares;
5. Versões da Plataforma
Android™ recebeu inumeros updates nos ultimos anos, cada update
recebe um apelido relacionado a uma sobremesa :
Versão Data Codename
1.0 23 de setembro 2008 --
1.1 9 de Fevereiro de 2009 --
1.5 30 de Abril de 2009 Cupcake
1.6 15 de Setembro de 2009 Donut
2.0/2.1 26 de Outubro de 2009 Eclair
2.2 20 de Maio de 2010 Froyo
2.3 6 de Dezembro de 2010 Gingerbread
3.0 22 de Fevereiro de 2011 Honeycomb
4.0 19 de outubro de 2011 Ice Cream Sandwich
4.1/4.2 27 de Junho de 2012 Jelly Bean
6. Caracteristicas
Como “Sistema Operacional” o Android™ suporta as seguintes
funcionalidades :
Feature Tipos
Storage SQL Lite, File and Content Provider.
Connectivity GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth (inclui
A2DP and AVRCP), WiFi, LTE, and WiMAX.
Messaging Suporta tanto SMS quanto MMS.
Web Browser Baseado no open-source WebKit, junto com Chrome’s V8 JavaScript engine
Media Support H.263, H.264 (in 3GP or MP4 container), MPEG-4 SP, AMR, AMR-WB (in 3GP
container), AAC, HE-AAC (in MP4 or 3GP container), MP3, MIDI, Ogg Vorbis, WAV,
JPEG, PNG, GIF, and BMP
Hardware Support Accelerometer Sensor, Camera, Digital Compass, Proximity Sensor e GPS
Multi-Touch Suporta multi-touch screens.
Multi-Tasking Suporta multi-tasking applications.
Flash Support Android 2.3 suporta Flash 10.1.
Tethering Suporta compartilhamento de conexão de Internet como um “wireless hotspot”
7. Arquitetura
Dividido em cinco seções :
• Linux Kernel
• Libraries
• Android Runtime
• Aplication Framework
• Applications
8. Android Market
• Agora se chama Google Play.
• Loja de Aplicativos Oficial da
Google;
• Anunciado em Agosto de 2008;
• Possui aplicativos pagos e
gratuitos;
• jogos, filmes, música e livros;
9. Ambiente de Desenvolvimento
Um ambiente típico de desenvolvimento android™
possui:
• Java SE Development Kit 5 ou 6 (JDK);
– http://www.oracle.com/technetwork/java/javase/downloads/index.html
• Android SDK;
– http://developer.android.com/sdk/index.html
• Eclipse 3.6.2 (Helios) ou superior
– http://eclipse.org/mobile/
• Android Development Tools (ADT) plug-in for Eclipse
– http://developer.android.com/tools/sdk/eclipse-adt.html
10. Android SDK e Tools
Construido de maneira modular o Android SDK possui um conjunto de pacotes que podem ser
baixados separadamente, são eles :
Pacote Descrção/Utilidade Localização
SDK Tools Debug e teste <sdk>/tools/
SDK Platform-tools Utilitarios especificos da versao do Android <sdk>/platform-tools/
Documentation Uma copia offline da documentação oficial <sdk>/docs/
SDK Platform Existe uma versão(SDK) para cada versão do Android. <sdk>/platforms/<android-version>/
System Images Imagens de cada versão do Android, normalmente <sdk>/platforms/<android-version>/
utilizadas pelo Emulador.
Sources for Android SDK Uma copia do fonte do Android <sdk>/sources/
Samples for SDK Demos muito uteis demonstrando recursos de cada <sdk>/platforms/<android-
plataforma. version>/samples/
Google APIs Utilizando para desenvolver aplicativos com diversas <sdk>/add-ons/
APIs do Google, Ex. Maps.
Android Support Bibliotecas que adicionam suporte a funcionalidades <sdk>/extras/android/support/
não existentes naquela versão da plataforma.
Google Play Billing APIs para Pagamento do Google. <sdk>/extras/google/
Google Play Licensing Bibliotecas e exemplos que permitem você verificação <sdk>/extras/google/
de licensa quando distribuindo na Google Play.
11. Opções de execução
• È possível rodar os aplicativos no Emulador Android ou em um device
Real Rodando uma das versões da Plataforma Android;
• Emulador tende a ser bem mais lento;
• Emulador te fornece mais liberdade na visualização da estrutura de
pastas;
• Device tende a ser bem mais rápido;
• Device permite uma experiencia mais proxima do usuário final;
VS
12. Emulador Android
• Fornecido junto com o Android SDK;
• Suporte a diferentes densidades de tela (ldpi,mdpi,hdpi,xhdpi);
• È possivel trabalhar em um ambiente rootavel;
• Simula mensagem, camera, chamadas e networking;
13. Configurando o Ambiente
• Configure a variavel de Ambiente ANDROID_HOME para a
pata raiz do seu SDK;
• Configure o Path do SO incluindo nele a pasta tools e platform-
tools do Android SDK;
• Configure o JDK no eclipse;
• Instale o driver do dispositivo plugado no
computador(Opcional, Samsung Kies);
• Crie um emulador compativel com os requisitos do projeto.
15. Anatomia de um Aplicativo Android
• src — Contém os arquivos .java source do seu projeto. neste exemplo temos o
arquivo MainActivity.java, que corresponde à unica Activity deste projeto.
• Android 2.3.3 library — Contém o arquivo android.jar, qual possui todas as
classes necessarias para rodar o aplicativo na plataforma escolhida.
• gen — Contém o arquivo R.java file, um arquivo "compiler-generated" que
referencia todas os recursos encontrados no projeto(Não modifique este
arquivo).
• assets — Esta pasta contém todos os assets usados pela sua aplicação tais como
HTML, arquivos texto, databases e etc.
• res — Recursos usados na aplicação, tais como arquivos de layout, values, strings
e outros. É possivel criar subdiretorios para adicionar suporte a diferentes
devices e configurações.
• AndroidManifest.xml — O arquivo de manifesto obrigatorio para sua aplicação
Android(O mais importante). Nele você espeficica informações necessárias ao
ambiente que vai executar sua aplicação, tais como Activities criadas,
Permissões, Serviços e Broadcast Receivers.
16. Dicas de quem já começou
• Domine a linguagem Java;
• Leve a sério o DRY(Don´t repeat yourself) Concept;
• Aprenda Design Patterns;
• Testes unitários podem te salvar um dia.
• Documentação é a chave para não se perder.
• Parece obvio, mas, planeje a Arquitetura com antecedencia.