Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Android Bootcamp
Douglas Drumond!
drumond.douglas@gmail.com
eu.about()
eu.about()
• Técnico
eu.about()
• Técnico
• (pseudo)Matemático
eu.about()
• Técnico
• (pseudo)Matemático
• Bacharel em Ciência da Computação
eu.about()
• Técnico
• (pseudo)Matemático
• Bacharel em Ciência da Computação
• Analista de software no Instituto de
Pesqu...
@Eldorado
Aplicações
Framework
Bibliotecas
Linux Kernel

Dalvik
@Eldorado
Aplicações
Framework
Bibliotecas
Linux Kernel

Dalvik
BP
Hoje

http://www.flickr.com/photos/natalielucier/3619749009/
http://www.gtugs.org/
http://www.flickr.com/photos/donkeyhotey/5666071828/
Ferramentas
Pré-requisitos
• JDK!
• Android SDK
Sistema Operacional
• Linux!
• Mac OS X (Intel)!
• Windows XP ou superior
Ferramentas
Ferramentas
Ferramentas
Ferramentas
Ferramentas
Ferramentas
• Remote debugger
• logcat
• DDMS
Ferramentas
Ferramentas
Ferramentas
Ferramentas
Ferramentas
Livre
• the definition of open: "mkdir android ; cd

android ; repo init -u git://
android.git.kernel.org/platform/manifest...
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
Dissecando as
Aplicações
Activity
Service
Content Provider
Intent
Intent
Intent
Intent
Intent
Broadcast Receiver
• Não possui interface (com usuário)!
• Roda em segundo plano!
• Reage a mensagens de broadcast!
• Exem...
Activity
• Interface!
• Um objetivo!
• Várias por aplicativo!
• Pode iniciar outras activities
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()

onRestar...
Activity
onCreate()
Visível

onStart()
Primeiro plano

onResume()

em execução

onPause()

onStop()

onDestroy()

shutdown...
Activity
Ciclo de vida completo

onCreate()

Visível

onStart()
Primeiro plano

onResume()

em execução

onPause()

onStop...
Multitarefa
Multitarefa
Multitarefa

onCreate()
Multitarefa

onPause()
Multitarefa
Multitarefa

onResume()
Multitarefa

onPause()
Multitarefa

onStop()
Multitarefa

onStop()

onCreate()
Multitarefa

onStop()

onCreate()
onPause()
Multitarefa

onStop()

onCreate()
onPause()
onStop()
Multitarefa

onStop()

onCreate()
onPause()
onStop()
Multitarefa

onStop()

onCreate()
onPause()
onStop()

onCreate()
Multitarefa

onStop()

onCreate()

onRestart()

onPause()
onStop()

onCreate()
Multitarefa

onStop()

onCreate()

onRestart()

onPause()

onStart()

onStop()

onCreate()
Prática
• Criar uma aplicação com os métodos
onCreate(), onStart(), onResume(),
onPause(), onStop(), onDestroy() e
onResta...
UI

• Hierarquia de ViewGroups e Views
View Group

View Group

View

View

View

View

View

