BULLETIN 2016 à télécharger

Transcription

BULLETIN 2016 à télécharger
Android - Fundamentos
Programação para Internet C
Colégio Politécnico da UFSM
Fábio Weber Albiero
e-mail: [email protected]
Fábio Weber Albiero
Sumário
 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
Fábio Weber Albiero
2/90
Instalação do Android - Android Studio
 Android SDK (Software Development Kit) provê ferramentas
para realização de builds, testes e debug
 Android Studio ambiente de desenvolvimento integrado (IDE) da
Google para quem quer montar aplicações para o Android
 Disponível em
https://developer.android.com/sdk/installing/studio.html
Fábio Weber Albiero
3/90
Instalação do Android - ADT Bundle
 Android SDK (Software Development Kit) provê ferramentas para
a realização de builds, testes e debug
 ADT Bundle (Android Development Tools) é um 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
Fábio Weber Albiero
4/90
Execução da IDE Eclipse
 Após descompactar o ADT Bundle, execute o Eclipse
Fábio Weber Albiero
5/90
Execução da IDE Eclipse
 Escolha um diretório para a sua área de trabalho
Fábio Weber Albiero
6/90
Tela de boas vindas!
Fábio Weber Albiero
7/90
Atualização das ferramentas
 No menu principal, selecione:
Android SDK Manager
 Usaremos o Android 4.4 (API 19)
 É uma boa baixar a Google API
Fábio Weber Albiero
8/90
Exercício 01: Minha primeira app
 Menu File/New/Android Application Project
M.Sc. Márcio Palheta
Fábio Weber Albiero
9/90
Exercício 01: Configurações da app
Fábio Weber Albiero
10/90
Exercício 01: Definição de layout
Fábio Weber Albiero
11/90
Exercício 01: Activity e Layout
Fábio Weber Albiero
12/90
O que foi gerado?
 OlaMundaActivity.java: classe filha de
Activity, responsável por controlar uma
tela da aplicação
 R.java: classe responsável pelo
mapeamento dos elementos da View
com Model e Controller
 OBS: NÃO alterar manualmente
 Pasta RES: pasta de recursos da app,
onde ficam as telas
 AndroiManifest.xml: arquivo de
configuração da app
Fábio Weber Albiero
13/90
OlaMundoActivity.java
Fábio Weber Albiero
14/90
OlaMundoActivity.java
Classe filha
do Activity
Fábio Weber Albiero
15/90
OlaMundoActivity.java
Classe filha
do Activity
Método
inicial
Fábio Weber Albiero
16/90
OlaMundoActivity.java
Classe filha
do Activity
Método
inicial
Pluga a view
no controller
Fábio Weber Albiero
17/90
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-BR: português (Brasil)
 Values-em-US: inglês (Estados Unidos)
 /RES/RAW armazena arquivos de mídia, como mp3 ou vídeos
Fábio Weber Albiero
18/90
Recursos e a pasta RES
 /RES/DRAWABLE pasta que armazena 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 média resolução (raros)
 /res/drawable-hdpi: dispositivos com alta resolução (maioria)
 /res/drawable-tvdpi: televisões
Fábio Weber Albiero
19/90
/res/layout/olamundolayout.xml
Fábio Weber Albiero
20/90
/res/layout/olamundolayout.xml
Modo gráfico
Fábio Weber Albiero
21/90
/res/layout/olamundolayout.xml
Paleta de
componentes
Modo gráfico
Fábio Weber Albiero
22/90
/res/layout/olamundolayout.xml
Paleta de
componentes
Pré-visualização
Modo gráfico
Fábio Weber Albiero
23/90
/res/layout/olamundolayout.xml
Fábio Weber Albiero
24/90
/res/layout/olamundolayout.xml
Modo de edição
de XML
Fábio Weber Albiero
25/90
/res/layout/olamundolayout.xml
Layout principal
da tela
Modo de edição
de XML
Fábio Weber Albiero
26/90
/res/layout/olamundolayout.xml
Layout principal
da tela
Atributos para
ocupar a tela toda
Modo de edição
de XML
Fábio Weber Albiero
27/90
/res/layout/olamundolayout.xml
Layout principal
da tela
Atributos para
ocupar a tela toda
Componente de
texto
Modo de edição
de XML
Fábio Weber Albiero
28/90
/res/layout/olamundolayout.xml
Layout principal
da tela
Atributos para
ocupar a tela toda
Componente de
texto
Tamanho
adequado ao
conteúdo
Modo de edição
de XML
Fábio Weber Albiero
29/90
/res/layout/olamundolayout.xml
Layout principal
da tela
Atributos para
ocupar a tela toda
Componente de
texto
Referência para o
arquivo I18N
/res/values/strings.xml
Modo de edição
de XML
Fábio Weber Albiero
30/90
/res/values/strings.xml
Fábio Weber Albiero
31/90
/res/values/strings.xml
Arquivo usado
para I18N
Fábio Weber Albiero
32/90
/res/values/strings.xml
Arquivo usado
para I18N
Chave usada na
view
Fábio Weber Albiero
33/90
/res/values/strings.xml
Arquivo usado
para I18N
Chave usada na
view
Fábio Weber Albiero
Valor a ser
exibido na view
34/90
Teste da app em emuladores
 É uma boa prática o uso de
 Na nova tela, clique no botão
