SlideShare uma empresa Scribd logo
1 de 94
Baixar para ler offline
Android Básico – Hello World!
Instrutor
●

Programador desde 2000

●

Aluno de doutorado

●

●

●

●

Mestre em informática pelo
ICOMP/UFAM
Especialista em aplicações
WEB – FUCAPI
marcio.palheta@gmail.com
sites.google.com/site/marcio
palheta
M.Sc. Márcio Palheta

2/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
M.Sc. Márcio Palheta

3/94
Dispositivos e compatibilidade

M.Sc. Márcio Palheta

4/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
M.Sc. Márcio Palheta

5/94
Execução da IDE Eclipse
●

Após descompactar o ADT Bundle, execute o eclipse

M.Sc. Márcio Palheta

6/94
Execução da IDE Eclipse
●

Escolha um diretório
para sua área de
trabalho

M.Sc. Márcio Palheta

7/94
Tela de Boas Vindas!

M.Sc. Márcio Palheta

8/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
M.Sc. Márcio Palheta

9/94
Exercício 01: Minha primeira App
●

Menu File/New/Android Application Project

M.Sc. Márcio Palheta

10/94
Exercício 01: Configurações da App

M.Sc. Márcio Palheta

11/94
Exercício 01: Definição de layout

M.Sc. Márcio Palheta

12/94
Exercício 01: Activity e Layout

M.Sc. Márcio Palheta

13/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
M.Sc. Márcio Palheta

14/94
OlaMundoActivity.java

M.Sc. Márcio Palheta

15/94
OlaMundoActivity.java
Classe filha
de Activity

M.Sc. Márcio Palheta

16/94
OlaMundoActivity.java
Classe filha
de Activity
Método inicial

M.Sc. Márcio Palheta

17/94
OlaMundoActivity.java
Classe filha
de Activity
Método inicial
Pluga a view
no controller

M.Sc. Márcio Palheta

18/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-pt-rBR: português Brasil

–
●

values: pasta padrão
Values-en-rUS: inglês Estados Unidos

RES/RAW/ armazena arquivos de mídia, como mp3
ou vídeos
M.Sc. Márcio Palheta

19/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

M.Sc. Márcio Palheta

20/94
/res/layout/olamundolayout.xml

M.Sc. Márcio Palheta

21/94
/res/layout/olamundolayout.xml

Modo gráfico

M.Sc. Márcio Palheta

22/94
/res/layout/olamundolayout.xml

Paleta de
componentes

Modo gráfico

M.Sc. Márcio Palheta

23/94
/res/layout/olamundolayout.xml

Paleta de
componentes

Pré-visualização

Modo gráfico

M.Sc. Márcio Palheta

24/94
/res/layout/olamundolayout.xml

M.Sc. Márcio Palheta

25/94
/res/layout/olamundolayout.xml

Modo de edição
de XML

M.Sc. Márcio Palheta

26/94
/res/layout/olamundolayout.xml
Layout principal
da tela

Modo de edição
de XML

M.Sc. Márcio Palheta

27/94
/res/layout/olamundolayout.xml
Layout principal
da tela
Atributos para
ocupar a tela toda

Modo de edição
de XML

M.Sc. Márcio Palheta

28/94
/res/layout/olamundolayout.xml
Layout principal
da tela

Componente
de texto

Modo de edição
de XML

M.Sc. Márcio Palheta

29/94
/res/layout/olamundolayout.xml
Layout principal
da tela

Componente
de texto

Tamanho
adequado ao
conteúdo

Modo de edição
de XML

M.Sc. Márcio Palheta

30/94
/res/layout/olamundolayout.xml
Layout principal
da tela

Componente
de texto
Referência para
o arquivo de I18N
/res/values/strings.xml

Modo de edição
de XML

M.Sc. Márcio Palheta

31/94
/res/values/strings.xml

M.Sc. Márcio Palheta

32/94
/res/values/strings.xml
Arquivo usado
Para I18N

