curso android - parte i

Download Curso Android - Parte I

Post on 17-Jul-2015

1.535 views

Category:

Documents

0 download

Embed Size (px)

DESCRIPTION

Material do curso de desenvolvimento com Android, parte I.

TRANSCRIPT

Desenvolvimento mvel para a plataforma Android Parte I

2011

Desenvolvimento mvel para a plataforma Android Parte I

Marcelo Henrique Valenzi Amorim @marcelohva marcelohva.wordpress.comTM - Android is a trademark of Google Inc.

http://marcelohva.wordpress.com

1

Desenvolvimento mvel para a plataforma Android Parte I

2011

SumrioCaptulo 1 - Introduo plataforma Android ..................................................................................... 3 Dispositivos Android .................................................................................................................. 4 Arquitetura da plataforma Android ............................................................................................ 5 Camada do Kernel do Linux ..............................................................................................5 Camada do Runtime Android ............................................................................................5 Camada de Bibliotecas ......................................................................................................6 Camada Framework de Aplicao .....................................................................................6 Camada de Aplicaes .......................................................................................................7 Android SDK.............................................................................................................................. 7 Ferramentas de Desenvolvimento Android Development Tools (ADT) ................................. 7 Criando o ambiente de desenvolvimento ................................................................................... 7 Instalando o Java SE Development Kit (JDK) ..................................................................8 Instalando o Eclipse IDE ...................................................................................................8 Instalando o Android SDK ................................................................................................8 Instalando o plugin Android Development Tools (ADT) ..................................................8 Instalando os componentes e plataformas do Android SDK ...........................................10 Configurando o Android Virtual Device (AVD) ..............................................................12 Exerccios ................................................................................................................................. 12 Captulo 2 - Conceitos Fundamentais de uma Aplicao Android .................................................... 13 Componentes de uma aplicao ............................................................................................... 13 Ativando componentes ....................................................................................................14 Arquivo de Manifesto ......................................................................................................15 Resources .........................................................................................................................16 Activities .................................................................................................................................. 17 Criando uma Activity.......................................................................................................17 Implementando uma interface de usurio ........................................................................17 Ciclo de Vida ...................................................................................................................18 Salvando o estado ............................................................................................................21

http://marcelohva.wordpress.com

2

Desenvolvimento mvel para a plataforma Android Parte I

2011

Captulo 1 - Introduo plataforma AndroidAndroid uma plataforma de software para dispositivos mveis composta de um sistema operacional, middleware e algumas aplicaes. Maiores detalhes sobre sua arquitetura sero dados em captulos posteriores. A plataforma foi desenvolvida pela Google aps a compra da Android Inc. em meados de 2005 e posteriormente passou a ser evoluda tambm pela Open Handset Alliance (uma aliana entre algumas empresas com inteno de criar padres abertos para telefonia mvel), mas ainda mantendo a gerencia do produto e engenharia de processos sob a tutela do Google. No segundo semestre de 2008 foi lanado o primeiro telefone que rodava com o sistema Android: o HTC Dream. Desde ento o nmero de fornecedores e dispositivos que aderiram plataforma cresceu exponencialmente, tornando o Android uma das plataformas mais vendidas no mundo todo. De acordo com relatrio publicado em maro de 2011 pela Nielsen Company, a plataforma Android j possui 37% do mercado de smartphones nos Estados Unidos. O relatrio tambm apresenta a tendencia que mostra que a plataforma foi escolhida por 50% das pessoas que compraram um smartphone nos seis meses anteriores pesquisa. Esta grande ascenso no mercado somada tendencia de continuar crescendo torna a construo de software para a plataforma Android uma nova opo de mercado para muitos desenvolvedores.

Figura 1- Smartphone market share - March'11, Nielsen Mobile Insights, National (http://blog.nielsen.com/nielsenwire/?p=27418)

http://marcelohva.wordpress.com

3

Desenvolvimento mvel para a plataforma Android Parte I

2011

