Você está na página 1de 11

A plataforma Android: Uma Introduo

Markus Endler

Android
Iniciativa da Google de prover uma plataforma aberta para Web mvel

Open Handset Alliance p


Associao de um grupo bastante heterogneo de empresas (operadoras, fabricantes de celulares)

> 30 companhias Fora do projeto se baseia no conceito de colaborao


Set./08: Set /08: Google anunciou o Andoid Market para comercializao de aplicaes

Set./08: lanado G1
Primeiro dispositivo para plataforma Android
2

O que Android?
Pilha de softwares para dispositivos mveis:
Um sistema operacional Um middleware Conjunto de aplicaes

Android SDK:
Projetos Ferramentas de desenvolvimento Emulador Conjunto de bibliotecas

Linguagem de programao:
Java

Mquina virtual:
Dalvik (Kernel GNU/Linux)

3
Android Definio

Caractersticas
Application Framewok:
Permite o reuso e a substituio de componentes

Mquina virtual Dalvik:


Otimizada para dispositivos mveis

Um navegador integrado:
Baseado no projeto WebKit (cdigo aberto)

Grficos otimizados:
Bibliotecas grficas 2D Grficos 3D baseado na especificao OpenGL 1.0

SQLite:
Para armazenamento de dados estruturados

Suporte para mdias:


Adio, vdeo, formatos de imagens (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG e GIF)

4
Android Caractersticas

Caractersticas
Questes dependentes do hardware:
Telefonia T l f i GPRS/GSM e EDGE Telefonia 3G WiFi Cmera GPS Bssola Acelermetro

5
Android Caractersticas

Arquitetura

Markus Endler

Aplicaes

Cliente de email Programa SMS Calendrio Mapas

Navegador Contatos Entre outros.

7
Android Arquitetura Aplicaes

Framework

View Content Providers Resource Manager Notification Manager Activity Manager

8
Android Arquitetura Framework

Bibliotecas
Andrid inclui um conjunto de bibliotecas C/C++ usadas por diversos componentes do sistema: System C Library Media Libraries Surface Manager LibWebCore SGL 3D Libraries FreeType SQLite

9
Android Arquitetura Bibliotecas

Bibliotecas
System C library uma implementao derivada da biblioteca C padro sistema (libc) do BSD adaptada para dispositivos rodando Linux. Media Libraries baseado no PacketVideos OpenCORE; as bibliotecas suportam os mais populares formatos de audio e video, bem como imagens estticas. Surface Manager acesso ao subsistema de exibio bem como as mltiplas camadas de aplicaes 2D e 3D; LibWebCore um web browser engine utilizado no Android Browser SGL o engine de grficos 2D 3D libraries uma implementao baseada no OpenGL 1.0; as bibliotecas utilizam acelerao 3D via hardware (quando disponvel) ou o software d renderizao 3D altamente otimizado i l d no A d id ft de d i lt t ti i d includo Android. FreeType renderizao de fontes bitmap e vector SQLite um poderoso e leve engine de banco de dados relacional disponvel para todas as aplicaes

Markus Endler

Android Runtime
Aplicao Android:
um processo Linux Possui sua prpria instncia da mquina virtual Dalvik

Executa arquivos .dex (ferramenta dx)

11
Android Arquitetura Android Runtime

Linux Kernel
Verso do kernel: 2.6 O kernel atua como uma camada de abstrao entre o hardware e o resto da pilha de software

Servios:
Segurana Gerenciamento de memria Gerenciamento de processos Pilha de protocolos de rede Modelo de drives

12
Android Arquitetura Linux Kernel

Estrutura de uma aplicao Android


Existem 4(5) tipos bsicos de elementos: Activities Intents e IntentFilters ( BroadcastReceivers) (e ) Services Content Providers Nem toda aplicao precisa ter todos os tipos, mas ter alguma combinao destes destes. Os componentes que compem a aplicao so declarados no arquivo AndroidManifest.xml.

