BULLETIN 2016 à télécharger
Transcription
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
A transmettre à votre golf pour l’établissement du plan de formation
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...
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...
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...