M.Sc. Márcio Palheta

33/94
/res/values/strings.xml
Arquivo usado
Para I18N

Chave usada
na view

M.Sc. Márcio Palheta

34/94
/res/values/strings.xml
Arquivo usado
Para I18N

Chave usada
na view

M.Sc. Márcio Palheta

Valor a ser
exibido na view

35/94
Teste da App em emuladores
●

●

●

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

●

Na nova tela, clique no
botão New

Outra opção para testes é
o uso de simuladores
Clique no ícone do Android
Virtual Device Manager

M.Sc. Márcio Palheta

36/94
Configurações do emulador

M.Sc. Márcio Palheta

37/94
Configurações do emulador

M.Sc. Márcio Palheta

38/94
Configurações do emulador
Nome do
simulador

M.Sc. Márcio Palheta

39/94
Configurações do emulador
Nome do
simulador

Tipo de device
a ser emulado

M.Sc. Márcio Palheta

40/94
Configurações do emulador
Nome do
simulador

Tipo de device
a ser emulado

Versão do
Android que
deve será
emulada
no device

M.Sc. Márcio Palheta

41/94
Configurações do emulador
Nome do
simulador

Tipo de device
a ser emulado

Versão do
Android que
deve será
emulada
no device

Ajuste o espaço
de
armazenamento

M.Sc. Márcio Palheta

42/94
Configurações do emulador
Nome do
simulador

Tipo de device
a ser emulado

Versão do
Android que
deve será
emulada
no device

Ajuste o espaço
de
armazenamento

Encerre as
configurações

M.Sc. Márcio Palheta

43/94
Iniciar o novo emulador

M.Sc. Márcio Palheta

44/94
Iniciar o novo emulador
Selecione o seu
emulador

M.Sc. Márcio Palheta

45/94
Iniciar o novo emulador
Selecione o seu
emulador

INICIE o seu
emulador

M.Sc. Márcio Palheta

46/94
Iniciar o novo emulador

EXECUTE o seu
emulador

M.Sc. Márcio Palheta

47/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

M.Sc. Márcio Palheta

48/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

M.Sc. Márcio Palheta

49/94
Configurando a execução da App

M.Sc. Márcio Palheta

50/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

M.Sc. Márcio Palheta

51/94
App rodando no Emulador

M.Sc. Márcio Palheta

52/94
Fundamentos de Android
PROJETOS JAVA
Código fonte
JAVA (.java)
Compilador
(javac)

Bytecode
JAVA (.class)
Empacota
(.jar)

JAVA
VM
M.Sc. Márcio Palheta

53/94
Fundamentos de Android
PROJETOS JAVA

PROJETOS ANDROID

Código fonte
JAVA (.java)

Código fonte
JAVA (.java)

Compilador
(javac)

Compilador
(javac)

Bytecode
JAVA (.class)

Bytecode
JAVA (.class)

Empacota
(.jar)

Empacota
(.dex)

JAVA
VM

DALVIK
VM
M.Sc. Márcio Palheta

54/94
Fundamentos de Android - Estrutura

M.Sc. Márcio Palheta

55/94
Ciclo de vida - Activity

M.Sc. Márcio Palheta

56/94
Ciclo de vida App
Chamado quando a - Activity
é criada. Usado para
criação da view e acesso
a componentes.

M.Sc. Márcio Palheta

57/94
Ciclo de vida App
Chamado quando a - Activity
é criada. Usado para
criação da view e acesso
a componentes.

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

M.Sc. Márcio Palheta

58/94
Ciclo de vida App
Chamado quando a - Activity
é criada. Usado para
criação da view e acesso
a 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, onde
ocorre interação com o
usuário.

M.Sc. Márcio Palheta

59/94
Ciclo de vida - Activity

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

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.

Ocorre quando outra
atividade obteve o 1o
plano ou quando a App
está sendo eliminada.

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 1o
plano ou quando a App
está sendo eliminada.