Markus Endler

Android Manifest
AndroidManifest.xml necessrio p/ cada aplicao. Descreve os elementos da aplicao: (Activities, Content Providers, Services, and Intent Receivers) globalmente visveis, as classes de implementao de cada componente, e qual tipo de dado este pode tratar, quando pode ser ativado, etc. Compara-se cada Intent gerado com os Intentfilters registrados para identificar qual a atividade mais apropriada p p p para tratar este intent Pode-se tambm descrever as permisses e parmetros de instrumentao

Markus Endler

Tipos de Elementos
Activity = uma tela de sua aplicao; cada uma uma especializao da classe base Activity. Sua classe ser composta de views que respondem a eventos; uma atividade pode retornar um valor para outra atividade; Intent = classe usada para passar o controle de uma atividade para outra; um intent consiste de uma ao (evento/requisio) e uma URI indicando um dado sobre o qual a ao deve ser executada. Valores comuns para aes: MAIN ( t d d aplicao), (entrada da li ) VIEW, PICK, EDIT, etc. Exemplo: para visualizar informao de contato criase um intent com aoVIEW e a URI indicando os dados associados a uma pessoa.
Markus Endler

Tipos de Elementos
IntentFilter = desrio de quais intents uma Activity (ou BroadcastReceiver) capaz d t t e so B d tR i ) de tratar publicados no arquivo AndroidManifest.xml Exemplo: Uma Activity capaz de mostrar dados de uma pessoa iria publicar um IntentFilter com a capacidade VIEW para determinados dados; Obs: Activities com IntentFilters equivalentes podem ser trocadas a qualquer instante

Markus Endler

Tipos de Elementos
BroadcastReceiver deve ser usado quando a aplicao deve reagir a eventos externos aplicao (e.g. ligao telefnica, timer, rede wifi dispon el etc ) telefnica timer ifi disponvel, etc.) BroadcastReceivers so definidos no AndroidManifest.xml, ou so registrados usando mtodo Context.registerReceiver(). Obs: A aplicao no precisa estar executando; o sistema vai inci-la quando o BroadcastReceiver disparado di d Aplicaes tambm podem enviar seus IntentBroadcasts para outras aplicaes

Markus Endler

Tipos de Elementos
Servio = uma thread (processo) executando em background, independentemente de uma Interface do usurio (p.ex. tocar msicas de uma playlist) Activities (para escolha do album) podem se conectar a um servio usando Context.bindService() para inicia-lo (se j no executa) .Uma vez conectado, pode-se interagir com ele atravs da interface exportada pelo mesmo (p.ex. p/ pause) ContentProvider = uma classe usada para q aplicaes p que p compartilhem dados entre s ; implementa um conjunto de mtodos padro para armazenar e recuperar dados de um determinado tipo; Obs: aplicaes tambm podem interagir atravs de um banco de dados SQL ou de arquivos
Markus Endler

Aplicao Android
Obs: Cada Activity representa uma tela
GUI Commands & Display y
Intent Intent Fiter

Act1 Act2
BcastReceiver

Act3 Act4
Content Provider

Act1 Act2

Act3
CntxtBindService

Manifest
IntentBcast

Manifest

Content Provider
put/ get

Service A

Android Application Framework/ Dalvik/ C libraries Linux


Markus Endler

Memory

Instalao do SDK
Aps realizar o download do SDK, descompactar o arquivo .zip zip
Por exemplo, android_sdk_windows_m3-rc22a.zip

Instalando o plugin para Eclipse (ADT)


https://dl-ssl.google.com/android/eclipse/

20
Data Funneling Fases

Para saber mais...


Leia a documentao
Developer Toolbox http://code.google.com/android/toolbox/index.html Developing Applications: http://code.google.com/android/devel/index.html

Consulte os grupos de discusso:


http://code.google.com/android/groups.html http://code google com/android/groups html http://forum.portalandroid.org/

21

Você também pode gostar