capítulo 01 - fundamentos de android e o helloworld

94
Android Básico – Hello World!

Upload: marcio-palheta

Post on 18-Dec-2014

3.765 views

Category:

Technology


0 download

DESCRIPTION

Primeira aula do curso básico de formação android. Meu objetivo é ajudar programadores iniciantes a enveredarem pelos caminhos dessa plataforma que ganha mais espaço no mercado, a cada dia que passa. Discutimos temas como: 1. Por onde começar? 2. Como Instalar e Configurar o Ambiente de desenvolvimento do Android? 3. Qual a infraestrutura do Android? 4. Como configurar e usar o Simulador? 5. Como criar uma Android App ? 6. Quais o papéis de cada pacote de uma Android App ? 7. Como trabalhar com alertas e pedidos de confirmação?

TRANSCRIPT

Page 1: Capítulo 01 - Fundamentos de Android e o HelloWorld

Android Básico – Hello World!

Page 2: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 2/94

Instrutor

● Programador desde 2000

● Aluno de doutorado

● Mestre em informática pelo ICOMP/UFAM

● Especialista em aplicações WEB – FUCAPI

[email protected]

● sites.google.com/site/marciopalheta

Page 3: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 3/94

Agenda

● Dispositivos e compatibilidade

● Instalação do ambiente de programação Android

● Primeira aplicação android – Hello World!

● Trabalhando com o simulador

● Conceitos iniciais - Ciclo de vida de uma Activity

● Usando a pasta de recursos – RES

● Entendendo a classe R.java

● Componentes de tela – por dentro do XML

● Planejamento das telas baseadas em Layouts

Page 4: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 4/94

Dispositivos e compatibilidade

Page 5: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 5/94

Instalação do Android – ADT Bundle

● Android SDK (Software Development Kit) provê ferramentas para realização de builds, testes e debug

● ADT Bundle (Android Developer Tools) é o ambiente de desenvolvimento que traz Android SDK e a IDE Eclipse juntos, prontos para o trabalho.

● Baixe e descompacte o ADT Bundle:● http://developer.android.com/sdk/index.html

Page 6: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 6/94

Execução da IDE Eclipse

● Após descompactar o ADT Bundle, execute o eclipse

Page 7: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 7/94

Execução da IDE Eclipse

● Escolha um diretório

para sua área de

trabalho

Page 8: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 8/94

Tela de Boas Vindas!

Page 9: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 9/94

Atualização das ferramentas

● No menu principal, selecione: Android SDK Manager

● Neste curso, usaremos o Android 4.4 (API 19)

● É uma boa baixar a Google API

Page 10: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 10/94

Exercício 01: Minha primeira App● Menu File/New/Android Application Project

Page 11: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 11/94

Exercício 01: Configurações da App

Page 12: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 12/94

Exercício 01: Definição de layout

Page 13: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 13/94

Exercício 01: Activity e Layout

Page 14: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 14/94

O que foi gerado?

● OlaMundoActivity.java: Classe filha de Activity, reponsável por controlar uma tela da aplicação;

● R.java: Classe responsável pelo mapeamento dos elementos da view com model e cotroller.

OBS: NÃO alterar manualmente

● Pasta RES: Pasta de recursos da App, onde ficam as telas

● AndroidManifest.xml: Arquivo de configurações da app

Page 15: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 15/94

OlaMundoActivity.java

Page 16: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 16/94

OlaMundoActivity.java

Classe filhade Activity

Page 17: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 17/94

OlaMundoActivity.java

Classe filhade Activity

Método inicial

Page 18: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 18/94

OlaMundoActivity.java

Pluga a view no controller

Classe filhade Activity

Método inicial

Page 19: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 19/94

Recursos e a pasta RES

● RES é a pasta onde ficam os recursos de uma app

● RES/LAYOUT/ armazena as telas da aplicação, escritas em xml, como olamundolayout.xml

● RES/VALUES/ pasta que utiliza qualifiers para facilitar a internacionalização da aplicação:

– values: pasta padrão

– values-pt-rBR: português Brasil

– Values-en-rUS: inglês Estados Unidos● RES/RAW/ armazena arquivos de mídia, como mp3

ou vídeos

Page 20: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 20/94