Última chance da App
executar algo. Ocorre
porque o Android precisa
de recursos, ou usuário
finalizou a App
M.Sc. Márcio Palheta

62/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
M.Sc. Márcio Palheta

63/94
Exercício 02: Teste de eventos

M.Sc. Márcio Palheta

64/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

M.Sc. Márcio Palheta

65/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.

M.Sc. Márcio Palheta

66/94
Exercício 03: Inclusão de Strings
●

Altere o arquivo /res/values/strings.xml

M.Sc. Márcio Palheta

67/94
Exercício 03: Inclusão de Strings
●

Altere o arquivo /res/values/strings.xml

Novas chaves:
nome e clique

M.Sc. Márcio Palheta

68/94
Exercício 03: Mudanças na tela
●

Arquivo: /res/layout/olamundolayout.xml

M.Sc. Márcio Palheta

69/94
Exercício 03: Mudanças na tela
●

Arquivo: /res/layout/olamundolayout.xml

Novo layout
da nossa APP,
usando
LinearLayout

M.Sc. Márcio Palheta

70/94
Exercício 03: Mudanças na tela
●

Arquivo: /res/layout/olamundolayout.xml
Componente
TextView
para exibir título

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

Define que o ID
do componente é
igual a tvHello

M.Sc. Márcio Palheta

72/94
Exercício 03: Mudanças na tela
●

Arquivo: /res/layout/olamundolayout.xml

M.Sc. Márcio Palheta

Componente
texto chamado
id = edNome

73/94
Exercício 03: Mudanças na tela
●

Arquivo: /res/layout/olamundolayout.xml

Componente
botão chamado
id = btExibir

M.Sc. Márcio Palheta

74/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.
M.Sc. Márcio Palheta

75/94
Exercício 03: Regras de negócio

M.Sc. Márcio Palheta

76/94
Exercício 03: Regras de negócio

Atributos que
representam
campos da tela

M.Sc. Márcio Palheta

77/94
Exercício 03: Regras de negócio

Busca campos
da tela por ID

M.Sc. Márcio Palheta

78/94
Exercício 03: Regras de negócio

Criação do
Listener para o
Evento de clique
do botão

M.Sc. Márcio Palheta

79/94
Exercício 03: Regras de negócio

Criação do
Listener para o
Evento de clique
do botão

Método invocado
após o clique
do botão

M.Sc. Márcio Palheta

80/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

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
Na aba Target,
selecione a opção
Always prompt..

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 Configurations
Na aba Target,
selecione a opção
Always prompt..

Execute a app

M.Sc. Márcio Palheta

83/94
Executando a App em um device
●

Escolha o device onde você quer rodar sua app

M.Sc. Márcio Palheta

84/94
Executando a App em um device
●

Escolha o device onde você quer rodar sua app
Escolha o device

M.Sc. Márcio Palheta

85/94
Executando a App em um device
●

Escolha o device onde você quer rodar sua app
Escolha o device

Clique em OK

M.Sc. Márcio Palheta

86/94
App rodando no device
Device Galaxy S2

M.Sc. Márcio Palheta

87/94
App rodando no device
Device Galaxy S2

Virtual Device

M.Sc. Márcio Palheta

88/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

M.Sc. Márcio Palheta

89/94
Exercício 04: Exibir tela de Alerta
●

Tela atualizada

●

/res/values/strings.xml

●

/res/layout/olamundolayout.xml

M.Sc. Márcio Palheta

90/94
Exercício 04: Exibir tela de Alerta

M.Sc. Márcio Palheta

91/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

M.Sc. Márcio Palheta

92/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

M.Sc. Márcio Palheta

93/94
Android Básico – Hello World!

Mais conteúdo relacionado

Mais procurados

Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
Jorge Cardoso
 
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Tchelinux
 
Android Studio
Android StudioAndroid Studio
Android Studio
Vinícius Thiengo
 

Mais procurados (20)

