Você está na página 1de 57

Android 下忍

Douglas Drumond
douglas@eee19.com
Por que Android?
Crescimento
2010
2009

6% 4% 4%
9%
16%
38%
14% 47%

16%
20%
4%
23%

Symbian Android Symbian Android


RIM iOS RIM iOS
Microsoft Other OS Microsoft Other OS

Source: Gartner (Feb 2011)


Android Market share
Activations per day

400000

350000

300000

250000

200000

150000

100000

50000

2009 February-10 May-10 June-10 August-10 December-10 February-11

Source: Techcrunch
Android Market (apps)

• Aproximadamente 300.000
• 30.000 novos aplicativos por mês
• Estimativa de download: 3,8 bilhões de apps
O que é?
Aplicações

Framework

Bibliotecas Dalvik

Linux Kernel
Livre

Rede -> CDMA, 2G, 3G, 4G (LTE)


Display -> 2.55” (Xperia Mini), 3.7” (N1), 4” (Atrix)
Teclado -> ausente/presente
Video -> HDMI, VGA, etc
Livre

Rede -> CDMA, 2G, 3G, 4G (LTE)


Display -> 2.55” (Xperia Mini), 3.7” (N1), 4” (Atrix)
Teclado -> ausente/presente
Video -> HDMI, VGA, etc
Livre

Conseguiram fazer rodar até no iPhone


Livre

• Acesso ao código-fonte
Livre

• the definition of open: "mkdir android ; cd


android ; repo init -u git://
android.git.kernel.org/platform/
manifest.git ; repo sync ; make"
http://twitter.com/#!/arubin/status/27808662429
Versões
Arquitetura
Aplicações

Framework

Bibliotecas Dalvik

Linux Kernel
Arquitetura
Aplicações

Framework

Bibliotecas Dalvik

Linux Kernel
Arquitetura
Linux Kernel
Display Driver Flash Memory Driver

Keypad Driver Audio Driver

Camera Driver IPC

WiFi Driver Gerenciamento de energia


Arquitetura
Aplicações

Framework

Bibliotecas Dalvik

Linux Kernel
Arquitetura
Dalvik

• Baseada em registradores
• .dex
Arquitetura
Aplicações

Framework

Bibliotecas Dalvik

Linux Kernel
Arquitetura
Bibliotecas
Surface Manager SSL

OpenGL ES SQLite

Media Framework WebKit

FreeType libc (bionic)

Tipicamente C/C++
Arquitetura
Aplicações

Framework

Bibliotecas Dalvik

Linux Kernel
Arquitetura
Application Framework
Activity Manager Location Manager

Window Manager Resource Manager

Content Providers Notification Manager

Telephony Manager View System

Tipicamente Java
Arquitetura
Aplicações

Framework

Bibliotecas Dalvik

Linux Kernel
Arquitetura
Aplicações
Home Email

Contacts SMS

Phone Maps

Browser Music

Tipicamente Java, mas com NDK pode ser em C/C++


Dissecando as
Aplicações
Activity

• Interface
• Um objetivo
• Várias por aplicativo
• Pode iniciar outras activities
• Herda de Activity
Activity
Activity

• 3 estados: ativa, em pausa e parada


• 3 ciclos de vida
• pode morrer a qualquer momento se não
estiver ativa
Activity
Ciclo de vida completo
onCreate()

Visível
onStart() onRestart()

Primeiro plano
onResume()

em execução

onPause()

onStop()

onDestroy()

shutdown
Service

• Sem interface
• Roda em segundo plano
• Executa na thread principal
• Herda de Service
Service
Service

• Ativo ou parado
• Roda em segundo plano
• Pouco provável de ser morto
Service
Ciclo de vida completo
onCreate()

Ciclo de vida em atividade


onStart()

em execução

onDestroy()

shutdown
Content Provider

• Disponibiliza dados para outros aplicativos


• Sistema de arquivos ou SQLite
• Herda de ContentProvider
Content Provider
Broadcast Receiver

• Não possui interface (com usuário)


• Roda em segundo plano
• Reage a mensagens de broadcast
• Exemplo: carga de bateria
• Herda de BroadcastReceiver
Broadcast Receiver

Ciclo de vida em atividade


onReceive()

em execução

Fim
Intent
• Possui um alvo facultativo
• Se não tiver especificado alvo, o sistema
encontra um
• Pode executar uma Activity ou Service
específico
• IntentFilters

A mágica de como o Android é interligado


Intent

A mágica de como o Android é interligado


Intent

A mágica de como o Android é interligado


Ferramentas
Pré-requisitos

• JDK
• Android SDK
Ambiente

• Linux
• Mac OS X (Intel)
• Windows XP ou superior
Ferramentas

Eclipse, Motodev Studio (baseado em Eclipse), ou linha de comando mesmo


Ferramentas

Motodev Studio
Ferramentas

Interface designer no Eclipse


Ferramentas

Emulador
Ferramentas

• Remote debugger
• logcat
• DDMS
Ferramentas

DDMS
Ferramentas

hierarchyviewer
Ferramentas

traceview
Google Chrome

Chrome com Android Developers extension


Google Chrome
Android Market

• Desenvolvedor escolhe o preço


• 30/70
• US$ 99,00/ano

Também não tem período de aprovação


Android Market

• Desenvolvedor escolhe o preço


• 30/70
• US$ 25,00 uma única vez
O que estão
esperando?

• developer.android.com
Obrigado
Créditos
•http://www.flickr.com/photos/xazac/5090246138/sizes/s/in/
photostream/
•http://www.flickr.com/photos/bfishadow/4290430790/sizes/s/in/
photostream/
•http://www.flickr.com/photos/nickbutcher/5529239187/sizes/m/in/
photostream/
•http://www.flickr.com/photos/3bilder/5113921580/sizes/m/in/
photostream/
•http://www.flickr.com/photos/abulhussain/4543434080/sizes/o/in/
photostream/
•http://developer.android.com/guide/developing/debugging/debugging-
tracing.html

Você também pode gostar