SlideShare uma empresa Scribd logo
Android 下忍
Douglas Drumond	

drumond.douglas@gmail.com
Por que Android?
Crescimento

Source: Gartner (Feb 2011)
Crescimento

Symbian
RIM
Microsoft

Android
iOS
Other OS
Source: Gartner (Feb 2011)
Crescimento

Symbian
RIM
Microsoft

Android
iOS
Other OS

Symbian
iOS

Android
Microsoft

RIM
Other OS

Source: Gartner (Feb 2011)
Crescimento

Symbian
RIM
Microsoft

Android
iOS
Other OS

Symbian
iOS

Android
Microsoft

RIM
Other OS

Source: Gartner (Feb 2011)
Crescimento

Symbian
RIM
Microsoft

Android
iOS
Other OS

Symbian
iOS

Android
Microsoft

RIM
Other OS

Source: Gartner (Feb 2011)
Android Market share

Source: Techcrunch
Android Market share

Source: Techcrunch
Android Market (apps)
Android Market (apps)
• Aproximadamente 300.000
Android Market (apps)
• Aproximadamente 300.000
• 30.000 novos aplicativos por mês
Android Market (apps)
• Aproximadamente 300.000
• 30.000 novos aplicativos por mês
• Estimativa de download: 3,8 bilhões de apps
O que é?
O que é?
Aplicações
Framework
Bibliotecas
Linux Kernel

Dalvik
Livre
Livre
Livre
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
Arquitetura

Linux Kernel
Arquitetura

Bibliotecas
Linux Kernel

Dalvik
Arquitetura
Framework
Bibliotecas
Linux Kernel

Dalvik
Arquitetura
Aplicações
Framework
Bibliotecas
Linux Kernel

Dalvik
Arquitetura
Aplicações
Framework
Bibliotecas
Linux Kernel

Dalvik
Arquitetura
Arquitetura
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
Linux Kernel

Dalvik
Arquitetura
Arquitetura
Dalvik
Arquitetura
Dalvik

• Baseada em registradores	

• .dex
Arquitetura
Aplicações
Framework
Bibliotecas
Linux Kernel

Dalvik
Arquitetura
Arquitetura
Bibliotecas
Arquitetura
Bibliotecas
Surface Manager

SSL

OpenGL ES

SQLite

Media Framework

WebKit

FreeType

libc (bionic)
Arquitetura
Aplicações
Framework
Bibliotecas
Linux Kernel

Dalvik
Arquitetura
Arquitetura
Application Framework
Arquitetura
Application Framework
Activity Manager

Location Manager

Window Manager

Resource Manager

Content Providers

Notification Manager

Telephony Manager

View System
Arquitetura
Aplicações
Framework
Bibliotecas
Linux Kernel

Dalvik
Arquitetura
Arquitetura
Aplicações
Arquitetura
Aplicações
Home

Email

Contacts

SMS

Phone

Maps

Browser

Music
Dissecando as
Aplicações
Activity
Activity
• Interface
Activity
• Interface
• Um objetivo
Activity
• Interface
• Um objetivo
• Várias por aplicativo
Activity
• Interface
• Um objetivo
• Várias por aplicativo
• Pode iniciar outras activities
Activity
• Interface
• Um objetivo
• Várias por aplicativo
• Pode iniciar outras activities
• Herda de Activity
Activity
Activity
Activity
• 3 estados: ativa, em pausa e parada
Activity
• 3 estados: ativa, em pausa e parada
• 3 ciclos de vida
Activity
• 3 estados: ativa, em pausa e parada
• 3 ciclos de vida
• pode morrer a qualquer momento se não
estiver ativa
Activity
Activity
onCreate()
Activity
onCreate()

onStart()
Activity
onCreate()

onStart()

onResume()
Activity
onCreate()

onStart()

onResume()

em execução
Activity
onCreate()

onStart()

onResume()

em execução

onPause()
Activity
onCreate()

onStart()

onResume()

em execução

onPause()
Activity
onCreate()

onStart()
Primeiro plano

onResume()

em execução

onPause()
Activity
onCreate()