devices (celulares ou tablets)
New
para testar as nossas app's
 Outra opção para testes é o
uso de simuladores
 Clique no ícone Android
Virtual Device Manager
Fábio Weber Albiero
35/90
Configurações do emulador
Fábio Weber Albiero
36/90
Configurações do emulador
Nome do
simulador
Fábio Weber Albiero
37/90
Configurações do emulador
Tipo de device
a ser emulado
Fábio Weber Albiero
38/90
Configurações do emulador
Versão do
Android que
será emulada
no device
Fábio Weber Albiero
39/90
Configurações do emulador
Ajuste do
espaço de
armazenamento
Fábio Weber Albiero
40/90
Configurações do emulador
Encerre as
configurações
Fábio Weber Albiero
41/90
Iniciar o novo emulador
Fábio Weber Albiero
42/90
Iniciar o novo emulador
Selecione o seu
emulador
Fábio Weber Albiero
43/90
Iniciar o novo emulador
Selecione o seu
emulador
Inicie o seu
emulador
Fábio Weber Albiero
44/90
Iniciar o novo emulador
Execute o seu
emulador
Fábio Weber Albiero
45/90
Emulador pronto para o uso
 Um bom tempo depois, o seu
emulador estará pronto para o
uso
 Por motivos óbvios, evite
encerrar o emulador
 Agora vamos executar a nossa
primeira app e ver o resultado
no emulador criado
Fábio Weber Albiero
46/90
Configurações do deploy
 Clique no menu Run/Run Configurations...
 Clique com o 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
(emulador)
 A seguir, veremos como fica a tela de configurações
Fábio Weber Albiero
47/90
Configurando a execução da app
Fábio Weber Albiero
48/90
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
Fábio Weber Albiero
49/90
App rodando no emulador
Fábio Weber Albiero
50/90
Fundamentos de Android
Projeto Java
Código-fonte
Java (.java)
Compilador
(javac)
Bytecode
Java (.class)
Empacota
(.jar)
Java
VM
Fábio Weber Albiero
51/90
Fundamentos de Android
Projeto Java
Projeto 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
Fábio Weber Albiero
52/90
Fundamentos de Android - Estrutura
Fábio Weber Albiero
53/90
Ciclo de vida - Activity
Fábio Weber Albiero
54/90
Ciclo de vida - Activity
Chamado quando a app é
criada. Usado para criação da
View e acesso a componentes
Fábio Weber Albiero
55/90
Ciclo de vida - Activity
Chamado quando a app é
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()
Fábio Weber Albiero
56/90
Ciclo de vida - Activity
Chamado quando a app é
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
Fábio Weber Albiero
57/90
Ciclo de vida - Activity
Ocorre quando o Android
chama outra atividade. A
nossa app perde o direito à
tela
Fábio Weber Albiero
58/90
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
Fábio Weber Albiero
59/90
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 o usuário
finalizou a app
Fábio Weber Albiero
60/90
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
 Vamos usar o Logcat
 Para isso, basta usarmos o comando
 Log.i("GrupoDeMensagens", "Mensagem")
 Não esqueça do "import android.util.Log"
 Inclua mensagens em todos os métodos de eventos, conforme
exemplo a seguir
Fábio Weber Albiero
61/90
Exercício 02: Teste de eventos
Fábio Weber Albiero
62/90
Componentes de tela
 As telas em Android são
feitas em arquivos XML
 Telas ficam em:
/res/layouts
 Componentes declarados
no XML são tratados como
componentes Java, filhos
de android.view.View
 Podemos agrupá-los em:
ViewGroup's filhas de View
Fábio Weber Albiero
63/90
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
Fábio Weber Albiero
64/90
Exercício 03: Inclusão de Strings
 Altere o arquivo /res/values/strings.xml
Fábio Weber Albiero
65/90
Exercício 03: Inclusão de Strings
 Altere o arquivo /res/values/strings.xml
Novas chaves:
nome e clique
Fábio Weber Albiero
66/90
Exercício 03: Mudanças na tela
 Arquivo: /res/layout/olamundolayout.xml