http://developer.android.com/guide/topics/ui/how-androiddraws.html
Layout
<?xml&version="1.0"&encoding="utf98"?>&
<LinearLayout&xmlns:android="http://schemas.android.com/apk/res/
android"&
...
Layout
public&void&onCreate(Bundle&savedInstanceState)&{&
&&&&super.onCreate(savedInstanceState);&
&&&&setContentView(R.la...
Layout
• FrameLayout!
• LinearLayout!
• TableLayout!
• RelativeLayout
Eventos
• Definir um listener e registrá-lo com a View!
• Sobrecarregar um método de callback na
View
Listeners
• onClick() → View.OnClickListener!
• onLongClick() → View.OnLongClickListener!
• onFocusChange() → View.OnFocus...
Listeners
//&Create&an&anonymous&implementation&of&OnClickListener&
private&OnClickListener&mCorkyListener&=&new&OnClickLi...
Listeners
public&class&ExampleActivity&extends&Activity&implements&
OnClickListener&{&
&&&&protected&void&onCreate(Bundle&...
Intents
• Comunicação intra e inter app de um jeito
amigável e inteligente!

• Serve para iniciar activities, services e
b...
Intents
• Possui um alvo facultativo!
• Se não tiver especificado alvo, o sistema
encontra um!

• Pode executar uma Activit...
Intents
• Component name!
• Action!
• Data!
• Category!
• Extras!
• Flags
Intents
Constante

Alvo

Ação

ACTION_CALL

activity

Inicia uma ligação

ACTION_EDIT

activity

Apresenta dados a serem e...
Intent filter
<intent9filter&.&.&.&>&
&&&&<action&android:name="com.example.project.SHOW_CURRENT"&/>&
&&&&<action&android:n...
http://developer.android.com/
!

http://developer.android.com/
resources/browser.html?tag=tutorial
www.slideshare.net/
douglasdrumond/
Obrigado
Upcoming SlideShare
Loading in …5
×

[Android devcamp] Android Bootcamp – 2012

Básico de Android apresentado no Bootcamp promovido pelo GTUG Campinas em conjunto com GTUG São Paulo

  • Be the first to comment

  • Be the first to like this

[Android devcamp] Android Bootcamp – 2012

  1. 1. Android Bootcamp Douglas Drumond! drumond.douglas@gmail.com
  2. 2. eu.about()
  3. 3. eu.about() • Técnico
  4. 4. eu.about() • Técnico • (pseudo)Matemático
  5. 5. eu.about() • Técnico • (pseudo)Matemático • Bacharel em Ciência da Computação
  6. 6. eu.about() • Técnico • (pseudo)Matemático • Bacharel em Ciência da Computação • Analista de software no Instituto de Pesquisas Eldorado
  7. 7. @Eldorado Aplicações Framework Bibliotecas Linux Kernel Dalvik
  8. 8. @Eldorado Aplicações Framework Bibliotecas Linux Kernel Dalvik BP
  9. 9. Hoje http://www.flickr.com/photos/natalielucier/3619749009/
  10. 10. http://www.gtugs.org/
  11. 11. http://www.flickr.com/photos/donkeyhotey/5666071828/
  12. 12. Ferramentas
  13. 13. Pré-requisitos • JDK! • Android SDK
  14. 14. Sistema Operacional • Linux! • Mac OS X (Intel)! • Windows XP ou superior
  15. 15. Ferramentas
  16. 16. Ferramentas
  17. 17. Ferramentas
  18. 18. Ferramentas
  19. 19. Ferramentas
  20. 20. Ferramentas • Remote debugger • logcat • DDMS
  21. 21. Ferramentas
  22. 22. Ferramentas
  23. 23. Ferramentas
  24. 24. Ferramentas
  25. 25. Ferramentas
  26. 26. 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
  27. 27. Arquitetura
  28. 28. Arquitetura Linux Kernel
  29. 29. Arquitetura Bibliotecas Linux Kernel Dalvik
  30. 30. Arquitetura Framework Bibliotecas Linux Kernel Dalvik
  31. 31. Arquitetura Aplicações Framework Bibliotecas Linux Kernel Dalvik
  32. 32. Arquitetura Aplicações Framework Bibliotecas Linux Kernel Dalvik
  33. 33. Dissecando as Aplicações
  34. 34. Activity
  35. 35. Service
  36. 36. Content Provider
  37. 37. Intent
  38. 38. Intent
  39. 39. Intent
  40. 40. Intent
  41. 41. Intent
  42. 42. Broadcast Receiver • Não possui interface (com usuário)! • Roda em segundo plano! • Reage a mensagens de broadcast! • Exemplo: carga de bateria
  43. 43. Activity • Interface! • Um objetivo! • Várias por aplicativo! • Pode iniciar outras activities
  44. 44. Activity • 3 estados: ativa, em pausa e parada! • 3 ciclos de vida! • pode morrer a qualquer momento se não estiver ativa
  45. 45. Activity
  46. 46. Activity onCreate()
  47. 47. Activity onCreate() onStart()
  48. 48. Activity onCreate() onStart() onResume()
  49. 49. Activity onCreate() onStart() onResume() em execução
  50. 50. Activity onCreate() onStart() onResume() em execução onPause()
  51. 51. Activity onCreate() onStart() onResume() em execução onPause()
  52. 52. Activity onCreate() onStart() Primeiro plano onResume() em execução onPause()
  53. 53. Activity onCreate() onStart() Primeiro plano onResume() em execução onPause() onStop()
  54. 54. Activity onCreate() onStart() Primeiro plano onResume() em execução onPause() onStop() onRestart()
  55. 55. Activity onCreate() onStart() Primeiro plano onResume() em execução onPause() onStop() onRestart()
  56. 56. Activity onCreate() Visível onStart() Primeiro plano onResume() em execução onPause() onStop() onRestart()
  57. 57. Activity onCreate() Visível onStart() Primeiro plano onResume() em execução onPause() onStop() onDestroy() onRestart()
  58. 58. Activity onCreate() Visível onStart() Primeiro plano onResume() em execução onPause() onStop() onDestroy() shutdown onRestart()
  59. 59. Activity Ciclo de vida completo onCreate() Visível onStart() Primeiro plano onResume() em execução onPause() onStop() onDestroy() shutdown onRestart()
  60. 60. Multitarefa
  61. 61. Multitarefa
  62. 62. Multitarefa onCreate()
  63. 63. Multitarefa onPause()
  64. 64. Multitarefa
  65. 65. Multitarefa onResume()
  66. 66. Multitarefa onPause()
  67. 67. Multitarefa onStop()
  68. 68. Multitarefa onStop() onCreate()
  69. 69. Multitarefa onStop() onCreate() onPause()
  70. 70. Multitarefa onStop() onCreate() onPause() onStop()
  71. 71. Multitarefa onStop() onCreate() onPause() onStop()
  72. 72. Multitarefa onStop() onCreate() onPause() onStop() onCreate()
  73. 73. Multitarefa onStop() onCreate() onRestart() onPause() onStop() onCreate()
  74. 74. Multitarefa onStop() onCreate() onRestart() onPause() onStart() onStop() onCreate()
  75. 75. Prática • Criar uma aplicação com os métodos onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy() e onRestart()! • Colocar logs nesses métodos e observar o que acontece
  76. 76. UI • Hierarquia de ViewGroups e Views
  77. 77. View Group View Group View View View View View http://developer.android.com/guide/topics/ui/how-androiddraws.html
  78. 78. Layout <?xml&version="1.0"&encoding="utf98"?>& <LinearLayout&xmlns:android="http://schemas.android.com/apk/res/ android"& &&&&&&&&&&&&&&android:layout_width="match_parent"&& &&&&&&&&&&&&&&android:layout_height="match_parent"&& &&&&&&&&&&&&&&android:orientation="vertical"&>& &&&&<TextView&android:id="@+id/text"& &&&&&&&&&&&&&&android:layout_width="wrap_content"& &&&&&&&&&&&&&&android:layout_height="wrap_content"& &&&&&&&&&&&&&&android:text="Hello,&I&am&a&TextView"&/>& &&&&<Button&android:id="@+id/my_button"& &&&&&&&&&&&&android:layout_width="wrap_content"& &&&&&&&&&&&&android:layout_height="wrap_content"& &&&&&&&&&&&&android:text="Hello,&I&am&a&Button"&/>& </LinearLayout>& http://developer.android.com/
  79. 79. Layout public&void&onCreate(Bundle&savedInstanceState)&{& &&&&super.onCreate(savedInstanceState);& &&&&setContentView(R.layout.main_layout);& } Button&myButton&=&(Button)&findViewById(R.id.my_button); http://developer.android.com/
  80. 80. Layout • FrameLayout! • LinearLayout! • TableLayout! • RelativeLayout
  81. 81. Eventos • Definir um listener e registrá-lo com a View! • Sobrecarregar um método de callback na View
  82. 82. Listeners • onClick() → View.OnClickListener! • onLongClick() → View.OnLongClickListener! • onFocusChange() → View.OnFocusChangeListener! • onKey() → View.OnKeyListener! • onTouch() → View.OnTouchListener! • onCreateContextMenu() → View.OnCreateContextMenuListener
  83. 83. Listeners //&Create&an&anonymous&implementation&of&OnClickListener& private&OnClickListener&mCorkyListener&=&new&OnClickListener()&{& &&&&public&void&onClick(View&v)&{& &&&&&&//&do&something&when&the&button&is&clicked& &&&&}& };& ! protected&void&onCreate(Bundle&savedValues)&{& &&&&...& &&&&//&Capture&our&button&from&layout& &&&&Button&button&=&(Button)findViewById(R.id.corky);& &&&&//&Register&the&onClick&listener&with&the&implementation&above& &&&&button.setOnClickListener(mCorkyListener);& &&&&...& }& http://developer.android.com/
  84. 84. Listeners public&class&ExampleActivity&extends&Activity&implements& OnClickListener&{& &&&&protected&void&onCreate(Bundle&savedValues)&{& &&&&&&&&...& &&&&&&&&Button&button&=&(Button)findViewById(R.id.corky);& &&&&&&&&button.setOnClickListener(this);& &&&&}& ! &&&&//&Implement&the&OnClickListener&callback& &&&&public&void&onClick(View&v)&{& &&&&&&//&do&something&when&the&button&is&clicked& &&&&}& &&&&...& } http://developer.android.com/
  85. 85. Intents • Comunicação intra e inter app de um jeito amigável e inteligente! • Serve para iniciar activities, services e broadcast receivers
  86. 86. Intents • Possui um alvo facultativo! • Se não tiver especificado alvo, o sistema encontra um! • Pode executar uma Activity ou Service específico! • IntentFilters
  87. 87. Intents • Component name! • Action! • Data! • Category! • Extras! • Flags
  88. 88. Intents Constante Alvo Ação ACTION_CALL activity Inicia uma ligação ACTION_EDIT activity Apresenta dados a serem editados ACTION_MAIN activity Activity inicial ACTION_SYNC activity Sincroniza dados com servidor ACTION_BATTERY_LOW broadcast receiver Aviso de bateria fraca ACTION_HEADSET_PLUG broadcast receiver Um fone de ouvido foi conectado ou desconectado ACTION_SCREEN_ON broadcast receiver A tela foi ligada (acesa) ACTION_TIMEZONE_CHANGED broadcast receiver Configurações de timezone modificadas
  89. 89. Intent filter <intent9filter&.&.&.&>& &&&&<action&android:name="com.example.project.SHOW_CURRENT"&/>& &&&&<action&android:name="com.example.project.SHOW_RECENT"&/>& &&&&<action&android:name="com.example.project.SHOW_PENDING"&/>& &&&&.&.&.& </intent9filter> <intent9filter&.&.&.&>& &&&&<data&android:mimeType="video/mpeg"& android:scheme="http"&.&.&.&/>&& &&&&<data&android:mimeType="audio/mpeg"& android:scheme="http"&.&.&.&/>& &&&&.&.&.& </intent9filter> http://developer.android.com/
  90. 90. http://developer.android.com/ ! http://developer.android.com/ resources/browser.html?tag=tutorial
  91. 91. www.slideshare.net/ douglasdrumond/
  92. 92. Obrigado

    Be the first to comment

    Login to see the comments

Básico de Android apresentado no Bootcamp promovido pelo GTUG Campinas em conjunto com GTUG São Paulo

Views

Total views

1,973

On Slideshare

0

From embeds

0

Number of embeds

16

Actions

Downloads

23

Shares

0

Comments

0

Likes

0

×