onStart()
Primeiro plano

onResume()

em execução

onPause()

onStop()
Activity
onCreate()

onStart()
Primeiro plano

onResume()

em execução

onPause()

onStop()

onRestart()
Activity
onCreate()

onStart()
Primeiro plano

onResume()

em execução

onPause()

onStop()

onRestart()
Activity
onCreate()
Visível

onStart()
Primeiro plano

onResume()

em execução

onPause()

onStop()

onRestart()
Activity
onCreate()
Visível

onStart()
Primeiro plano

onResume()

em execução

onPause()

onStop()

onDestroy()

onRestart()
Activity
onCreate()
Visível

onStart()
Primeiro plano

onResume()

em execução

onPause()

onStop()

onDestroy()

shutdown

onRestart()
Activity
Ciclo de vida completo

onCreate()

Visível

onStart()
Primeiro plano

onResume()

em execução

onPause()

onStop()

onDestroy()

shutdown

onRestart()
Service
Service
• Sem interface
Service
• Sem interface
• Roda em segundo plano
Service
• Sem interface
• Roda em segundo plano
• Executa na thread principal
Service
• Sem interface
• Roda em segundo plano
• Executa na thread principal
• Herda de Service
Service
Service
Service
• Ativo ou parado
Service
• Ativo ou parado
• Roda em segundo plano
Service
• Ativo ou parado
• Roda em segundo plano
• Pouco provável de ser morto
Service
Service
onCreate()
Service
onCreate()

onStart()
Service
onCreate()

onStart()

em execução
Service
onCreate()

onStart()

em execução

onDestroy()
Service
onCreate()

Ciclo de vida em atividade

onStart()

em execução

onDestroy()
Service
onCreate()

Ciclo de vida em atividade

onStart()

em execução

onDestroy()

shutdown
Service
Ciclo de vida completo

Ciclo de vida em atividade

onCreate()

onStart()

em execução

onDestroy()

shutdown
Content Provider
Content Provider
• Disponibiliza dados para outros aplicativos
Content Provider
• Disponibiliza dados para outros aplicativos
• Sistema de arquivos ou SQLite
Content Provider
• Disponibiliza dados para outros aplicativos
• Sistema de arquivos ou SQLite
• Herda de ContentProvider
Content Provider
Broadcast Receiver
Broadcast Receiver
• Não possui interface (com usuário)
Broadcast Receiver
• Não possui interface (com usuário)
• Roda em segundo plano
Broadcast Receiver
• Não possui interface (com usuário)
• Roda em segundo plano
• Reage a mensagens de broadcast
Broadcast Receiver
• Não possui interface (com usuário)
• Roda em segundo plano
• Reage a mensagens de broadcast
• Exemplo: carga de bateria
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
Broadcast Receiver
onReceive()
Broadcast Receiver
onReceive()

em execução
Broadcast Receiver
onReceive()

em execução

Fim
Broadcast Receiver
Ciclo de vida em atividade

onReceive()

em execução

Fim
Intent
Intent
• Possui um alvo facultativo
Intent
• Possui um alvo facultativo
• Se não tiver especificado alvo, o sistema
encontra um
Intent
• Possui um alvo facultativo
• Se não tiver especificado alvo, o sistema
encontra um

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

• Pode executar uma Activity ou Service
específico

• IntentFilters
Intent
Intent
Intent
Intent
Intent
Ferramentas
Pré-requisitos
Pré-requisitos
• JDK
Pré-requisitos
• JDK
• Android SDK
Ambiente
Ambiente
• Linux
Ambiente
• Linux
• Mac OS X (Intel)
Ambiente
• Linux
• Mac OS X (Intel)
• Windows XP ou superior
Ferramentas
Ferramentas
Ferramentas
Ferramentas
Ferramentas
Ferramentas
Ferramentas
• Remote debugger
• logcat
• DDMS
Ferramentas
Ferramentas
Ferramentas
Google Chrome
Google Chrome
Android Market
Android Market
Desenvolvedor escolhe o preço
Android Market
Desenvolvedor escolhe o preço
30/70
Android Market
Desenvolvedor escolhe o preço
30/70
US$ 99,00/ano
Android Market
Desenvolvedor escolhe o preço
30/70
Android Market
Android Market
Desenvolvedor escolhe o preço
Android Market
Desenvolvedor escolhe o preço
30/70
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/debuggingtracing.html