Como montar o ambiente de desenvolvimento Android
Como montar o ambiente de desenvolvimento AndroidComo montar o ambiente de desenvolvimento Android
Como montar o ambiente de desenvolvimento Android
 
Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2
 
Android Aula 3
Android Aula 3Android Aula 3
Android Aula 3
 
Introdução ao Desenvolvimento Android
Introdução ao Desenvolvimento AndroidIntrodução ao Desenvolvimento Android
Introdução ao Desenvolvimento Android
 
Minicurso de Android
Minicurso de AndroidMinicurso de Android
Minicurso de Android
 
Introdução ao desenvolvimento de apps para Android - Dia 1/2
Introdução ao desenvolvimento de apps para Android - Dia 1/2Introdução ao desenvolvimento de apps para Android - Dia 1/2
Introdução ao desenvolvimento de apps para Android - Dia 1/2
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
 
Android Aula 4
Android Aula 4Android Aula 4
Android Aula 4
 
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
 
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneEntenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - Básico
 
Da introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidDa introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento Android
 
Android Studio
Android StudioAndroid Studio
Android Studio
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para Android
 
Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2
 
Curso de Android Aula 4
Curso de Android Aula 4Curso de Android Aula 4
Curso de Android Aula 4
 
Seminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para AndroidSeminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para Android
 
Android Studio
Android StudioAndroid Studio
Android Studio
 
Google android pdf
Google android pdfGoogle android pdf
Google android pdf
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para Android
 

Destaque

Destaque (11)

Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao Python
 
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no deviceCapítulo 07 - Acesso a câmera e arquivos armazenados no device
Capítulo 07 - Acesso a câmera e arquivos armazenados no device
 
Capítulo 08 - desenvolvimento de layouts customizados
Capítulo 08 - desenvolvimento de layouts customizadosCapítulo 08 - desenvolvimento de layouts customizados
Capítulo 08 - desenvolvimento de layouts customizados
 
Capítulo 05 - Menus de Contexto e Exclusão de Aluno
Capítulo 05 - Menus de Contexto e Exclusão de AlunoCapítulo 05 - Menus de Contexto e Exclusão de Aluno
Capítulo 05 - Menus de Contexto e Exclusão de Aluno
 
Capítulo 03 - Formulários, menus e navegação entre telas
Capítulo 03 - Formulários, menus e navegação entre telasCapítulo 03 - Formulários, menus e navegação entre telas
Capítulo 03 - Formulários, menus e navegação entre telas
 
Capítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLiteCapítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLite
 
Capítulo 06 - Comunicação entre Activities e Intents Implícitas
Capítulo 06 - Comunicação entre Activities e Intents ImplícitasCapítulo 06 - Comunicação entre Activities e Intents Implícitas
Capítulo 06 - Comunicação entre Activities e Intents Implícitas
 
Capítulo 12 - Fragments
Capítulo 12 - FragmentsCapítulo 12 - Fragments
Capítulo 12 - Fragments
 
Capítulo 09 - Serviços em Background
Capítulo 09 - Serviços em BackgroundCapítulo 09 - Serviços em Background
Capítulo 09 - Serviços em Background
 
Capítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de ProjetoCapítulo 02 - Cadastro de Alunos e Decisões de Projeto
Capítulo 02 - Cadastro de Alunos e Decisões de Projeto
 
Capítulo 10 - Sincronização de dados usando JSON
Capítulo 10 - Sincronização de dados usando JSONCapítulo 10 - Sincronização de dados usando JSON
Capítulo 10 - Sincronização de dados usando JSON
 

Semelhante a Capítulo 01 - Fundamentos de Android e o HelloWorld

Aula 02 fundamentos
Aula 02   fundamentosAula 02   fundamentos
Aula 02 fundamentos
fmkoba
 
Teste para dispositivos móveis apresentação pra ufam -eliane
Teste para dispositivos móveis   apresentação pra ufam -elianeTeste para dispositivos móveis   apresentação pra ufam -eliane
Teste para dispositivos móveis apresentação pra ufam -eliane
Eliane Collins
 

