[FLISOL] Android Faixa Branca (Iniciando no Android) – 2013

515 views
401 views

Published on

Palestra ministrada no FLISOL Campinas 2013

Published in: Technology, News & Politics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
515
On SlideShare
0
From Embeds
0
Number of Embeds
17
Actions
Shares
0
Downloads
9
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

[FLISOL] Android Faixa Branca (Iniciando no Android) – 2013

  1. 1. Android
 Faixa Branca Douglas Drumond! drumond.douglas@gmail.com eee19.com
  2. 2. eu.about() eee19.com
  3. 3. eu.about() • Bacharel em Ciência da Computação eee19.com
  4. 4. eu.about() • Bacharel em Ciência da Computação • Analista de software no Instituto de Pesquisas Eldorado eee19.com
  5. 5. eu.about() • Bacharel em Ciência da Computação • Analista de software no Instituto de Pesquisas Eldorado • Sócio e co-fundador da Y-MAX Consultoria em TI eee19.com
  6. 6. eu.about() • Bacharel em Ciência da Computação • Analista de software no Instituto de Pesquisas Eldorado • Sócio e co-fundador da Y-MAX Consultoria em TI • Organizador do GDG Campinas eee19.com
  7. 7. @Eldorado Aplicações Framework Bibliotecas Dalvik Linux Kernel eee19.com
  8. 8. @Eldorado Aplicações Framework Bibliotecas Linux Kernel Dalvik BP eee19.com
  9. 9. Hoje http://www.flickr.com/photos/natalielucier/3619749009/ eee19.com
  10. 10. http://www.flickr.com/photos/donkeyhotey/5666071828/ eee19.com
  11. 11. Ferramentas eee19.com
  12. 12. Pré-requisitos • JDK! • Android SDK eee19.com
  13. 13. Sistema Operacional • Linux! • Mac OS X (Intel)! • Windows XP ou superior eee19.com
  14. 14. Ferramentas eee19.com
  15. 15. Ferramentas eee19.com
  16. 16. Ferramentas eee19.com
  17. 17. Ferramentas eee19.com
  18. 18. Ferramentas eee19.com
  19. 19. Ferramentas • Remote debugger • logcat • DDMS eee19.com
  20. 20. Ferramentas eee19.com
  21. 21. Ferramentas eee19.com
  22. 22. Ferramentas eee19.com
  23. 23. Ferramentas eee19.com
  24. 24. Ferramentas eee19.com
  25. 25. Ferramentas eee19.com
  26. 26. Ferramentas eee19.com
  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 eee19.com
  28. 28. Arquitetura eee19.com
  29. 29. Arquitetura Linux Kernel eee19.com
  30. 30. Arquitetura Bibliotecas Dalvik Linux Kernel eee19.com
  31. 31. Arquitetura Framework Bibliotecas Dalvik Linux Kernel eee19.com
  32. 32. Arquitetura Aplicações Framework Bibliotecas Dalvik Linux Kernel eee19.com
  33. 33. Arquitetura Aplicações Framework Bibliotecas Dalvik Linux Kernel eee19.com
  34. 34. Dissecando as Aplicações eee19.com
  35. 35. Activity eee19.com
  36. 36. Service eee19.com
  37. 37. Content Provider eee19.com
  38. 38. Intent eee19.com
  39. 39. Intent eee19.com
  40. 40. Intent eee19.com
  41. 41. Intent eee19.com
  42. 42. Intent eee19.com
  43. 43. Broadcast Receiver • Não possui interface (com usuário)! • Roda em segundo plano! • Reage a mensagens de broadcast! • Exemplo: carga de bateria eee19.com
  44. 44. Activity • Interface! • Um objetivo! • Várias por aplicativo! • Pode iniciar outras activities eee19.com
  45. 45. Activity • 3 estados: ativa, em pausa e parada! • 3 ciclos de vida! • pode morrer a qualquer momento se não estiver ativa eee19.com
  46. 46. Activity eee19.com
  47. 47. Activity onCreate() eee19.com
  48. 48. Activity onCreate() onStart() eee19.com
  49. 49. Activity onCreate() onStart() onResume() eee19.com
  50. 50. Activity onCreate() onStart() onResume() em execução eee19.com
  51. 51. Activity onCreate() onStart() onResume() em execução onPause() eee19.com
  52. 52. Activity onCreate() onStart() onResume() em execução onPause() eee19.com
  53. 53. Activity onCreate() onStart() Primeiro plano onResume() em execução onPause() eee19.com
  54. 54. Activity onCreate() onStart() Primeiro plano onResume() em execução onPause() onStop() eee19.com
  55. 55. Activity onCreate() onStart() Primeiro plano onRestart() onResume() em execução onPause() onStop() eee19.com
  56. 56. Activity onCreate() onStart() Primeiro plano onRestart() onResume() em execução onPause() onStop() eee19.com
  57. 57. Activity onCreate() Visível onStart() Primeiro plano onRestart() onResume() em execução onPause() onStop() eee19.com
  58. 58. Activity onCreate() Visível onStart() Primeiro plano onRestart() onResume() em execução onPause() onStop() onDestroy() eee19.com
  59. 59. Activity onCreate() Visível onStart() Primeiro plano onRestart() onResume() em execução onPause() onStop() onDestroy() shutdown eee19.com
  60. 60. Activity Ciclo de vida completo onCreate() Visível onStart() Primeiro plano onRestart() onResume() em execução onPause() onStop() onDestroy() shutdown eee19.com
  61. 61. Multitarefa eee19.com
  62. 62. Multitarefa eee19.com
  63. 63. Multitarefa onCreate() eee19.com
  64. 64. Multitarefa onPause() eee19.com
  65. 65. Multitarefa eee19.com
  66. 66. Multitarefa onResume() eee19.com
  67. 67. Multitarefa onPause() eee19.com
  68. 68. Multitarefa onStop() eee19.com
  69. 69. Multitarefa onStop() onCreate() eee19.com
  70. 70. Multitarefa onStop() onCreate() onPause() eee19.com
  71. 71. Multitarefa onStop() onCreate() onPause() onStop() eee19.com
  72. 72. Multitarefa onStop() onCreate() onPause() onStop() eee19.com
  73. 73. Multitarefa onStop() onCreate() onCreate() onPause() onStop() eee19.com
  74. 74. Multitarefa onStop() onCreate() onRestart() onPause() onStop() onCreate() eee19.com
  75. 75. Multitarefa onStop() onCreate() onRestart() onPause() onStart() onStop() onCreate() eee19.com
  76. 76. 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 eee19.com
  77. 77. UI • Hierarquia de ViewGroups e Views eee19.com
  78. 78. View Group View Group View View View View View http://developer.android.com/guide/topics/ui/overview.html eee19.com
  79. 79. Layout <?xml version="1.0" encoding="utf-8"?> <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" /> http://developer.android.com/ </LinearLayout> eee19.com
  80. 80. 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/ eee19.com
  81. 81. Layout • FrameLayout! • LinearLayout! • TableLayout! • RelativeLayout eee19.com
  82. 82. Eventos • Definir um listener e registrá-lo com a View! • Sobrecarregar um método de callback na View eee19.com
  83. 83. Listeners • onClick() → View.OnClickListener! • onLongClick() → View.OnLongClickListener! • onFocusChange() → View.OnFocusChangeListener! • onKey() → View.OnKeyListener! • onTouch() → View.OnTouchListener! • onCreateContextMenu() → View.OnCreateContextMenuListener eee19.com
  84. 84. 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/     ... } eee19.com
  85. 85. 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/ } eee19.com
  86. 86. Intents • Comunicação intra e inter app de um jeito amigável e inteligente! • Serve para iniciar activities, services e broadcast receivers eee19.com
  87. 87. Intents • Possui um alvo facultativo! • Se não tiver especificado alvo, o sistema encontra um! • Pode executar uma Activity ou Service específico! • IntentFilters eee19.com
  88. 88. Intents • Component name! • Action! • Data! • Category! • Extras! • Flags eee19.com
  89. 89. 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 eee19.com
  90. 90. Intent filter <intent-filter . . . >     <action android:name="com.example.project.SHOW_CURRENT" />     <action android:name="com.example.project.SHOW_RECENT" />     <action android:name="com.example.project.SHOW_PENDING" />     . . . </intent-filter> <intent-filter . . . >     <data android:mimeType="video/mpeg" android:scheme="http" . . . />     <data android:mimeType="audio/mpeg" android:scheme="http" . . . />     . . . </intent-filter> http://developer.android.com/ eee19.com
  91. 91. http://developer.android.com/! ! http://developer.android.com/ training/index.html! eee19.com
  92. 92. Obrigado • Twitter/ADN @douglasdrumond! • www.eee19.com! • gplus.to/douglasdrumond eee19.com

×