SlideShare une entreprise Scribd logo
1  sur  149
Télécharger pour lire hors ligne
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

Contenu connexe

Similaire à [MO901] Android 下忍 – 2011

[Faat] android faixa branca – 2012
[Faat] android faixa branca – 2012[Faat] android faixa branca – 2012
[Faat] android faixa branca – 2012Douglas Drumond
 
Desenvolvimento Moderno de aplicativos Android
Desenvolvimento Moderno de aplicativos AndroidDesenvolvimento Moderno de aplicativos Android
Desenvolvimento Moderno de aplicativos AndroidNelson Glauber Leal
 
Treze ferramentas/frameworks para desenvolvimento Android
Treze ferramentas/frameworks para desenvolvimento AndroidTreze ferramentas/frameworks para desenvolvimento Android
Treze ferramentas/frameworks para desenvolvimento AndroidAdriano Rocha
 
Treze ferramentas/frameworks para desenvolvimento android
Treze ferramentas/frameworks para desenvolvimento androidTreze ferramentas/frameworks para desenvolvimento android
Treze ferramentas/frameworks para desenvolvimento androidRicardo Longa
 
Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao Androidledsifes
 
Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitRobinson Castilho
 
Informática para Internet - Informática Aplicada - Aula 10
Informática para Internet - Informática Aplicada - Aula 10Informática para Internet - Informática Aplicada - Aula 10
Informática para Internet - Informática Aplicada - Aula 10Anderson Andrade
 
Introdução a Plataforma Android
Introdução a Plataforma AndroidIntrodução a Plataforma Android
Introdução a Plataforma AndroidÉdipo Souza
 
Android Palestra
Android PalestraAndroid Palestra
Android PalestraRenato
 
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de ValorSamanta Cicilia
 
[Android devcamp] Android Bootcamp – 2012
[Android devcamp] Android Bootcamp – 2012[Android devcamp] Android Bootcamp – 2012
[Android devcamp] Android Bootcamp – 2012Douglas Drumond
 
Aula02 android hands_on
Aula02 android hands_onAula02 android hands_on
Aula02 android hands_onRoberson Alves
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Androidtdc-globalcode
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Androidtdc-globalcode
 
Dividindo para conquistar: microservicos com o jeitinho .NET
Dividindo para conquistar: microservicos com o jeitinho .NETDividindo para conquistar: microservicos com o jeitinho .NET
Dividindo para conquistar: microservicos com o jeitinho .NETtdc-globalcode
 
Introdução ao Desenvolvimento para Android
Introdução ao Desenvolvimento para AndroidIntrodução ao Desenvolvimento para Android
Introdução ao Desenvolvimento para AndroidMário Valney
 
TypeScript - Campus party 2013
TypeScript - Campus party 2013TypeScript - Campus party 2013
TypeScript - Campus party 2013Giovanni Bassi
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerGiovanni Kenji Shiroma
 

Similaire à [MO901] Android 下忍 – 2011 (20)

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

Plus de Douglas Drumond

Android Wear – IO Extended
Android Wear – IO ExtendedAndroid Wear – IO Extended
Android Wear – IO ExtendedDouglas Drumond
 
[MobCamp 2014] Android Wear and Google Glass
[MobCamp 2014] Android Wear and Google Glass[MobCamp 2014] Android Wear and Google Glass
[MobCamp 2014] Android Wear and Google GlassDouglas Drumond
 
[DevCamp 2014] Melhorando a Usabilidade com Animações
[DevCamp 2014] Melhorando a Usabilidade com Animações[DevCamp 2014] Melhorando a Usabilidade com Animações
[DevCamp 2014] Melhorando a Usabilidade com AnimaçõesDouglas Drumond
 
[DevCamp 2014] Melhorando a usabilidade com animações
[DevCamp 2014] Melhorando a usabilidade com animações[DevCamp 2014] Melhorando a usabilidade com animações
[DevCamp 2014] Melhorando a usabilidade com animaçõesDouglas Drumond
 
[FLISOL] Android Faixa Branca (Iniciando no Android) – 2013
[FLISOL] Android Faixa Branca (Iniciando no Android) – 2013[FLISOL] Android Faixa Branca (Iniciando no Android) – 2013
[FLISOL] Android Faixa Branca (Iniciando no Android) – 2013Douglas Drumond
 

Plus de Douglas Drumond (6)

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

[MO901] Android 下忍 – 2011