Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Android 下忍
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Douglas Kayama
April 30, 2012
Technology
1
540
Android 下忍
Introductory talk about Android with a slightly developer focus.
Douglas Kayama
April 30, 2012
Tweet
Share
More Decks by Douglas Kayama
See All by Douglas Kayama
TensorFlow no Android – v2
douglasdrumond
0
35
BLE
douglasdrumond
0
33
TensorFlow no Android
douglasdrumond
0
28
Firebase or Realm?
douglasdrumond
0
82
Rio Dev Day – Introdução ao Android
douglasdrumond
0
99
Google I/O
douglasdrumond
0
63
Criando apps com alto nível de qualidade (versão longa)
douglasdrumond
0
42
Criando apps com alto nível de qualidade (versão curta)
douglasdrumond
0
30
Primeiros Passos com Google Fit
douglasdrumond
0
200
Other Decks in Technology
See All in Technology
Agile Leadership Summit Keynote 2026
m_seki
1
490
Oracle Cloud Observability and Management Platform - OCI 運用監視サービス概要 -
oracle4engineer
PRO
2
14k
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
140
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.2k
30万人の同時アクセスに耐えたい!新サービスの盤石なリリースを支える負荷試験 / SRE Kaigi 2026
genda
1
280
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
470
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
3
150
OWASP Top 10:2025 リリースと 少しの日本語化にまつわる裏話
okdt
PRO
2
160
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
430
Stately
mu7889yoon
1
110
GitLab Duo Agent Platform × AGENTS.md で実現するSpec-Driven Development / GitLab Duo Agent Platform × AGENTS.md
n11sh1
0
120
会社紹介資料 / Sansan Company Profile
sansan33
PRO
15
400k
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
The Curse of the Amulet
leimatthew05
1
8.3k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
Marketing to machines
jonoalderson
1
4.6k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Git: the NoSQL Database
bkeepers
PRO
432
66k
It's Worth the Effort
3n
188
29k
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
エンジニアに許された特別な時間の終わり
watany
106
230k
GitHub's CSS Performance
jonrohan
1032
470k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
63
Transcript
Android Լ Douglas Drumond
[email protected]
Por que Android?
Crescimento Source: Gartner (Feb 2011)
Crescimento Symbian Android RIM iOS Microsoft Other OS Source: Gartner
(Feb 2011)
Crescimento Symbian Android RIM iOS Microsoft Other OS Symbian Android
RIM iOS Microsoft Other OS Source: Gartner (Feb 2011)
Crescimento Symbian Android RIM iOS Microsoft Other OS Symbian Android
RIM iOS Microsoft Other OS Source: Gartner (Feb 2011)
Crescimento Symbian Android RIM iOS Microsoft Other OS Symbian Android
RIM iOS Microsoft 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 é? Linux Kernel Bibliotecas Framework Aplicações 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 Linux Kernel Bibliotecas Dalvik
Arquitetura Linux Kernel Bibliotecas Framework Dalvik
Arquitetura Linux Kernel Bibliotecas Framework Aplicações Dalvik
Arquitetura Linux Kernel Bibliotecas Framework Aplicações Dalvik
Arquitetura
Arquitetura Linux Kernel
Arquitetura Linux Kernel Display Driver Keypad Driver Camera Driver WiFi
Driver Flash Memory Driver Audio Driver Gerenciamento de energia IPC
Arquitetura Linux Kernel Bibliotecas Framework Aplicações Dalvik
Arquitetura
Dalvik Arquitetura
Dalvik Arquitetura • Baseada em registradores • .dex
Arquitetura Linux Kernel Bibliotecas Framework Aplicações Dalvik
Arquitetura
Arquitetura Bibliotecas
Arquitetura Bibliotecas Surface Manager OpenGL ES Media Framework FreeType SSL
SQLite libc (bionic) WebKit
Arquitetura Linux Kernel Bibliotecas Framework Aplicações Dalvik
Arquitetura
Arquitetura Application Framework
Arquitetura Application Framework Activity Manager Window Manager Content Providers Telephony
Manager Location Manager Resource Manager View System Notification Manager
Arquitetura Linux Kernel Bibliotecas Framework Aplicações Dalvik
Arquitetura
Arquitetura Aplicações
Arquitetura Aplicações Home Contacts Phone Browser Email SMS Music Maps
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() onResume() em execução onPause() Primeiro plano
Activity onCreate() onStart() onResume() em execução onPause() onStop() Primeiro plano
Activity onCreate() onStart() onRestart() onResume() em execução onPause() onStop() Primeiro
plano
Activity onCreate() onStart() onRestart() onResume() em execução onPause() onStop() Primeiro
plano
Activity onCreate() onStart() onRestart() onResume() em execução onPause() onStop() Primeiro
plano Visível
Activity onCreate() onStart() onRestart() onResume() em execução onPause() onStop() onDestroy()
Primeiro plano Visível
Activity onCreate() onStart() onRestart() onResume() em execução onPause() onStop() onDestroy()
shutdown Primeiro plano Visível
Activity onCreate() onStart() onRestart() onResume() em execução onPause() onStop() onDestroy()
shutdown Primeiro plano Visível Ciclo de vida completo
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() onStart() em execução onDestroy() Ciclo de vida em
atividade
Service onCreate() onStart() em execução onDestroy() shutdown Ciclo de vida
em atividade
Service onCreate() onStart() em execução onDestroy() shutdown Ciclo de vida
em atividade Ciclo de vida completo
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 onReceive() em execução Fim Ciclo de vida em
atividade
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
US$ 25,00 uma única vez Android Market Desenvolvedor escolhe o
preço 30/70
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