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

459 views

Published on

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

Published in: Technology
  • Be the first to comment

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

  1. 1. Android Faixa Branca Douglas Drumond drumond.douglas@gmail.com
  2. 2. E aí?
  3. 3. E aí? • Motivação
  4. 4. E aí? • Motivação • Por dentro do Android
  5. 5. E aí? • Motivação • Por dentro do Android • Por dentro das aplicações
  6. 6. E aí? • Motivação • Por dentro do Android • Por dentro das aplicações • Ferramentas de desenvolvimento
  7. 7. Por que Android?
  8. 8. Crescimento Source: Gartner (Feb 2011)
  9. 9. Crescimento Symbian RIM Microsoft Android iOS Other OS Source: Gartner (Feb 2011)
  10. 10. Crescimento Symbian RIM Microsoft Android iOS Other OS Symbian iOS Android Microsoft RIM Other OS Source: Gartner (Feb 2011)
  11. 11. Crescimento Symbian RIM Microsoft Android iOS Other OS Symbian iOS Android Microsoft RIM Other OS Source: Gartner (Feb 2011)
  12. 12. Crescimento Symbian RIM Microsoft Android iOS Other OS Symbian iOS Android Microsoft RIM Other OS Source: Gartner (Feb 2011)
  13. 13. Android Market share Source: Techcrunch & Google
  14. 14. Android Market share Source: Techcrunch & Google
  15. 15. 100 milhões Total de Ativações
  16. 16. Android Market share 36 215 450k OEM’s operadoras desenvolvedores 310 112 modelos países
  17. 17. Android Market (apps)
  18. 18. Android Market (apps) • Aproximadamente 200.000
  19. 19. Android Market (apps) • Aproximadamente 200.000 • 4,5 bilhões de downloads
  20. 20. Android Market (apps) • Aproximadamente 200.000 • 4,5 bilhões de downloads • 1 bilhão nos últimos 60 dias
  21. 21. O que é?
  22. 22. O que é? Aplicações Framework Bibliotecas Linux Kernel Dalvik
  23. 23. Livre
  24. 24. Livre
  25. 25. Livre
  26. 26. Livre
  27. 27. 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
  28. 28. Versões
  29. 29. Versões
  30. 30. Arquitetura
  31. 31. Arquitetura Linux Kernel
  32. 32. Arquitetura Bibliotecas Linux Kernel Dalvik
  33. 33. Arquitetura Framework Bibliotecas Linux Kernel Dalvik
  34. 34. Arquitetura Aplicações Framework Bibliotecas Linux Kernel Dalvik
  35. 35. Arquitetura Aplicações Framework Bibliotecas Linux Kernel Dalvik
  36. 36. Arquitetura
  37. 37. Arquitetura Linux Kernel Display Driver Flash Memory Driver Keypad Driver Audio Driver Camera Driver IPC WiFi Driver Gerenciamento de energia
  38. 38. Arquitetura Aplicações Framework Bibliotecas Linux Kernel Dalvik
  39. 39. Arquitetura
  40. 40. Arquitetura Dalvik
  41. 41. Arquitetura Dalvik • Baseada em registradores • .dex
  42. 42. Arquitetura Aplicações Framework Bibliotecas Linux Kernel Dalvik
  43. 43. Arquitetura
  44. 44. Arquitetura Bibliotecas Surface Manager SSL OpenGL ES SQLite Media Framework WebKit FreeType libc (bionic)
  45. 45. Arquitetura Aplicações Framework Bibliotecas Linux Kernel Dalvik
  46. 46. Arquitetura
  47. 47. Arquitetura Application Framework Activity Manager Location Manager Window Manager Resource Manager Content Providers Notification Manager Telephony Manager View System
  48. 48. Arquitetura Aplicações Framework Bibliotecas Linux Kernel Dalvik
  49. 49. Arquitetura
  50. 50. Arquitetura Aplicações Home Email Contacts SMS Phone Maps Browser Music
  51. 51. Dissecando as Aplicações
  52. 52. Activity
  53. 53. Service
  54. 54. Content Provider
  55. 55. Intent
  56. 56. Intent
  57. 57. Intent
  58. 58. Intent
  59. 59. Intent
  60. 60. Intent
  61. 61. Intent • Possui um alvo facultativo
  62. 62. Intent • Possui um alvo facultativo • Se não tiver especificado alvo, o sistema encontra um
  63. 63. Intent • Possui um alvo facultativo • Se não tiver especificado alvo, o sistema encontra um • Pode executar uma Activity ou Service específico
  64. 64. Intent • Possui um alvo facultativo • Se não tiver especificado alvo, o sistema encontra um • Pode executar uma Activity ou Service específico • IntentFilters
  65. 65. Broadcast Receiver
  66. 66. Broadcast Receiver • Não possui interface (com usuário)
  67. 67. Broadcast Receiver • Não possui interface (com usuário) • Roda em segundo plano
  68. 68. Broadcast Receiver • Não possui interface (com usuário) • Roda em segundo plano • Reage a mensagens de broadcast
  69. 69. Broadcast Receiver • Não possui interface (com usuário) • Roda em segundo plano • Reage a mensagens de broadcast • Exemplo: carga de bateria
  70. 70. Service
  71. 71. Service Ciclo de vida completo Ciclo de vida em atividade onCreate() onStart() em execução onDestroy() shutdown
  72. 72. Activity
  73. 73. Activity • Interface
  74. 74. Activity • Interface • Um objetivo
  75. 75. Activity • Interface • Um objetivo • Várias por aplicativo
  76. 76. Activity • Interface • Um objetivo • Várias por aplicativo • Pode iniciar outras activities
  77. 77. Activity
  78. 78. Activity • 3 estados: ativa, em pausa e parada
  79. 79. Activity • 3 estados: ativa, em pausa e parada • 3 ciclos de vida
  80. 80. Activity • 3 estados: ativa, em pausa e parada • 3 ciclos de vida • pode morrer a qualquer momento se não estiver ativa
  81. 81. Activity
  82. 82. Activity onCreate()
  83. 83. Activity onCreate() onStart()
  84. 84. Activity onCreate() onStart() onResume()
  85. 85. Activity onCreate() onStart() onResume() em execução
  86. 86. Activity onCreate() onStart() onResume() em execução onPause()
  87. 87. Activity onCreate() onStart() onResume() em execução onPause()
  88. 88. Activity onCreate() onStart() Primeiro plano onResume() em execução onPause()
  89. 89. Activity onCreate() onStart() Primeiro plano onResume() em execução onPause() onStop()
  90. 90. Activity onCreate() onStart() Primeiro plano onResume() em execução onPause() onStop() onRestart()
  91. 91. Activity onCreate() onStart() Primeiro plano onResume() em execução onPause() onStop() onRestart()
  92. 92. Activity onCreate() Visível onStart() Primeiro plano onResume() em execução onPause() onStop() onRestart()
  93. 93. Activity onCreate() Visível onStart() Primeiro plano onResume() em execução onPause() onStop() onDestroy() onRestart()
  94. 94. Activity onCreate() Visível onStart() Primeiro plano onResume() em execução onPause() onStop() onDestroy() shutdown onRestart()
  95. 95. Activity Ciclo de vida completo onCreate() Visível onStart() Primeiro plano onResume() em execução onPause() onStop() onDestroy() shutdown onRestart()
  96. 96. Multitarefa
  97. 97. Multitarefa
  98. 98. Multitarefa onCreate()
  99. 99. Multitarefa onPause()
  100. 100. Multitarefa
  101. 101. Multitarefa onResume()
  102. 102. Multitarefa onPause()
  103. 103. Multitarefa onStop()
  104. 104. Multitarefa onStop() onCreate()
  105. 105. Multitarefa onStop() onCreate() onPause()
  106. 106. Multitarefa onStop() onCreate() onPause() onStop()
  107. 107. Multitarefa onStop() onCreate() onPause() onStop()
  108. 108. Multitarefa onStop() onCreate() onPause() onStop() onCreate()
  109. 109. Multitarefa onStop() onCreate() onRestart() onPause() onStop() onCreate()
  110. 110. Multitarefa onStop() onCreate() onRestart() onPause() onStart() onStop() onCreate()
  111. 111. Ferramentas
  112. 112. Pré-requisitos
  113. 113. Pré-requisitos • JDK
  114. 114. Pré-requisitos • JDK • Android SDK
  115. 115. Ambiente
  116. 116. Ambiente • Linux
  117. 117. Ambiente • Linux • Mac OS X (Intel)
  118. 118. Ambiente • Linux • Mac OS X (Intel) • Windows XP ou superior
  119. 119. Ferramentas
  120. 120. Ferramentas
  121. 121. Ferramentas
  122. 122. Ferramentas
  123. 123. Ferramentas
  124. 124. Ferramentas
  125. 125. Ferramentas • Remote debugger • logcat • DDMS
  126. 126. Ferramentas
  127. 127. Ferramentas
  128. 128. Ferramentas
  129. 129. Google Chrome
  130. 130. Google Chrome
  131. 131. Android Market
  132. 132. Android Market Desenvolvedor escolhe o preço
  133. 133. Android Market Desenvolvedor escolhe o preço 30/70
  134. 134. Android Market Desenvolvedor escolhe o preço 30/70 US$ 99,00/ano
  135. 135. Android Market Desenvolvedor escolhe o preço 30/70 US$ 25,00 uma única vez
  136. 136. Tarefa para casa • developer.android.com
  137. 137. ありがとう Obrigado
  138. 138. 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

×