Dispositivos AndroidHoje existem diversos tipos de dispositivos rodando a plataforma Android, desde smartphones, tablets at novas tecnologias de Televisores como a Google TV. Dentre tantas opes de dispositivos no mercado existem tambm diversas verses da plataforma em execuo por todo o mundo. Para o nosso curso iremos utlilizar a verso 2.2, tambm chamada Froyo, por ser a que possui maior distribuio no mercado atualmente (vide abaixo). A distribuio atual das verses foi realizada catalogando todos os dispositivos que se conectaram ao Android Market por um periodo de 14 dias e pode ser encontrada no site developers.android.com. Platform Codename API Level 3 4 7 8 Distribution 1.0% 1.8% 13.3% 51.2% 0.6% 30.7% 0.2% 0.7% 0.5%

Android 1.5 Cupcake Android 1.6 Donut Android 2.1 Eclair Android 2.2 Froyo Android 2.3 9 Android 2.3.2 Android 2.3.3 Gingerbread 10 Android 2.3.4 Android 3.0 11 Honeycomb 12 Android 3.1 Android 3.2 13

Tabela 1: Distribuio de verses em uso da plataforma Android, Setembro 2011 developer.android.com

Figura 2- Distribuio de verses em uso da plataforma Android, Setembro 2011 developer.android.comhttp://marcelohva.wordpress.com 4

Desenvolvimento mvel para a plataforma Android Parte I

2011

Arquitetura da plataforma AndroidComo citado anteriormente, a plataforma composta de um sistema operacional, middleware e aplicaes chaves. A plataforma tambm possui sua prpria e otimizada Java Virtual Machine (JVM), conhecida como Dalvik VM. A plataforma formada em cima de uma pilha de camadas de software que roda em cima do sistema operacional modificado Linux com algumas bibliotecas C essenciais. Acima dessas camadas vem a Dalvik VM, as bibliotecas Java e as aplicaes finais dos usurios. Entrando em detalhes podemos separar a arquitetura em 5 camadas conforme a figura abaixo: Kernel do Linux (Linux Kernel), Bibliotecas (Libraries), Runtime do Android (Android Runtime), Framework de Aplicao (Application Framework) e a camada de aplicaes (Applications).

Figura 3 - Arquitetura da plataforma Android - developer.android.com

Camada do Kernel do LinuxA plataforma baseia-se no sistema operacional Linux (verso 2.6) para os servios centrais do sistema, tais como segurana, gerenciamento de memria, gerenciamento de processos, servios de rede e o modelo de drivers. O kernel tambm funciona como uma camada de abstrao entre o hardware e o resto das camadas de software da plataforma.

Camada do Runtime AndroidEssa camada inclui uma serie de bibliotecas que provm a maioria das funcionalidades disponveis nas principais bibliotecas da linguagem JAVA.

http://marcelohva.wordpress.com

5

Desenvolvimento mvel para a plataforma Android Parte I

2011

Cada aplicao Android roda em seu prprio processo, com sua prpria instancia da mquina virtual Dalvik (DVM) que otimizada para que os dispositivos possam rodar diversas mquinas virtuais ao mesmo tempo. A DVM tambm roda arquivos no formato Dalvik Executable (.dex) que otimizado para menor consumo de memria. A DVM baseada em registros e roda classes que foram compiladas pelo compilador da linguagem JAVA e depois transformadas para o formato .dex, atravs da ferramenta dx inclusa no SDK. A DVM baseia-se no kernel Linux para funcionalidades subjacentes como threading e o gerenciamento de baixo nvel de memria.

Camada de BibliotecasEssa camada inclui uma serie de bibliotecas C/C++ que so utilizadas por vrios componentes do sistema Android. Essas capacidades so expostas para os desenvolvedores pela camada do Application Framework. Algumas dessas bibliotecas so listadas abaixo: System C library biblioteca de sistema padro da linguagem C (libc), derivada do BSD e otimizada para dispositivos com Linux embarcado. Media Libraries baseda no PacketVideo's OpenCORE; as bibliotecas suportam os mais populares formatos de audio e video, bem como imagens estticas, incluindo os formatos MPEG4, H.264, MP3, AAC, AMR, JPG, e PNG. Surface Manager gere o acesso ao subsistema de exibio bem como as mltiplas camadas de aplicaes 2D e 3D. LibWebCore um engine de navegador web utilizado tanto no Android Browser quanto para exibies web. SGL o engine de grficos 2D. 3D libraries uma implementao baseada no OpenGL ES 1.0 APIs; as bibliotecas utilizam acelerao 3D via hardware (quando disponvel) ou o soft