Semelhante a Capítulo 01 - Fundamentos de Android e o HelloWorld (20)

Aula 02 fundamentos
Aula 02   fundamentosAula 02   fundamentos
Aula 02 fundamentos
 
Workshop on Android Rom Creation - FISTA/ISCTE 2014
Workshop on Android Rom Creation - FISTA/ISCTE 2014Workshop on Android Rom Creation - FISTA/ISCTE 2014
Workshop on Android Rom Creation - FISTA/ISCTE 2014
 
Minicurso de Android - Wake Up Systems
Minicurso de Android - Wake Up SystemsMinicurso de Android - Wake Up Systems
Minicurso de Android - Wake Up Systems
 
Aula02 android hands_on
Aula02 android hands_onAula02 android hands_on
Aula02 android hands_on
 
Apostila sobre o Visualg
Apostila sobre o VisualgApostila sobre o Visualg
Apostila sobre o Visualg
 
1401 - Revista - Android.pdf
1401 - Revista - Android.pdf1401 - Revista - Android.pdf
1401 - Revista - Android.pdf
 
Análise exploratória e modelação com R parte 1
Análise exploratória e modelação com R parte 1Análise exploratória e modelação com R parte 1
Análise exploratória e modelação com R parte 1
 
Depurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSSDepurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSS
 
Curso de J2ME - Parte 03 - Desenvolvimento de aplicações
Curso de J2ME - Parte 03 - Desenvolvimento de aplicaçõesCurso de J2ME - Parte 03 - Desenvolvimento de aplicações
Curso de J2ME - Parte 03 - Desenvolvimento de aplicações
 
Criando aplicações em Android brincando de quebra-cabeça!
Criando aplicações em Android brincando de quebra-cabeça!Criando aplicações em Android brincando de quebra-cabeça!
Criando aplicações em Android brincando de quebra-cabeça!
 
Teste para dispositivos móveis apresentação pra ufam -eliane
Teste para dispositivos móveis   apresentação pra ufam -elianeTeste para dispositivos móveis   apresentação pra ufam -eliane
Teste para dispositivos móveis apresentação pra ufam -eliane
 
Treinamento básico de Android
Treinamento básico de AndroidTreinamento básico de Android
Treinamento básico de Android
 
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...
 
Desenvolvendo Aplicativos com Android
Desenvolvendo Aplicativos com AndroidDesenvolvendo Aplicativos com Android
Desenvolvendo Aplicativos com Android
 
Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao Android
 
Apostilaandroidfatecnormal
ApostilaandroidfatecnormalApostilaandroidfatecnormal
Apostilaandroidfatecnormal
 
Softblue logic-ide
Softblue logic-ideSoftblue logic-ide
Softblue logic-ide
 
Java1
Java1Java1
Java1
 
Visualg
VisualgVisualg
Visualg
 
Visualg 1231617089791929-2
Visualg 1231617089791929-2Visualg 1231617089791929-2
Visualg 1231617089791929-2
 

Último

Último (8)

ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docxATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
ATIVIDADE 1 - GESTÃO DE PESSOAS E DESENVOLVIMENTO DE EQUIPES - 52_2024.docx
 
Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdfAula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
Aula 01 - Introducao a Processamento de Frutos e Hortalicas.pdf
 
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASCOI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
 
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPalestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
 
Entrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiEntrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo Pagliusi
 
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docxATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
ATIVIDADE 1 - CÁLCULO DIFERENCIAL E INTEGRAL II - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Convergência TO e TI nas Usinas - Setor Sucroenergético
Convergência TO e TI nas Usinas - Setor SucroenergéticoConvergência TO e TI nas Usinas - Setor Sucroenergético
Convergência TO e TI nas Usinas - Setor Sucroenergético
 

