[Unicamp Fórum Permanente] Android Faixa Branca – 2011

138
Android Faixa Branca Douglas Drumond [email protected]

description

Palestra ministrada no Fórum Permanente de Software Livre da Unicamp

Transcript of [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Page 1: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Android Faixa BrancaDouglas Drumond

[email protected]

Page 2: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

E aí?

Page 3: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

E aí?

• Motivação

Page 4: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

E aí?

• Motivação

• Por dentro do Android

Page 5: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

E aí?

• Motivação

• Por dentro do Android

• Por dentro das aplicações

Page 6: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

E aí?

• Motivação

• Por dentro do Android

• Por dentro das aplicações

• Ferramentas de desenvolvimento

Page 7: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Por que Android?

Page 8: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Crescimento

Source: Gartner (Feb 2011)

Page 9: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Crescimento

Symbian AndroidRIM iOSMicrosoft Other OS

Source: Gartner (Feb 2011)

Page 10: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Crescimento

Symbian AndroidRIM iOSMicrosoft Other OS

Symbian Android RIMiOS Microsoft Other OS

Source: Gartner (Feb 2011)

Page 11: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Crescimento

Symbian AndroidRIM iOSMicrosoft Other OS

Symbian Android RIMiOS Microsoft Other OS

Source: Gartner (Feb 2011)

Page 12: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Crescimento

Symbian AndroidRIM iOSMicrosoft Other OS

Symbian Android RIMiOS Microsoft Other OS

Source: Gartner (Feb 2011)

Page 13: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Android Market share

Source: Techcrunch & Google

Page 14: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Android Market share

Source: Techcrunch & Google

Page 15: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

100 milhõesTotal de Ativações

Page 16: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Android Market share

36OEM’s

215operadoras

450kdesenvolvedores

310modelos

112países

Page 17: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Android Market (apps)

Page 18: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Android Market (apps)

• Aproximadamente 200.000

Page 19: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Android Market (apps)

• Aproximadamente 200.000

• 4,5 bilhões de downloads

Page 20: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Android Market (apps)

• Aproximadamente 200.000

• 4,5 bilhões de downloads

• 1 bilhão nos últimos 60 dias

Page 21: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

O que é?

Page 22: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

O que é?

Linux Kernel

Bibliotecas

Framework

Aplicações

Dalvik

Page 23: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Livre

Page 24: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Livre

Page 25: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Livre

Page 26: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Livre

Page 27: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

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

Page 28: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Versões

Page 29: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Versões

Page 30: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Arquitetura

Page 31: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Arquitetura

Linux Kernel

Page 32: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Arquitetura

Linux Kernel

Bibliotecas Dalvik

Page 33: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Arquitetura

Linux Kernel

Bibliotecas

Framework

Dalvik

Page 34: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Arquitetura

Linux Kernel

Bibliotecas

Framework

Aplicações

Dalvik

Page 35: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Arquitetura

Linux Kernel

Bibliotecas

Framework

Aplicações

Dalvik

Page 36: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Arquitetura

Page 37: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Arquitetura

Linux Kernel

Display Driver

Keypad Driver

Camera Driver

WiFi Driver

Flash Memory Driver

Audio Driver

Gerenciamento de energia

IPC

Page 38: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Arquitetura

Linux Kernel

Bibliotecas

Framework

Aplicações

Dalvik

Page 39: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Arquitetura

Page 40: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Dalvik

Arquitetura

Page 41: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Dalvik

Arquitetura

• Baseada em registradores

• .dex

Page 42: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Arquitetura

Linux Kernel

Bibliotecas

Framework

Aplicações

Dalvik

Page 43: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Arquitetura

Page 44: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Arquitetura

Bibliotecas

Surface Manager

OpenGL ES

Media Framework

FreeType

SSL

SQLite

libc (bionic)

WebKit

Page 45: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Arquitetura

Linux Kernel

Bibliotecas

Framework

Aplicações

Dalvik

Page 46: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Arquitetura

Page 47: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Arquitetura

Application Framework

Activity Manager

Window Manager

Content Providers

Telephony Manager

Location Manager

Resource Manager

View System

Notification Manager

Page 48: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Arquitetura

Linux Kernel

Bibliotecas

Framework

Aplicações

Dalvik

Page 49: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Arquitetura

Page 50: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Arquitetura

Aplicações

Home

Contacts

Phone

Browser

Email

SMS

Music

Maps

Page 51: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Dissecando as Aplicações

Page 52: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Activity

Page 53: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Service

Page 54: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Content Provider

Page 55: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Intent

Page 56: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Intent

Page 57: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Intent

Page 58: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Intent

Page 59: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Intent

Page 60: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Intent

Page 61: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Intent

• Possui um alvo facultativo

Page 62: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Intent

• Possui um alvo facultativo

• Se não tiver especificado alvo, o sistema encontra um

Page 63: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Intent

• Possui um alvo facultativo

• Se não tiver especificado alvo, o sistema encontra um

• Pode executar uma Activity ou Service específico

Page 64: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Intent

• Possui um alvo facultativo

• Se não tiver especificado alvo, o sistema encontra um

• Pode executar uma Activity ou Service específico

• IntentFilters

Page 65: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Broadcast Receiver

Page 66: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Broadcast Receiver

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

Page 67: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Broadcast Receiver

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

• Roda em segundo plano

Page 68: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Broadcast Receiver

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

• Roda em segundo plano

• Reage a mensagens de broadcast

Page 69: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Broadcast Receiver

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

• Roda em segundo plano

• Reage a mensagens de broadcast

• Exemplo: carga de bateria

Page 70: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Service

Page 71: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

ServiceonCreate()

onStart()

em execução

onDestroy()

shutdown

Ciclo de vida em atividade

Ciclo de vida completo

Page 72: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Activity

Page 73: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Activity

• Interface

Page 74: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Activity

• Interface

• Um objetivo

Page 75: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Activity

• Interface

• Um objetivo

• Várias por aplicativo

Page 76: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Activity

• Interface

• Um objetivo

• Várias por aplicativo

• Pode iniciar outras activities

Page 77: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Activity

Page 78: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Activity

• 3 estados: ativa, em pausa e parada

Page 79: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Activity

• 3 estados: ativa, em pausa e parada

• 3 ciclos de vida

Page 80: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Activity

• 3 estados: ativa, em pausa e parada

• 3 ciclos de vida

• pode morrer a qualquer momento se não estiver ativa

Page 81: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Activity

Page 82: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

ActivityonCreate()

Page 83: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

ActivityonCreate()

onStart()

Page 84: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

ActivityonCreate()

onStart()

onResume()

Page 85: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

ActivityonCreate()

onStart()

onResume()

em execução

Page 86: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

ActivityonCreate()

onStart()

onResume()

em execução

onPause()

Page 87: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

ActivityonCreate()

onStart()

onResume()

em execução

onPause()

Page 88: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

ActivityonCreate()

onStart()

onResume()

em execução

onPause()

Primeiro plano

Page 89: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

ActivityonCreate()

onStart()

onResume()

em execução

onPause()

onStop()

Primeiro plano

Page 90: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

ActivityonCreate()

onStart() onRestart()

onResume()

em execução

onPause()

onStop()

Primeiro plano

Page 91: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

ActivityonCreate()

onStart() onRestart()

onResume()

em execução

onPause()

onStop()

Primeiro plano

Page 92: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

ActivityonCreate()

onStart() onRestart()

onResume()

em execução

onPause()

onStop()

Primeiro plano

Visível

Page 93: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

ActivityonCreate()

onStart() onRestart()

onResume()

em execução

onPause()

onStop()

onDestroy()

Primeiro plano

Visível

Page 94: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

ActivityonCreate()

onStart() onRestart()

onResume()

em execução

onPause()

onStop()

onDestroy()

shutdown

Primeiro plano

Visível

Page 95: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

ActivityonCreate()

onStart() onRestart()

onResume()

em execução

onPause()

onStop()

onDestroy()

shutdown

Primeiro plano

Visível

Ciclo de vida completo

Page 96: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Multitarefa

Page 97: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Multitarefa

Page 98: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Multitarefa

onCreate()

Page 99: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Multitarefa

onPause()

Page 100: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Multitarefa

Page 101: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Multitarefa

onResume()

Page 102: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Multitarefa

onPause()

Page 103: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Multitarefa

onStop()

Page 104: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Multitarefa

onStop() onCreate()

Page 105: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Multitarefa

onStop() onCreate()

onPause()

Page 106: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Multitarefa

onStop() onCreate()

onStop()

onPause()

Page 107: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Multitarefa

onStop() onCreate()

onStop()

onPause()

Page 108: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Multitarefa

onStop() onCreate() onCreate()

onStop()

onPause()

Page 109: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Multitarefa

onRestart()

onStop() onCreate() onCreate()

onStop()

onPause()

Page 110: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Multitarefa

onStart()

onRestart()

onStop() onCreate() onCreate()

onStop()

onPause()

Page 111: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Ferramentas

Page 112: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Pré-requisitos

Page 113: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Pré-requisitos

• JDK

Page 114: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Pré-requisitos

• JDK

• Android SDK

Page 115: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Ambiente

Page 116: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Ambiente

• Linux

Page 117: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Ambiente

• Linux

• Mac OS X (Intel)

Page 118: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Ambiente

• Linux

• Mac OS X (Intel)

• Windows XP ou superior

Page 119: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Ferramentas

Page 120: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Ferramentas

Page 121: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Ferramentas

Page 122: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Ferramentas

Page 123: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Ferramentas

Page 124: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Ferramentas

Page 125: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Ferramentas

• Remote debugger

• logcat

• DDMS

Page 126: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Ferramentas

Page 127: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Ferramentas

Page 128: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Ferramentas

Page 129: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Google Chrome

Page 130: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Google Chrome

Page 131: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Android Market

Page 132: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Android Market

Desenvolvedor escolhe o preço

Page 133: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Android Market

Desenvolvedor escolhe o preço

30/70

Page 134: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Android Market

Desenvolvedor escolhe o preço

30/70

US$ 99,00/ano

Page 135: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

US$ 25,00 uma única vez

Android Market

Desenvolvedor escolhe o preço

30/70

Page 136: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

Tarefa para casa

• developer.android.com

Page 137: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

ありがとう Obrigado

Page 138: [Unicamp Fórum Permanente] Android Faixa Branca – 2011

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