Top Banner
Android Bootcamp Douglas Drumond [email protected]
92

[Android devcamp] Android Bootcamp – 2012

Sep 01, 2014

Download

Technology

Douglas Drumond

Básico de Android apresentado no Bootcamp promovido pelo GTUG Campinas em conjunto com GTUG São Paulo
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: [Android devcamp] Android Bootcamp – 2012

Android BootcampDouglas Drumond!

[email protected]

Page 2: [Android devcamp] Android Bootcamp – 2012

eu.about()

Page 3: [Android devcamp] Android Bootcamp – 2012

eu.about()

• Técnico

Page 4: [Android devcamp] Android Bootcamp – 2012

eu.about()

• Técnico

• (pseudo)Matemático

Page 5: [Android devcamp] Android Bootcamp – 2012

eu.about()

• Técnico

• (pseudo)Matemático

• Bacharel em Ciência da Computação

Page 6: [Android devcamp] Android Bootcamp – 2012

eu.about()

• Técnico

• (pseudo)Matemático

• Bacharel em Ciência da Computação

• Analista de software no Instituto de Pesquisas Eldorado

Page 7: [Android devcamp] Android Bootcamp – 2012

@Eldorado

Linux Kernel

Bibliotecas

Framework

Aplicações

Dalvik

Page 8: [Android devcamp] Android Bootcamp – 2012

@Eldorado

Linux Kernel

Bibliotecas

Framework

Aplicações

Dalvik

BP

Page 9: [Android devcamp] Android Bootcamp – 2012

http://www.flickr.com/photos/natalielucier/3619749009/

Hoje

Page 10: [Android devcamp] Android Bootcamp – 2012

http://www.gtugs.org/

Page 11: [Android devcamp] Android Bootcamp – 2012

http://www.flickr.com/photos/donkeyhotey/5666071828/

Page 12: [Android devcamp] Android Bootcamp – 2012

Ferramentas

Page 13: [Android devcamp] Android Bootcamp – 2012

Pré-requisitos

• JDK!

• Android SDK

Page 14: [Android devcamp] Android Bootcamp – 2012

Sistema Operacional

• Linux!

• Mac OS X (Intel)!

• Windows XP ou superior

Page 15: [Android devcamp] Android Bootcamp – 2012

Ferramentas

Page 16: [Android devcamp] Android Bootcamp – 2012

Ferramentas

Page 17: [Android devcamp] Android Bootcamp – 2012

Ferramentas

Page 18: [Android devcamp] Android Bootcamp – 2012

Ferramentas

Page 19: [Android devcamp] Android Bootcamp – 2012

Ferramentas

Page 20: [Android devcamp] Android Bootcamp – 2012

Ferramentas

• Remote debugger

• logcat

• DDMS

Page 21: [Android devcamp] Android Bootcamp – 2012

Ferramentas

Page 22: [Android devcamp] Android Bootcamp – 2012

Ferramentas

Page 23: [Android devcamp] Android Bootcamp – 2012

Ferramentas

Page 24: [Android devcamp] Android Bootcamp – 2012

Ferramentas

Page 25: [Android devcamp] Android Bootcamp – 2012

Ferramentas

Page 26: [Android devcamp] Android Bootcamp – 2012

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 27: [Android devcamp] Android Bootcamp – 2012

Arquitetura

Page 28: [Android devcamp] Android Bootcamp – 2012

Arquitetura

Linux Kernel

Page 29: [Android devcamp] Android Bootcamp – 2012

Arquitetura

Linux Kernel

Bibliotecas Dalvik

Page 30: [Android devcamp] Android Bootcamp – 2012

Arquitetura

Linux Kernel

Bibliotecas

Framework

Dalvik

Page 31: [Android devcamp] Android Bootcamp – 2012

Arquitetura

Linux Kernel

Bibliotecas

Framework

Aplicações

Dalvik

Page 32: [Android devcamp] Android Bootcamp – 2012

Arquitetura

Linux Kernel

Bibliotecas

Framework

Aplicações

Dalvik

Page 33: [Android devcamp] Android Bootcamp – 2012

Dissecando as Aplicações

Page 34: [Android devcamp] Android Bootcamp – 2012

Activity

Page 35: [Android devcamp] Android Bootcamp – 2012

Service

Page 36: [Android devcamp] Android Bootcamp – 2012

Content Provider

Page 37: [Android devcamp] Android Bootcamp – 2012

Intent

Page 38: [Android devcamp] Android Bootcamp – 2012

Intent

Page 39: [Android devcamp] Android Bootcamp – 2012

Intent

Page 40: [Android devcamp] Android Bootcamp – 2012

Intent

Page 41: [Android devcamp] Android Bootcamp – 2012

Intent

Page 42: [Android devcamp] Android Bootcamp – 2012

Broadcast Receiver

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

• Roda em segundo plano!

• Reage a mensagens de broadcast!

• Exemplo: carga de bateria

Page 43: [Android devcamp] Android Bootcamp – 2012

Activity

• Interface!

• Um objetivo!

• Várias por aplicativo!

• Pode iniciar outras activities

Page 44: [Android devcamp] Android Bootcamp – 2012

Activity

• 3 estados: ativa, em pausa e parada!

• 3 ciclos de vida!

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

Page 45: [Android devcamp] Android Bootcamp – 2012

Activity

Page 46: [Android devcamp] Android Bootcamp – 2012

ActivityonCreate()

Page 47: [Android devcamp] Android Bootcamp – 2012

ActivityonCreate()

onStart()

Page 48: [Android devcamp] Android Bootcamp – 2012

ActivityonCreate()

onStart()

onResume()

Page 49: [Android devcamp] Android Bootcamp – 2012

