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 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 3/94
Dispositivos e compatibilidade 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 5/94
Execução da IDE Eclipse Após descompactar o ADT Bundle, execute o eclipse 6/94
Execução da IDE Eclipse Escolha um diretório para sua área de trabalho 7/94
Tela de Boas Vindas! 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 9/94
Exercício 01: Minha primeira App Menu File/New/Android Application Project 10/94
Exercício 01: Configurações da App 11/94
Exercício 01: Definição de layout 12/94
Exercício 01: Activity e Layout 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 14/94
OlaMundoActivity.java 15/94
OlaMundoActivity.java Classe filha de Activity 16/94
OlaMundoActivity.java Classe filha de Activity Método inicial 17/94
OlaMundoActivity.java Classe filha de Activity Método inicial Pluga a view no controller 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: 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 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 20/94
/res/layout/olamundolayout.xml 21/94
/res/layout/olamundolayout.xml Modo gráfico 22/94
/res/layout/olamundolayout.xml Paleta de componentes Modo gráfico 23/94
/res/layout/olamundolayout.xml Paleta de componentes Pré-visualização Modo gráfico 24/94
/res/layout/olamundolayout.xml 25/94
/res/layout/olamundolayout.xml Modo de edição de XML 26/94
/res/layout/olamundolayout.xml Layout principal da tela Modo de edição de XML 27/94
/res/layout/olamundolayout.xml Layout principal da tela Atributos para ocupar a tela toda Modo de edição de XML 28/94
/res/layout/olamundolayout.xml Layout principal da tela Componente de texto Modo de edição de XML 29/94
/res/layout/olamundolayout.xml Layout principal da tela Componente de texto Tamanho adequado ao conteúdo Modo de edição de XML 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 31/94
/res/values/strings.xml 32/94
/res/values/strings.xml Arquivo usado Para I18N 33/94
/res/values/strings.xml Arquivo usado Para I18N Chave usada na view 34/94
/res/values/strings.xml Arquivo usado Para I18N Chave usada na view 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 36/94
Configurações do emulador 37/94
Configurações do emulador 38/94
Configurações do emulador Nome do simulador 39/94
Configurações do emulador Nome do simulador Tipo de device a ser emulado 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 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 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 43/94
Iniciar o novo emulador 44/94
Iniciar o novo emulador Selecione o seu emulador 45/94
Iniciar o novo emulador Selecione o seu emulador INICIE o seu emulador 46/94
Iniciar o novo emulador EXECUTE o seu emulador 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 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 49/94
Configurando a execução da App 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 51/94
App rodando no Emulador 52/94
Fundamentos de Android PROJETOS JAVA Código fonte JAVA (.java) Compilador (javac) Bytecode JAVA (.class) Empacota (.jar) JAVA VM 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 54/94
Fundamentos de Android - Estrutura 55/94
Ciclo de vida - Activity 56/94
Ciclo dequando vidaa App - Activity Chamado é criada. Usado para criação da view e acesso a componentes. 57/94
Ciclo dequando vidaa App - Activity Chamado é 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(). 58/94
Ciclo dequando vidaa App - Activity Chamado é 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. 59/94
Ciclo de vida - Activity Ocorre quando o Android chama outra atividade. A nossa App perde o direito à tela. 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. 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 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 63/94
Exercício 02: Teste de eventos 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 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. 66/94
Exercício 03: Inclusão de Strings Altere o arquivo /res/values/strings.xml 67/94
Exercício 03: Inclusão de Strings Altere o arquivo /res/values/strings.xml Novas chaves: nome e clique 68/94
Exercício 03: Mudanças na tela Arquivo: /res/layout/olamundolayout.xml 69/94
Exercício 03: Mudanças na tela Arquivo: /res/layout/olamundolayout.xml Novo layout da nossa APP, usando LinearLayout 70/94
Exercício 03: Mudanças na tela Arquivo: /res/layout/olamundolayout.xml Componente TextView para exibir título 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 72/94
Exercício 03: Mudanças na tela Arquivo: /res/layout/olamundolayout.xml 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 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. 75/94
Exercício 03: Regras de negócio 76/94
Exercício 03: Regras de negócio Atributos que representam campos da tela 77/94
Exercício 03: Regras de negócio Busca campos da tela por ID 78/94
Exercício 03: Regras de negócio Criação do Listener para o Evento de clique do botão 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 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 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.. 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 83/94
Executando a App em um device Escolha o device onde você quer rodar sua app 84/94
Executando a App em um device Escolha o device onde você quer rodar sua app Escolha o device 85/94
Executando a App em um device Escolha o device onde você quer rodar sua app Escolha o device Clique em OK 86/94
App rodando no device Device Galaxy S2 87/94
App rodando no device Device Galaxy S2 Virtual Device 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 89/94
Exercício 04: Exibir tela de Alerta Tela atualizada /res/values/strings.xml /res/layout/olamundolayout.xml 90/94
Exercício 04: Exibir tela de Alerta 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 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 93/94
Android Básico Hello World!