Recursos e a pasta RES

● RES/DRAWABLE/ pasta que armazenas imagens da app.

● Usa qualifiers para definir a resolução a ser utilizada:

– res/drawable-ldpi: dispositivos com baixa resolução(muito raros)

– res/drawable-mdpi: dispositivos com resolução média(raros)

– res/drawable-hdpi: alta resolução(maioria)

– res/drawable-tvdpi: televisões

Page 21: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 21/94

/res/layout/olamundolayout.xml

Page 22: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 22/94

/res/layout/olamundolayout.xml

Modo gráfico

Page 23: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 23/94

/res/layout/olamundolayout.xml

Modo gráfico

Paleta decomponentes

Page 24: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 24/94

/res/layout/olamundolayout.xml

Modo gráfico

Paleta decomponentes

Pré-visualização

Page 25: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 25/94

/res/layout/olamundolayout.xml

Page 26: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 26/94

/res/layout/olamundolayout.xml

Modo de ediçãode XML

Page 27: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 27/94

/res/layout/olamundolayout.xml

Modo de ediçãode XML

Layout principalda tela

Page 28: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 28/94

/res/layout/olamundolayout.xml

Modo de ediçãode XML

Layout principalda tela

Atributos para ocupar a tela toda

Page 29: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 29/94

/res/layout/olamundolayout.xml

Componente de texto

Modo de ediçãode XML

Layout principalda tela

Page 30: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 30/94

/res/layout/olamundolayout.xml

Componente de texto

Modo de ediçãode XML

Layout principalda tela

Tamanho adequado ao

conteúdo

Page 31: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 31/94

/res/layout/olamundolayout.xml

Componente de texto

Modo de ediçãode XML

Layout principalda tela

Referência parao arquivo de I18N

/res/values/strings.xml

Page 32: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 32/94

/res/values/strings.xml

Page 33: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 33/94

/res/values/strings.xml

Arquivo usado Para I18N

Page 34: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 34/94

/res/values/strings.xml

Arquivo usado Para I18N

Chave usada na view

Page 35: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 35/94

/res/values/strings.xml

Arquivo usado Para I18N

Chave usada na view

Valor a serexibido na view

Page 36: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 36/94

Teste da App em emuladores

● É uma boa prática o uso de devices (tablets ou celulares) para testar as nossas Apps

● Outra opção para testes é o uso de simuladores

● Clique no ícone do Android Virtual Device Manager

● Na nova tela, clique no botão New

Page 37: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 37/94

Configurações do emulador

Page 38: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 38/94

Configurações do emulador

Page 39: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 39/94

Configurações do emulador

Nome dosimulador

Page 40: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 40/94

Configurações do emulador

Nome dosimulador

Tipo de devicea ser emulado

Page 41: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 41/94

Configurações do emulador

Nome dosimulador

Tipo de devicea ser emulado

Versão do Android que

deve será emulada no device

Page 42: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 42/94

Configurações do emulador

Nome dosimulador

Tipo de devicea ser emulado

Versão do Android que

deve será emulada no device

Ajuste o espaço de

armazenamento

Page 43: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 43/94

Configurações do emulador

Nome dosimulador

Tipo de devicea ser emulado

Versão do Android que

deve será emulada no device

Encerre asconfigurações

Ajuste o espaço de

armazenamento

Page 44: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 44/94

Iniciar o novo emulador

Page 45: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 45/94

Iniciar o novo emulador

Selecione o seuemulador

Page 46: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 46/94

Iniciar o novo emulador

Selecione o seuemulador

INICIE o seuemulador

Page 47: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 47/94

Iniciar o novo emulador

EXECUTE o seuemulador

Page 48: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 48/94

Emulador pronto para o uso

● Um booom tempo depois, o seu emulador está pronto para o uso

● Por motivos óbvios, evite encerrar o emulador

● Agora, vamos executar nossa primeira App e ver o resultado no emulador criado

Page 49: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 49/94

Configuração de deploy

● Clique no menu Run / Run Configurations...

● Clique com botão direito em Android Application / New

● Informe um nome para a configuração: HelloWorld

● Selecione o nosso projeto, clicando no botão Browser

● Clique no botão Apply para salvar as configurações