Capítulo 01 - Fundamentos de Android e o HelloWorld

  • 1. Android Básico – Hello World!
  • 2. Instrutor ● Programador desde 2000 ● Aluno de doutorado ● ● ● ● Mestre em informática pelo ICOMP/UFAM Especialista em aplicações WEB – FUCAPI marcio.palheta@gmail.com sites.google.com/site/marcio palheta M.Sc. Márcio Palheta 2/94
  • 3. 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 M.Sc. Márcio Palheta 3/94
  • 5. 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 M.Sc. Márcio Palheta 5/94
  • 6. Execução da IDE Eclipse ● Após descompactar o ADT Bundle, execute o eclipse M.Sc. Márcio Palheta 6/94
  • 7. Execução da IDE Eclipse ● Escolha um diretório para sua área de trabalho M.Sc. Márcio Palheta 7/94
  • 8. Tela de Boas Vindas! M.Sc. Márcio Palheta 8/94
  • 9. 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 M.Sc. Márcio Palheta 9/94
  • 10. Exercício 01: Minha primeira App ● Menu File/New/Android Application Project M.Sc. Márcio Palheta 10/94
  • 11. Exercício 01: Configurações da App M.Sc. Márcio Palheta 11/94
  • 12. Exercício 01: Definição de layout M.Sc. Márcio Palheta 12/94
  • 13. Exercício 01: Activity e Layout M.Sc. Márcio Palheta 13/94
  • 14. 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 M.Sc. Márcio Palheta 14/94
  • 17. OlaMundoActivity.java Classe filha de Activity Método inicial M.Sc. Márcio Palheta 17/94
  • 18. OlaMundoActivity.java Classe filha de Activity Método inicial Pluga a view no controller M.Sc. Márcio Palheta 18/94
  • 19. 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-pt-rBR: português Brasil – ● values: pasta padrão Values-en-rUS: inglês Estados Unidos RES/RAW/ armazena arquivos de mídia, como mp3 ou vídeos M.Sc. Márcio Palheta 19/94
  • 20. 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 M.Sc. Márcio Palheta 20/94
  • 26. /res/layout/olamundolayout.xml Modo de edição de XML M.Sc. Márcio Palheta 26/94
  • 27. /res/layout/olamundolayout.xml Layout principal da tela Modo de edição de XML M.Sc. Márcio Palheta 27/94
  • 28. /res/layout/olamundolayout.xml Layout principal da tela Atributos para ocupar a tela toda Modo de edição de XML M.Sc. Márcio Palheta 28/94
  • 29. /res/layout/olamundolayout.xml Layout principal da tela Componente de texto Modo de edição de XML M.Sc. Márcio Palheta 29/94
  • 30. /res/layout/olamundolayout.xml Layout principal da tela Componente de texto Tamanho adequado ao conteúdo Modo de edição de XML M.Sc. Márcio Palheta 30/94
  • 31. /res/layout/olamundolayout.xml Layout principal da tela Componente de texto Referência para o arquivo de I18N /res/values/strings.xml Modo de edição de XML M.Sc. Márcio Palheta 31/94
  • 34. /res/values/strings.xml Arquivo usado Para I18N Chave usada na view M.Sc. Márcio Palheta 34/94
  • 35. /res/values/strings.xml Arquivo usado Para I18N Chave usada na view M.Sc. Márcio Palheta Valor a ser exibido na view 35/94
  • 36. Teste da App em emuladores ● ● ● É uma boa prática o uso de devices (tablets ou celulares) para testar as nossas Apps ● Na nova tela, clique no botão New Outra opção para testes é o uso de simuladores Clique no ícone do Android Virtual Device Manager M.Sc. Márcio Palheta 36/94
  • 37. Configurações do emulador M.Sc. Márcio Palheta 37/94
  • 38. Configurações do emulador M.Sc. Márcio Palheta 38/94
  • 39. Configurações do emulador Nome do simulador M.Sc. Márcio Palheta 39/94
  • 40. Configurações do emulador Nome do simulador Tipo de device a ser emulado M.Sc. Márcio Palheta 40/94
  • 41. Configurações do emulador Nome do simulador Tipo de device a ser emulado Versão do Android que deve será emulada no device M.Sc. Márcio Palheta 41/94
  • 42. Configurações do emulador Nome do simulador Tipo de device a ser emulado Versão do Android que deve será emulada no device Ajuste o espaço de armazenamento M.Sc. Márcio Palheta 42/94
  • 43. Configurações do emulador Nome do simulador Tipo de device a ser emulado Versão do Android que deve será emulada no device Ajuste o espaço de armazenamento Encerre as configurações M.Sc. Márcio Palheta 43/94
  • 44. Iniciar o novo emulador M.Sc. Márcio Palheta 44/94
  • 45. Iniciar o novo emulador Selecione o seu emulador M.Sc. Márcio Palheta 45/94
  • 46. Iniciar o novo emulador Selecione o seu emulador INICIE o seu emulador M.Sc. Márcio Palheta 46/94
  • 47. Iniciar o novo emulador EXECUTE o seu emulador M.Sc. Márcio Palheta 47/94
  • 48. 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 M.Sc. Márcio Palheta 48/94
  • 49. 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 M.Sc. Márcio Palheta 49/94
  • 50. Configurando a execução da App M.Sc. Márcio Palheta 50/94
  • 51. 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 M.Sc. Márcio Palheta 51/94
  • 52. App rodando no Emulador M.Sc. Márcio Palheta 52/94
  • 53. Fundamentos de Android PROJETOS JAVA Código fonte JAVA (.java) Compilador (javac) Bytecode JAVA (.class) Empacota (.jar) JAVA VM M.Sc. Márcio Palheta 53/94
  • 54. Fundamentos de Android PROJETOS JAVA PROJETOS ANDROID Código fonte JAVA (.java) Código fonte JAVA (.java) Compilador (javac) Compilador (javac) Bytecode JAVA (.class) Bytecode JAVA (.class) Empacota (.jar) Empacota (.dex) JAVA VM DALVIK VM M.Sc. Márcio Palheta 54/94
  • 55. Fundamentos de Android - Estrutura M.Sc. Márcio Palheta 55/94
  • 56. Ciclo de vida - Activity M.Sc. Márcio Palheta 56/94
  • 57. Ciclo de vida App Chamado quando a - Activity é criada. Usado para criação da view e acesso a componentes. M.Sc. Márcio Palheta 57/94
  • 58. Ciclo de vida App Chamado quando a - Activity é criada. Usado para criação da view e acesso a componentes. Chamado antes da App ficar Visível na tela. Se der tudo certo, chama onResume(), senão, onStop(). M.Sc. Márcio Palheta 58/94
  • 59. Ciclo de vida App Chamado quando a - Activity é criada. Usado para criação da view e acesso a 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, onde ocorre interação com o usuário. M.Sc. Márcio Palheta 59/94
  • 60. Ciclo de vida - Activity Ocorre quando o Android chama outra atividade. A nossa App perde o direito à tela. M.Sc. Márcio Palheta 60/94
  • 61. Ciclo de vida - Activity Ocorre quando o Android chama outra atividade. A nossa App perde o direito à tela. Ocorre quando outra atividade obteve o 1o plano ou quando a App está sendo eliminada. M.Sc. Márcio Palheta 61/94
  • 62. Ciclo de vida - Activity Ocorre quando o Android chama outra atividade. A nossa App perde o direito à tela. Ocorre quando outra atividade obteve o 1o plano ou quando a App está sendo eliminada. Última chance da App executar algo. Ocorre porque o Android precisa de recursos, ou usuário finalizou a App M.Sc. Márcio Palheta 62/94
  • 63. 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 M.Sc. Márcio Palheta 63/94
  • 64. Exercício 02: Teste de eventos M.Sc. Márcio Palheta 64/94
  • 65. 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 M.Sc. Márcio Palheta 65/94
  • 66. 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. M.Sc. Márcio Palheta 66/94
  • 67. Exercício 03: Inclusão de Strings ● Altere o arquivo /res/values/strings.xml M.Sc. Márcio Palheta 67/94
  • 68. Exercício 03: Inclusão de Strings ● Altere o arquivo /res/values/strings.xml Novas chaves: nome e clique M.Sc. Márcio Palheta 68/94
  • 69. Exercício 03: Mudanças na tela ● Arquivo: /res/layout/olamundolayout.xml M.Sc. Márcio Palheta 69/94
  • 70. Exercício 03: Mudanças na tela ● Arquivo: /res/layout/olamundolayout.xml Novo layout da nossa APP, usando LinearLayout M.Sc. Márcio Palheta 70/94
  • 71. Exercício 03: Mudanças na tela ● Arquivo: /res/layout/olamundolayout.xml Componente TextView para exibir título M.Sc. Márcio Palheta 71/94
  • 72. 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 M.Sc. Márcio Palheta 72/94
  • 73. Exercício 03: Mudanças na tela ● Arquivo: /res/layout/olamundolayout.xml M.Sc. Márcio Palheta Componente texto chamado id = edNome 73/94
  • 74. Exercício 03: Mudanças na tela ● Arquivo: /res/layout/olamundolayout.xml Componente botão chamado id = btExibir M.Sc. Márcio Palheta 74/94
  • 75. 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. M.Sc. Márcio Palheta 75/94
  • 76. Exercício 03: Regras de negócio M.Sc. Márcio Palheta 76/94
  • 77. Exercício 03: Regras de negócio Atributos que representam campos da tela M.Sc. Márcio Palheta 77/94
  • 78. Exercício 03: Regras de negócio Busca campos da tela por ID M.Sc. Márcio Palheta 78/94
  • 79. Exercício 03: Regras de negócio Criação do Listener para o Evento de clique do botão M.Sc. Márcio Palheta 79/94
  • 80. Exercício 03: Regras de negócio Criação do Listener para o Evento de clique do botão Método invocado após o clique do botão M.Sc. Márcio Palheta 80/94
  • 81. Execução da App em um device ● Conect o cabo de dados de um device (tablet ou celular) ● Acione o menu Run / Run Configurations M.Sc. Márcio Palheta 81/94
  • 82. Execução da App em um device ● Conect o cabo de dados de um device (tablet ou celular) ● Acione o menu Run / Run Configurations Na aba Target, selecione a opção Always prompt.. M.Sc. Márcio Palheta 82/94
  • 83. Execução da App em um device ● Conect o cabo de dados de um device (tablet ou celular) ● Acione o menu Run / Run Configurations Na aba Target, selecione a opção Always prompt.. Execute a app M.Sc. Márcio Palheta 83/94
  • 84. Executando a App em um device ● Escolha o device onde você quer rodar sua app M.Sc. Márcio Palheta 84/94
  • 85. Executando a App em um device ● Escolha o device onde você quer rodar sua app Escolha o device M.Sc. Márcio Palheta 85/94
  • 86. Executando a App em um device ● Escolha o device onde você quer rodar sua app Escolha o device Clique em OK M.Sc. Márcio Palheta 86/94
  • 87. App rodando no device Device Galaxy S2 M.Sc. Márcio Palheta 87/94
  • 88. App rodando no device Device Galaxy S2 Virtual Device M.Sc. Márcio Palheta 88/94
  • 89. 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 M.Sc. Márcio Palheta 89/94
  • 90. Exercício 04: Exibir tela de Alerta ● Tela atualizada ● /res/values/strings.xml ● /res/layout/olamundolayout.xml M.Sc. Márcio Palheta 90/94
  • 91. Exercício 04: Exibir tela de Alerta M.Sc. Márcio Palheta 91/94
  • 92. 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 M.Sc. Márcio Palheta 92/94
  • 93. 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 M.Sc. Márcio Palheta 93/94
  • 94. Android Básico – Hello World!