Capítulo 01 - Fundamentos de Android e o HelloWorld

9,773 views

Published on

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?

Published in: Technology
4 Comments
30 Likes
Statistics
Notes
No Downloads
Views
Total views
9,773
On SlideShare
0
From Embeds
0
Number of Embeds
43
Actions
Shares
0
Downloads
1,171
Comments
4
Likes
30
Embeds 0
No embeds

No notes for slide

Capítulo 01 - Fundamentos de Android e o HelloWorld

  1. 1. Android Básico – Hello World!
  2. 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. 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
  4. 4. Dispositivos e compatibilidade M.Sc. Márcio Palheta 4/94
  5. 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. 6. Execução da IDE Eclipse ● Após descompactar o ADT Bundle, execute o eclipse M.Sc. Márcio Palheta 6/94
  7. 7. Execução da IDE Eclipse ● Escolha um diretório para sua área de trabalho M.Sc. Márcio Palheta 7/94
  8. 8. Tela de Boas Vindas! M.Sc. Márcio Palheta 8/94
  9. 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. 10. Exercício 01: Minha primeira App ● Menu File/New/Android Application Project M.Sc. Márcio Palheta 10/94
  11. 11. Exercício 01: Configurações da App M.Sc. Márcio Palheta 11/94
  12. 12. Exercício 01: Definição de layout M.Sc. Márcio Palheta 12/94
  13. 13. Exercício 01: Activity e Layout M.Sc. Márcio Palheta 13/94
  14. 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
  15. 15. OlaMundoActivity.java M.Sc. Márcio Palheta 15/94
  16. 16. OlaMundoActivity.java Classe filha de Activity M.Sc. Márcio Palheta 16/94
  17. 17. OlaMundoActivity.java Classe filha de Activity Método inicial M.Sc. Márcio Palheta 17/94
  18. 18. OlaMundoActivity.java Classe filha de Activity Método inicial Pluga a view no controller M.Sc. Márcio Palheta 18/94
  19. 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. 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
  21. 21. /res/layout/olamundolayout.xml M.Sc. Márcio Palheta 21/94
  22. 22. /res/layout/olamundolayout.xml Modo gráfico M.Sc. Márcio Palheta 22/94
  23. 23. /res/layout/olamundolayout.xml Paleta de componentes Modo gráfico M.Sc. Márcio Palheta 23/94
  24. 24. /res/layout/olamundolayout.xml Paleta de componentes Pré-visualização Modo gráfico M.Sc. Márcio Palheta 24/94
  25. 25. /res/layout/olamundolayout.xml M.Sc. Márcio Palheta 25/94
  26. 26. /res/layout/olamundolayout.xml Modo de edição de XML M.Sc. Márcio Palheta 26/94
  27. 27. /res/layout/olamundolayout.xml Layout principal da tela Modo de edição de XML M.Sc. Márcio Palheta 27/94
  28. 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. 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. 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. 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
  32. 32. /res/values/strings.xml M.Sc. Márcio Palheta 32/94
  33. 33. /res/values/strings.xml Arquivo usado Para I18N M.Sc. Márcio Palheta 33/94
  34. 34. /res/values/strings.xml Arquivo usado Para I18N Chave usada na view M.Sc. Márcio Palheta 34/94
  35. 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. 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. 37. Configurações do emulador M.Sc. Márcio Palheta 37/94
  38. 38. Configurações do emulador M.Sc. Márcio Palheta 38/94
  39. 39. Configurações do emulador Nome do simulador M.Sc. Márcio Palheta 39/94
  40. 40. Configurações do emulador Nome do simulador Tipo de device a ser emulado M.Sc. Márcio Palheta 40/94
  41. 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. 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. 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. 44. Iniciar o novo emulador M.Sc. Márcio Palheta 44/94
  45. 45. Iniciar o novo emulador Selecione o seu emulador M.Sc. Márcio Palheta 45/94
  46. 46. Iniciar o novo emulador Selecione o seu emulador INICIE o seu emulador M.Sc. Márcio Palheta 46/94
  47. 47. Iniciar o novo emulador EXECUTE o seu emulador M.Sc. Márcio Palheta 47/94
  48. 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. 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. 50. Configurando a execução da App M.Sc. Márcio Palheta 50/94
  51. 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. 52. App rodando no Emulador M.Sc. Márcio Palheta 52/94
  53. 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. 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. 55. Fundamentos de Android - Estrutura M.Sc. Márcio Palheta 55/94
  56. 56. Ciclo de vida - Activity M.Sc. Márcio Palheta 56/94
  57. 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. 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. 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. 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. 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. 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. 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. 64. Exercício 02: Teste de eventos M.Sc. Márcio Palheta 64/94
  65. 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. 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. 67. Exercício 03: Inclusão de Strings ● Altere o arquivo /res/values/strings.xml M.Sc. Márcio Palheta 67/94
  68. 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. 69. Exercício 03: Mudanças na tela ● Arquivo: /res/layout/olamundolayout.xml M.Sc. Márcio Palheta 69/94
  70. 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. 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. 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. 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. 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. 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. 76. Exercício 03: Regras de negócio M.Sc. Márcio Palheta 76/94
  77. 77. Exercício 03: Regras de negócio Atributos que representam campos da tela M.Sc. Márcio Palheta 77/94
  78. 78. Exercício 03: Regras de negócio Busca campos da tela por ID M.Sc. Márcio Palheta 78/94
  79. 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. 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. 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. 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. 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. 84. Executando a App em um device ● Escolha o device onde você quer rodar sua app M.Sc. Márcio Palheta 84/94
  85. 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. 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. 87. App rodando no device Device Galaxy S2 M.Sc. Márcio Palheta 87/94
  88. 88. App rodando no device Device Galaxy S2 Virtual Device M.Sc. Márcio Palheta 88/94
  89. 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. 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. 91. Exercício 04: Exibir tela de Alerta M.Sc. Márcio Palheta 91/94
  92. 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. 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. 94. Android Básico – Hello World!

×