● Clique no botão Run para executar a App no Virtual Device (vulgo Emulador)

● A seguir, veremos como fica a tela de configurações

Page 50: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 50/94

Configurando a execução da App

Page 51: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 51/94

Inclusão de serviço de LOG

● Na primeira execução da App, o ADT pergunta se você deseja usar o sistema de logs chamado Logcat

Page 52: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 52/94

App rodando no Emulador

Page 53: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 53/94

Fundamentos de Android

Código fonteJAVA (.java)

Compilador(javac)

BytecodeJAVA (.class)

Empacota(.jar)

JAVAVM

PROJETOS JAVA

Page 54: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 54/94

Fundamentos de Android

Código fonteJAVA (.java)

Compilador(javac)

BytecodeJAVA (.class)

Empacota(.jar)

JAVAVM

PROJETOS JAVA

Código fonteJAVA (.java)

Compilador(javac)

BytecodeJAVA (.class)

Empacota(.dex)

DALVIKVM

PROJETOS ANDROID

Page 55: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 55/94

Fundamentos de Android - Estrutura

Page 56: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 56/94

Ciclo de vida - Activity

Page 57: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 57/94

Ciclo de vida - ActivityChamado quando a Appé criada. Usado para

criação da view e acessoa componentes.

Page 58: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 58/94

Ciclo de vida - ActivityChamado quando a Appé criada. Usado para

criação da view e acessoa componentes.

Chamado antes da App ficar Visível na tela. Se der tudo certo, chama onResume(), senão,

onStop().

Page 59: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 59/94

Ciclo de vida - ActivityChamado quando a Appé criada. Usado para

criação da view e acessoa componentes.

Chamado antes da App ficar Visível na tela. Se der tudo certo, chama onResume(), senão,

onStop().

Chamado quando a App está em 1o plano, ondeocorre interação com o

usuário.

Page 60: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 60/94

Ciclo de vida - Activity

Ocorre quando o Android chama outra atividade.

A nossa App perde o direito à tela.

Page 61: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 61/94

Ciclo de vida - Activity

Ocorre quando o Android chama outra atividade.

A nossa App perde o direito à tela. Ocorre quando outra

atividade obteve o 1oplano ou quando a Appestá sendo eliminada.

Page 62: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 62/94

Ciclo de vida - Activity

Ocorre quando o Android chama outra atividade.

A nossa App perde o direito à tela. Ocorre quando outra

atividade obteve o 1oplano ou quando a Appestá sendo eliminada.Última chance da App

executar algo. Ocorre porque o Android precisade recursos, ou usuário

finalizou a App

Page 63: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 63/94

Exercício 02: Teste de eventos

● Vamos alterar nossa classe OlaMundoActivity para incluir mensagens de log, lançadas a cada evento do ciclo de vida da Activity

● Que tal usarmos o famoso sysout ? Nem pensar. :-)

● Vamos usar o LogCat

● Para isso, basta usarmos o comando:

– Log.i(“GrupoDeMensagens”, “Mensagem”)● Inclua mensagens em todos os métodos de eventos,

conforme exemplo a seguir

Page 64: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 64/94

Exercício 02: Teste de eventos

Page 65: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 65/94

Componentes de tela

● As telas em Android são feitas em arquivos XML

● Telas ficam em: /res/layouts

● Componentes declados no XML são tratados como componentes java, filhos de android.view.View

● Podemos agrupa-losem ViewGroup's filhas de View

Page 66: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 66/94

Novos componentes de tela

● Vamos melhorar nossa interface, alterando o layout para LinearLayout e incluindo:

– Um campo de texto para receber o nome do usuário

– Um botão que, após o clique, exibe uma mensagem de boas vindas.

Page 67: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 67/94

Exercício 03: Inclusão de Strings

● Altere o arquivo /res/values/strings.xml

Page 68: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 68/94

Exercício 03: Inclusão de Strings

● Altere o arquivo /res/values/strings.xml

Novas chaves:nome e clique

Page 69: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 69/94

Exercício 03: Mudanças na tela

● Arquivo: /res/layout/olamundolayout.xml

Page 70: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 70/94

Exercício 03: Mudanças na tela

● Arquivo: /res/layout/olamundolayout.xml

Novo layoutda nossa APP,

