SlideShare uma empresa Scribd logo
Android

Faixa Branca
Douglas Drumond!
drumond.douglas@gmail.com

eee19.com
eu.about()

eee19.com
eu.about()
• Bacharel em Ciência da Computação

eee19.com
eu.about()
• Bacharel em Ciência da Computação
• Analista de software no Instituto de
Pesquisas Eldorado

eee19.com
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
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
@Eldorado
Aplicações
Framework
Bibliotecas

Dalvik

Linux Kernel

eee19.com
@Eldorado
Aplicações
Framework
Bibliotecas
Linux Kernel

Dalvik
BP

eee19.com
Hoje

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

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

eee19.com
Pré-requisitos
• JDK!
• Android SDK

eee19.com
Sistema Operacional
• Linux!
• Mac OS X (Intel)!
• Windows XP ou superior

eee19.com
Ferramentas

eee19.com
Ferramentas

eee19.com
Ferramentas

eee19.com
Ferramentas

eee19.com
Ferramentas

eee19.com
Ferramentas
• Remote debugger
• logcat
• DDMS

eee19.com
Ferramentas

eee19.com
Ferramentas

eee19.com
Ferramentas

eee19.com
Ferramentas

eee19.com
Ferramentas

eee19.com
Ferramentas

eee19.com
Ferramentas

eee19.com
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
Arquitetura

eee19.com
Arquitetura

Linux Kernel

eee19.com
Arquitetura

Bibliotecas

Dalvik

Linux Kernel

eee19.com
Arquitetura
Framework
Bibliotecas

Dalvik

Linux Kernel

eee19.com
Arquitetura
Aplicações
Framework
Bibliotecas

Dalvik

Linux Kernel

eee19.com
Arquitetura
Aplicações
Framework
Bibliotecas

Dalvik

Linux Kernel

eee19.com
Dissecando as
Aplicações

eee19.com
Activity

eee19.com
Service

eee19.com
Content Provider

eee19.com
Intent

eee19.com
Intent

eee19.com
Intent

eee19.com
Intent

eee19.com
Intent

eee19.com
Broadcast Receiver
• Não possui interface (com usuário)!
• Roda em segundo plano!
• Reage a mensagens de broadcast!
• Exemplo: carga de bateria
eee19.com
Activity
• Interface!
• Um objetivo!
• Várias por aplicativo!
• Pode iniciar outras activities
eee19.com
Activity
• 3 estados: ativa, em pausa e parada!
• 3 ciclos de vida!
• pode morrer a qualquer momento se não
estiver ativa

eee19.com
Activity

eee19.com
Activity
onCreate()

eee19.com
Activity
onCreate()

onStart()

eee19.com
Activity
onCreate()

onStart()

onResume()

eee19.com
Activity
onCreate()

onStart()

onResume()

em execução

eee19.com
Activity
onCreate()

onStart()

onResume()

em execução

onPause()

eee19.com
Activity
onCreate()

onStart()

onResume()

em execução

onPause()

eee19.com
Activity
onCreate()

onStart()
Primeiro plano

onResume()

em execução

onPause()

eee19.com
Activity
onCreate()

onStart()
Primeiro plano

onResume()

em execução

onPause()

onStop()

eee19.com
Activity
onCreate()

onStart()
Primeiro plano

onRestart()

onResume()

em execução

onPause()

onStop()

eee19.com
Activity
onCreate()

onStart()
Primeiro plano

onRestart()

onResume()

em execução

onPause()

onStop()

eee19.com
Activity
onCreate()
Visível

onStart()
Primeiro plano

onRestart()

onResume()

em execução

onPause()

onStop()

eee19.com
Activity
onCreate()
Visível

onStart()
Primeiro plano

onRestart()

onResume()

em execução

onPause()

onStop()

onDestroy()

eee19.com
Activity
onCreate()
Visível

onStart()
Primeiro plano

onRestart()

onResume()

em execução

onPause()

onStop()

onDestroy()

shutdown
eee19.com
Activity
Ciclo de vida completo

onCreate()

Visível

onStart()
Primeiro plano

onRestart()

onResume()

em execução

onPause()

onStop()

onDestroy()

shutdown
eee19.com
Multitarefa

eee19.com
Multitarefa

eee19.com
Multitarefa

onCreate()

eee19.com
Multitarefa

onPause()

eee19.com
Multitarefa

eee19.com
Multitarefa

onResume()

eee19.com
Multitarefa

onPause()

eee19.com
Multitarefa

onStop()

eee19.com
Multitarefa

onStop()

onCreate()

eee19.com
Multitarefa

onStop()

onCreate()
onPause()

eee19.com
Multitarefa

onStop()

onCreate()
onPause()
onStop()

eee19.com
Multitarefa

onStop()

onCreate()
onPause()
onStop()

eee19.com
Multitarefa

onStop()

onCreate()

onCreate()

onPause()
onStop()

eee19.com
Multitarefa

onStop()

onCreate()

onRestart()

onPause()
onStop()

onCreate()

eee19.com
Multitarefa

onStop()

onCreate()

onRestart()

onPause()

onStart()

onStop()

onCreate()

eee19.com
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
UI

• Hierarquia de ViewGroups e Views

eee19.com
View Group

View Group

View

View

View

View

View

