Aula 01(Android™ Básico)
Introdução a plataforma Android™
Natanael FonsecaArquiteto de Software
Site Pessoal: www.natanaelfonseca.com.br
Ementa• O que é o Android™;• Versões da Plataforma;• Arquitetura;• Android Market;• Android SDK e Tools para desenvolvimento;• Hello World.
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;
Versões da PlataformaAndroid™ 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
CaracteristicasComo “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 (incluiA2DP 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”
Arquitetura
Dividido em cinco seções :
• Linux Kernel• Libraries• Android Runtime• Aplication Framework• Applications
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;
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
Android SDK e ToolsConstruido 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 utilizadas pelo Emulador.
<sdk>/platforms/<android-version>/
Sources for Android SDK Uma copia do fonte do Android <sdk>/sources/
Samples for SDK Demos muito uteis demonstrando recursos de cada plataforma.
<sdk>/platforms/<android-version>/samples/
Google APIs Utilizando para desenvolver aplicativos com diversas APIs do Google, Ex. Maps.
<sdk>/add-ons/
Android Support Bibliotecas que adicionam suporte a funcionalidades não existentes naquela versão da plataforma.
<sdk>/extras/android/support/
Google Play Billing APIs para Pagamento do Google. <sdk>/extras/google/
Google Play Licensing Bibliotecas e exemplos que permitem você verificação de licensa quando distribuindo na Google Play.
<sdk>/extras/google/
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
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;
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.
Hello World• Arquivo
– Aula01_HelloWorld.zip
• Trecho Relevante
package br.com.treinamento.helloworld;
import android.app.Activity;import android.os.Bundle;
public class MainActivity extends Activity {
@Overrideprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);}
}
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.
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.
Referencias
• Beginning Android™ Application Development, Wei-Meng Lee, Wiley 2011.• Android Training : http://developer.android.com/training/index.html.