ActivityonCreate()

onStart()

onResume()

em execução

Page 50: [Android devcamp] Android Bootcamp – 2012

ActivityonCreate()

onStart()

onResume()

em execução

onPause()

Page 51: [Android devcamp] Android Bootcamp – 2012

ActivityonCreate()

onStart()

onResume()

em execução

onPause()

Page 52: [Android devcamp] Android Bootcamp – 2012

ActivityonCreate()

onStart()

onResume()

em execução

onPause()

Primeiro plano

Page 53: [Android devcamp] Android Bootcamp – 2012

ActivityonCreate()

onStart()

onResume()

em execução

onPause()

onStop()

Primeiro plano

Page 54: [Android devcamp] Android Bootcamp – 2012

ActivityonCreate()

onStart() onRestart()

onResume()

em execução

onPause()

onStop()

Primeiro plano

Page 55: [Android devcamp] Android Bootcamp – 2012

ActivityonCreate()

onStart() onRestart()

onResume()

em execução

onPause()

onStop()

Primeiro plano

Page 56: [Android devcamp] Android Bootcamp – 2012

ActivityonCreate()

onStart() onRestart()

onResume()

em execução

onPause()

onStop()

Primeiro plano

Visível

Page 57: [Android devcamp] Android Bootcamp – 2012

ActivityonCreate()

onStart() onRestart()

onResume()

em execução

onPause()

onStop()

onDestroy()

Primeiro plano

Visível

Page 58: [Android devcamp] Android Bootcamp – 2012

ActivityonCreate()

onStart() onRestart()

onResume()

em execução

onPause()

onStop()

onDestroy()

shutdown

Primeiro plano

Visível

Page 59: [Android devcamp] Android Bootcamp – 2012

ActivityonCreate()

onStart() onRestart()

onResume()

em execução

onPause()

onStop()

onDestroy()

shutdown

Primeiro plano

Visível

Ciclo de vida completo

Page 60: [Android devcamp] Android Bootcamp – 2012

Multitarefa

Page 61: [Android devcamp] Android Bootcamp – 2012

Multitarefa

Page 62: [Android devcamp] Android Bootcamp – 2012

Multitarefa

onCreate()

Page 63: [Android devcamp] Android Bootcamp – 2012

Multitarefa

onPause()

Page 64: [Android devcamp] Android Bootcamp – 2012

Multitarefa

Page 65: [Android devcamp] Android Bootcamp – 2012

Multitarefa

onResume()

Page 66: [Android devcamp] Android Bootcamp – 2012

Multitarefa

onPause()

Page 67: [Android devcamp] Android Bootcamp – 2012

Multitarefa

onStop()

Page 68: [Android devcamp] Android Bootcamp – 2012

Multitarefa

onStop() onCreate()

Page 69: [Android devcamp] Android Bootcamp – 2012

Multitarefa

onStop() onCreate()

onPause()

Page 70: [Android devcamp] Android Bootcamp – 2012

Multitarefa

onStop() onCreate()

onStop()

onPause()

Page 71: [Android devcamp] Android Bootcamp – 2012

Multitarefa

onStop() onCreate()

onStop()

onPause()

Page 72: [Android devcamp] Android Bootcamp – 2012

Multitarefa

onStop() onCreate() onCreate()

onStop()

onPause()

Page 73: [Android devcamp] Android Bootcamp – 2012

Multitarefa

onRestart()

onStop() onCreate() onCreate()

onStop()

onPause()

Page 74: [Android devcamp] Android Bootcamp – 2012

Multitarefa

onStart()

onRestart()

onStop() onCreate() onCreate()

onStop()

onPause()

Page 75: [Android devcamp] Android Bootcamp – 2012

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

Page 76: [Android devcamp] Android Bootcamp – 2012

UI

• Hierarquia de ViewGroups e Views

Page 77: [Android devcamp] Android Bootcamp – 2012

View Group

ViewView Group View

View ViewView

http://developer.android.com/guide/topics/ui/how-android-draws.html

Page 78: [Android devcamp] Android Bootcamp – 2012

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/

Page 79: [Android devcamp] Android Bootcamp – 2012

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/

Page 80: [Android devcamp] Android Bootcamp – 2012

Layout

• FrameLayout!

• LinearLayout!

• TableLayout!

• RelativeLayout

Page 81: [Android devcamp] Android Bootcamp – 2012

Eventos

• Definir um listener e registrá-lo com a View!

• Sobrecarregar um método de callback na View

Page 83: [Android devcamp] Android Bootcamp – 2012

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/

Page 84: [Android devcamp] Android Bootcamp – 2012

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/

Page 85: [Android devcamp] Android Bootcamp – 2012

Intents

• Comunicação intra e inter app de um jeito amigável e inteligente!

• Serve para iniciar activities, services e broadcast receivers

Page 86: [Android devcamp] Android Bootcamp – 2012

Intents

• Possui um alvo facultativo!

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

• Pode executar uma Activity ou Service específico!

• IntentFilters

Page 87: [Android devcamp] Android Bootcamp – 2012

Intents

• Component name!

• Action!

• Data!

• Category!

• Extras!

• Flags

Page 88: [Android devcamp] Android Bootcamp – 2012

IntentsConstante Alvo AçãoACTION_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

Page 89: [Android devcamp] Android Bootcamp – 2012

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/

Page 90: [Android devcamp] Android Bootcamp – 2012

http://developer.android.com/ !

http://developer.android.com/resources/browser.html?tag=tutorial

Page 91: [Android devcamp] Android Bootcamp – 2012

www.slideshare.net/douglasdrumond/

Page 92: [Android devcamp] Android Bootcamp – 2012

Obrigado