http://developer.android.com/guide/topics/ui/overview.html
eee19.com
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
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
Layout
• FrameLayout!
• LinearLayout!
• TableLayout!
• RelativeLayout
eee19.com
Eventos
• Definir um listener e registrá-lo com a View!
• Sobrecarregar um método de callback na
View

eee19.com
Listeners
• onClick() → View.OnClickListener!
• onLongClick() → View.OnLongClickListener!
• onFocusChange() → View.OnFocusChangeListener!
• onKey() → View.OnKeyListener!
• onTouch() → View.OnTouchListener!
• onCreateContextMenu() →
View.OnCreateContextMenuListener

eee19.com
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
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
Intents
• Comunicação intra e inter app de um jeito
amigável e inteligente!

• Serve para iniciar activities, services e
broadcast receivers

eee19.com
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
Intents
• Component name!
• Action!
• Data!
• Category!
• Extras!
• Flags
eee19.com
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
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
http://developer.android.com/!
!

http://developer.android.com/
training/index.html!

eee19.com
Obrigado
• Twitter/ADN @douglasdrumond!
• www.eee19.com!
• gplus.to/douglasdrumond

eee19.com

Mais conteúdo relacionado

PDF
[Unicamp Fórum Permanente] Android Faixa Branca – 2011
PDF
Android UI design trends
PDF
Introdução a Plataforma Android
KEY
Android - Além do HelloWord
PDF
Android 2303
PDF
Apresentação Google Android
PDF
SESTINFO 2011 Apresentacao Android
PDF
Phonegap - Framework Mobile
[Unicamp Fórum Permanente] Android Faixa Branca – 2011
Android UI design trends
Introdução a Plataforma Android
Android - Além do HelloWord
Android 2303
Apresentação Google Android
SESTINFO 2011 Apresentacao Android
Phonegap - Framework Mobile

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

PPT
jQuery Mobile - Aplicações móveis com Javascript
PPTX
Pdm -final
PDF
Descomplicando o Android
ODP
Kyrios: Infra-estrutura livre para desenvolvimento de software
PDF
Aulas Google Android
PDF
Desenvolvendo aplicacoes mobile_com_html_css_
PPT
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
PPTX
Introdução Silverlight Windows Phone
PPTX
Introdução ao Android
PDF
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
PDF
Curso de android
PDF
[Faat] android faixa branca – 2012
PDF
Phonegap
PDF
Mulheres na tecnologia 2015
PPTX
Minicurso2013
PDF
Intervalo Técnico - QG Mobile
PDF
Criando aplicações em Android brincando de quebra-cabeça!
PDF
Android DevConference - Gerenciando a publicação e atualização de 450 apps se...
PPTX
Mergulhando no ecossistema .NET
jQuery Mobile - Aplicações móveis com Javascript
Pdm -final
Descomplicando o Android
Kyrios: Infra-estrutura livre para desenvolvimento de software
Aulas Google Android
Desenvolvendo aplicacoes mobile_com_html_css_
Explorando o Mundo Apple, Desenvolvendo Aplicativos para IOS - Felipe Martins...
Introdução Silverlight Windows Phone
Introdução ao Android
InterCon 2016 - Gerenciando deploy e atualização de 450 apps sem enlouquecer
Curso de android
[Faat] android faixa branca – 2012
Phonegap
Mulheres na tecnologia 2015
Minicurso2013
Intervalo Técnico - QG Mobile
Criando aplicações em Android brincando de quebra-cabeça!
Android DevConference - Gerenciando a publicação e atualização de 450 apps se...
Mergulhando no ecossistema .NET
Anúncio

Mais de Douglas Drumond (10)

PDF
Android Wear – IO Extended
PDF
Android wear (coding)
PDF
[MobCamp 2014] Android Wear and Google Glass
PDF
[DevCamp 2014] Melhorando a Usabilidade com Animações
PDF
[DevCamp 2014] Melhorando a usabilidade com animações
PDF
[MO901] Android 下忍 – 2011
PDF
[FLISOL] Embelezando o Android – 2013
PDF
[DevCamp] Layouts Flexíveis no Android – 2013
PDF
[Android devcamp] Android Bootcamp – 2012
PDF
[Unicamp] curso vim – 2010
Android Wear – IO Extended
Android wear (coding)
[MobCamp 2014] Android Wear and Google Glass
[DevCamp 2014] Melhorando a Usabilidade com Animações
[DevCamp 2014] Melhorando a usabilidade com animações
[MO901] Android 下忍 – 2011
[FLISOL] Embelezando o Android – 2013
[DevCamp] Layouts Flexíveis no Android – 2013
[Android devcamp] Android Bootcamp – 2012
[Unicamp] curso vim – 2010
Anúncio

Último (11)

PDF
Jira Software projetos completos com scrum
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Utilizando code blockes por andre backes
PPTX
Tipos de servidor em redes de computador.pptx
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPT
Conceitos básicos de Redes Neurais Artificiais
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Eng. Software - pontos essenciais para o início
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
Jira Software projetos completos com scrum
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Utilizando code blockes por andre backes
Tipos de servidor em redes de computador.pptx
Manejo integrado de pragas na cultura do algodão
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Conceitos básicos de Redes Neurais Artificiais
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Eng. Software - pontos essenciais para o início
Viasol Energia Solar -Soluções para geração e economia de energia

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