Fábio Weber Albiero
67/90
Exercício 03: Mudanças na tela
 Arquivo: /res/layout/olamundolayout.xml
Novo layout da
nossa app usando
LinearLayout
Fábio Weber Albiero
68/90
Exercício 03: Mudanças na tela
 Arquivo: /res/layout/olamundolayout.xml
Componente
TextView para
exibir o título
Fábio Weber Albiero
69/90
Exercício 03: Mudanças na tela
 Arquivo: /res/layout/olamundolayout.xml
Componente
TextView para
exibir o título
Define que o ID
do componente
é igual a tvHello
Fábio Weber Albiero
70/90
Exercício 03: Mudanças na tela
 Arquivo: /res/layout/olamundolayout.xml
Componente
texto chamado
id = texto
Fábio Weber Albiero
71/90
Exercício 03: Mudanças na tela
 Arquivo: /res/layout/olamundolayout.xml
Componente
botão chamado
Id = btExibir
Fábio Weber Albiero
72/90
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
Fábio Weber Albiero
73/90
Exercício 03: Regras de negócio
Fábio Weber Albiero
74/90
Exercício 03: Regras de negócio
Atributos que
representam
campos da tela
Fábio Weber Albiero
75/90
Exercício 03: Regras de negócio
Busca de campos
da tela por ID
Fábio Weber Albiero
76/90
Exercício 03: Regras de negócio
Criação do Listener
para o evento
clique do botão
Fábio Weber Albiero
77/90
Exercício 03: Regras de negócio
Criação do Listener
para o evento
clique do botão
Método invocado
após o clique do
botão
Fábio Weber Albiero
78/90
Execução da app em um device
 Conecte o cabo de dados de um device (celular ou tablet)
 Acione o menu Run/Run Configurations
Fábio Weber Albiero
79/90
Execução da app em um device
 Conecte o cabo de dados de um device (celular ou tablet)
 Acione o menu Run/Run Configurations
Na aba Target,
selecione a opção
Always prompt
Fábio Weber Albiero
80/90
Execução da app em um device
 Conecte o cabo de dados de um device (celular ou tablet)
 Acione o menu Run/Run Configurations
Na aba Target,
selecione a opção
Always prompt
Execute a app
Fábio Weber Albiero
81/90
Execute a app em um device
 Escolha o device onde você quer executar a sua app
Fábio Weber Albiero
82/90
Execute a app em um device
 Escolha o device onde você quer executar a sua app
Escolha o device
Fábio Weber Albiero
83/90
Execute a app em um device
 Escolha o device onde você quer executar a sua app
Escolha o device
Clique em OK
Fábio Weber Albiero
84/90
App rodando no device
Device Galaxy S2
Fábio Weber Albiero
85/90
App rodando no device
Device Galaxy S2
Fábio Weber Albiero
Virtual Device
86/90
Alertas e confirmações
 No desenvolvimento de aplicações é comum o uso de tela 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 na
construção do componente e na 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
Fábio Weber Albiero
87/90
Exercício 04: Exibir tela de alerta
Tela atualizada
/res/values/strings.xml
/res/layout/olamundolayout.xml
Fábio Weber Albiero
88/90
Exercício 04: Exibir tela de alerta
Fábio Weber Albiero
89/90
Referências
 Palheta, M. Android - Fundamentos, 2013.
http://pt.slideshare.net/marciopalheta/01-fundamentos-28144145
Fábio Weber Albiero
90/90

Documents pareils

FORMATION 2016

FORMATION 2016 FORMATION 2016 A transmettre à votre golf pour l’établissement du plan de formation

Plus en détail

PROGRAMME DU STAGE Perfectionnement des Jardiniers

PROGRAMME DU STAGE Perfectionnement des Jardiniers Les inscriptions seront enregistrées par ordre d’arrivée. Toute inscription reçue 15 jours avant la date du stage ne sera satisfaite que dans la mesure des places disponibles. Aucune réclamation po...

Plus en détail

Assemblée Générale AGREF Convocation

Assemblée Générale AGREF Convocation Si vous ne pouvez pas assister à l'Assemblée Générale, vous pouvez utiliser le pouvoir ci-dessous pour vous faire représenter par un membre de l'AGREF de votre collège. Chaque membre ne pourra déte...

Plus en détail

Perfectionnement des Jardiniers Niveau 2

Perfectionnement des Jardiniers Niveau 2 Toute annulation du fait du stagiaire devra être notifiée par écrit à l’AGREF :  Annulation reçue un mois avant : Remboursement des droits d’inscriptions moins 50 € pour frais de dossier.  Annula...

Plus en détail