usando LinearLayout

Page 71: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 71/94

Exercício 03: Mudanças na tela

● Arquivo: /res/layout/olamundolayout.xml

Componente TextView

para exibir título

Page 72: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 72/94

Exercício 03: Mudanças na tela

● Arquivo: /res/layout/olamundolayout.xml

Componente TextView

para exibir título

Define que o ID do componente é

igual a tvHello

Page 73: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 73/94

Exercício 03: Mudanças na tela

● Arquivo: /res/layout/olamundolayout.xml Componente texto chamado id = edNome

Page 74: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 74/94

Exercício 03: Mudanças na tela

● Arquivo: /res/layout/olamundolayout.xml

Componente botão chamado

id = btExibir

Page 75: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 75/94

Na estrada, até aqui...

● Alteramos a view (olamundolayout.xml), para inclusão de dois componentes:

– Um EditText que representa um campo de texto que recebe um texto digitado pelo usuário

– E um Button que representa um botão. Após o evento de clique do botão, o sistema deve exibir uma mensagem de boas vindas.

● Agora, precisamos alterar a classe controller (OlaMundoActivity.java), para implementação da lógica de negócios da nossa app.

Page 76: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 76/94

Exercício 03: Regras de negócio

Page 77: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 77/94

Exercício 03: Regras de negócio

Atributos querepresentam

campos da tela

Page 78: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 78/94

Exercício 03: Regras de negócio

Busca campos da tela por ID

Page 79: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 79/94

Exercício 03: Regras de negócio

Criação do Listener para o

Evento de cliquedo botão

Page 80: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 80/94

Exercício 03: Regras de negócio

Criação do Listener para o

Evento de cliquedo botão

Método invocado após o clique

do botão

Page 81: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 81/94

Execução da App em um device

● Conect o cabo de dados de um device (tablet ou celular)

● Acione o menu Run / Run Configurations

Page 82: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 82/94

Execução da App em um device

● Conect o cabo de dados de um device (tablet ou celular)

● Acione o menu Run / Run ConfigurationsNa aba Target,

selecione a opçãoAlways prompt..

Page 83: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 83/94

Execução da App em um device

● Conect o cabo de dados de um device (tablet ou celular)

● Acione o menu Run / Run ConfigurationsNa aba Target,

selecione a opçãoAlways prompt..

Execute a app

Page 84: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 84/94

Executando a App em um device

● Escolha o device onde você quer rodar sua app

Page 85: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 85/94

Executando a App em um device

● Escolha o device onde você quer rodar sua appEscolha o device

Page 86: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 86/94

Executando a App em um device

● Escolha o device onde você quer rodar sua appEscolha o device

Clique em OK

Page 87: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 87/94

App rodando no device

Device Galaxy S2

Page 88: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 88/94

App rodando no device

Device Galaxy S2 Virtual Device

Page 89: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 89/94

Alertas e confirmações

● No desenvolvimento de aplicações, é comum o uso de telas de Alerta e Confirmação

● Para essa finalidade, em Android utilizamos a classe android.app.AlertDialog

● A classe estática android.app.AlertDialog.Builder é usada construção do componente, e atualização da tela

● No exercício a seguir, criaremos um novo botão na tela principal e, quando clicado, será exibida uma tela de alerta

Page 90: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 90/94

Exercício 04: Exibir tela de Alerta

● Tela atualizada ● /res/values/strings.xml

● /res/layout/olamundolayout.xml

Page 91: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 91/94

Exercício 04: Exibir tela de Alerta

Page 92: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 92/94

O que vem a seguir?

● Cadastro de Alunos

● Tela de cadastro

● Persistência com SQLite

● Intents

● Câmera e arquivos

● LayoutInflater

● Serviços de background

● Integração via JSON

Page 93: Capítulo 01 - Fundamentos de Android e o HelloWorld

M.Sc. Márcio Palheta 93/94

Referências

● www.caelum.com.br● d.android.com● LECHETA, Ricardo. Google Android, 3a edição,

Novatec, São Paulo, 2013● Código fonte completo:

https://github.com/marciopalheta/cursosandroid

Page 94: Capítulo 01 - Fundamentos de Android e o HelloWorld

Android Básico – Hello World!