Mais conteúdo relacionado

ODP
PPT
drools + robocode
PDF
[DevCamp] Layouts Flexíveis no Android – 2013
PDF
Chapter 6 นวัต
PDF
[Unicamp Fórum Permanente] Android Faixa Branca – 2011
PDF
[Unicamp] curso vim – 2010
DOCX
Jenis kegiatan kpm
PDF
[FLISOL] Embelezando o Android – 2013
drools + robocode
[DevCamp] Layouts Flexíveis no Android – 2013
Chapter 6 นวัต
[Unicamp Fórum Permanente] Android Faixa Branca – 2011
[Unicamp] curso vim – 2010
Jenis kegiatan kpm
[FLISOL] Embelezando o Android – 2013

Semelhante a [MO901] Android 下忍 – 2011 (20)

PDF
[Faat] android faixa branca – 2012
PDF
Desenvolvimento Moderno de aplicativos Android
PPTX
Treze ferramentas/frameworks para desenvolvimento Android
PPTX
Treze ferramentas/frameworks para desenvolvimento android
PDF
Introdução ao Android
PDF
Palestra Testes Unidade Com JUnit
PDF
Informática para Internet - Informática Aplicada - Aula 10
PDF
Introdução a Plataforma Android
PPT
Android Palestra
PDF
Android 2303
PPTX
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
PDF
[Android devcamp] Android Bootcamp – 2012
PPTX
Aula02 android hands_on
PDF
TDC2016POA | Trilha Android - Testes no Android
PDF
TDC2016POA | Trilha Android - Testes no Android
PPTX
Dividindo para conquistar: microservicos com o jeitinho .NET
KEY
Android - Além do HelloWord
PPTX
Introdução ao Desenvolvimento para Android
PPTX
TypeScript - Campus party 2013
PDF
Criando Webservice REST com NodeJS, NoSQL & Docker
[Faat] android faixa branca – 2012
Desenvolvimento Moderno de aplicativos Android
Treze ferramentas/frameworks para desenvolvimento Android
Treze ferramentas/frameworks para desenvolvimento android
Introdução ao Android
Palestra Testes Unidade Com JUnit
Informática para Internet - Informática Aplicada - Aula 10
Introdução a Plataforma Android
Android Palestra
Android 2303
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Android devcamp] Android Bootcamp – 2012
Aula02 android hands_on
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Android
Dividindo para conquistar: microservicos com o jeitinho .NET
Android - Além do HelloWord
Introdução ao Desenvolvimento para Android
TypeScript - Campus party 2013
Criando Webservice REST com NodeJS, NoSQL & Docker
Anúncio

Mais de Douglas Drumond (6)

PDF
Android Wear – IO Extended
PDF
Android wear (coding)
PDF
[MobCamp 2014] Android Wear and Google Glass
PDF
[DevCamp 2014] Melhorando a Usabilidade com Animações
PDF
[DevCamp 2014] Melhorando a usabilidade com animações
PDF
[FLISOL] Android Faixa Branca (Iniciando no Android) – 2013
Android Wear – IO Extended
Android wear (coding)
[MobCamp 2014] Android Wear and Google Glass
[DevCamp 2014] Melhorando a Usabilidade com Animações
[DevCamp 2014] Melhorando a usabilidade com animações
[FLISOL] Android Faixa Branca (Iniciando no Android) – 2013
Anúncio

Último (16)

PPTX
Arquitetura de computadores - Memórias Secundárias
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Processos na gestão de transportes, TM100 Col18
Arquitetura de computadores - Memórias Secundárias
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
COBITxITIL-Entenda as diferença em uso governança TI
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Custos e liquidação no SAP Transportation Management, TM130 Col18
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Processos na gestão de transportes, TM100 Col18

[MO901] Android 下忍 – 2011