Aulas Google Android

1,948 views

Published on

Aulas ministradas na especialização de dispositivos móveis. Plataforma, Activity, Intent, Notification

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,948
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
140
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Aulas Google Android

  1. 1. GOOGLE ANDROID Prof. MSc. Iury Teixeira Faculdade de Juazeiro do Norte Especialização em Desenvolvimento de Aplicativos para Dispositivos Móveis
  2. 2. Nosso objetivo Conhecer o sistema operacional e plataforma de desenvolvimento Google Android junto de seus principais componentes de desenvolvimento de Apps.
  3. 3. Roteiro •  Origem •  OHA •  Onde está o Android? •  OAA •  Arquitetura •  Tipos de Aplicativos •  Google Play •  SDK e Dalvik •  Ambiente de Desenvolvimento •  AVD e Emulador •  ADB, DDMS e ADT •  Widgets •  Activity •  ListActivity •  Intents
  4. 4. Android Sistema Operacional Android, Inc. Open Source Código Proprietário? Java !?Linux
  5. 5. O que existe no Android? Acesso a serviços nativos API´s Views e Fragments Gráficos, câmeras Background e Foreground Widgets SQLite C2DMSensores
  6. 6. Mercado do Android 2012 66,4 % dos Devices
  7. 7. Mercado do Android 2013 78,4 % de aparelhos com AndroidOS 15,6 % iOS
  8. 8. 2014 – previsão – Fonte : Gartner
  9. 9. onde Android?
  10. 10. Smartphones e phablets
  11. 11. Tablets
  12. 12. Wearable Devices
  13. 13. Internet das Coisas
  14. 14. iQon System
  15. 15. Arquitetura do AndroidOS
  16. 16. •  Android é baseado no Kernel 2.6 do Linux; •  O Linux é responsável por gerenciar: Memória Processos Threads Segurança Redes Drivers Android e Linux Prof. Iury Teixeira
  17. 17. •  Assim como no Java, o Android possui uma VM, chamada Dalvik. VM otimizada para baixo consumo de recursos •  Essa mesma, é responsável por efetuar toda compilação e transformar em código executável no Android; •  Não existe uma JVM no Android; •  E como funciona a compilação? Máquina Virtual Prof. Iury Teixeira
  18. 18. Exportação Prof. Iury Teixeira
  19. 19. Tipos de Aplicativos •  Foreground •  Interage com o usuário •  Background •  Executa em segundo plano •  Intermittent •  União dos primeiros tipos •  Widgets •  De fácil acesso na Home Screen •  API específica Prof. Iury Teixeira
  20. 20. Loja de Aplicativos •  Objetivo: •  Possibilitar aos desenvolvedores um local para disponibilizar suas Apps. •  Para utilizar: •  Cadastro, pagamento de US$ 25.00; •  Após isso pode ser instalado por qualquer usuário;
  21. 21. Versões X API
  22. 22. Ferramentas e SDK Eclipse + ADT plugin Android SDK Tools Android Platform-tools The latest Android platform The latest Android system image for the emulator ADT Bundle
  23. 23. Estrutura do SDK •  add-ons •  Arquivos extras e de terceiros pertencentes a determinadas APIs •  plataforms •  raiz das APIs •  tools •  Arquivos auxiliares para a execução de ferramentas do SDK
  24. 24. O Que vem com o SDK •  Contém: •  toda a API necessária para desenvolver utilizando a linguagem Java; •  SDK Manger •  Emulador; •  Sendo possível plugar um celular na porta USB para executar/testar a aplicação; •  Para isso necessita do driver do celular instalado na máquina; •  AVD Manager •  Controlador de plataformas do Android •  DDMS •  Debug, Monitoramento;
  25. 25. SDK Manager •  Local onde pode ser feito o download de: •  APIs •  Ferramentas •  bibliotecas de terceiros •  Documentação, exemplos e código
  26. 26. AVD Manager •  Android Virtual Device •  Gerenciador de máquinas(devices) virtuais
  27. 27. •  Mas o que é AVD ? • Android Virtual Device •  Criação de uma configuração virtual para um determinado dispositivo, reconhecida e emulada pelo emulador. AVD Manager Prof. Iury Teixeira
  28. 28. AVD 1 AVD 2 Android 4.1 SD 5000 MB Resol.: HVGA Android 4.2 SD 500 MB Resol.: HVGA Android 4.2 SD 1024 MB Resol.: WQVGA432 AVD 3 AVD Manager Emulador Prof. Iury Teixeira
  29. 29. Novo projeto usando o Eclipse ADT •  File > New > Android Application Project
  30. 30. Template da Activity •  Necessita de Fragments versão 11 ou superior (mínimo)
  31. 31. Arquitetura da App
  32. 32. Src: código fonte Java Gen: fonte Java gerado pelo ADT Android 4.2.2: Compile with, versão de compilação do projeto Assests: arquivos html, textos, fonte, banco,… recursos Bin: onde ficará o .apk Libs: bibliotecas utilizadas no projeto Res: recursos estáticos utilizados no projeto Drawable: imagens do aplicativo Layout: interfaces/telas do aplicativo Menu: desenhos de menu do aplicativo Values: mensagens de texto do aplicativo (internacionalização)
  33. 33. AndroidManifest.xml • Deve-se manter na raiz do projeto; • Mantem todas as configurações do projeto: •  Nome, pacote base, ícone •  Activity’s •  Versão SDK •  Permissões
  34. 34. O que significa essas linhas? Pode ser executada isoladamente, ponto inicial A Activity estará na tela inicial AndroidManifest.xml
  35. 35. layouts
  36. 36. layout •  /res/layout/activity_main.xml •  Os arquivos XML na pasta layout representam uma tela da aplicação; •  As TAGS representam os componentes visuais; •  Os componentes visuais podem ser criados via API Java também;
  37. 37. strings
  38. 38. • /res/values/string.xml •  Muito importante para internacionalização; Chave Valor
  39. 39. A Classe R •  Possui constantes (do tipo INT) para todos os recursos criados; •  Acessa imagens; •  É atualizada automaticamente pelo ADT(Plugin), quando a pasta res é alterada; •  R.drawable.imagem1; •  R.layout.meu_layout; •  R.string.valor_string; •  R.style.meu_estilo; Diferente de android.R
  40. 40. Classe R
  41. 41. Pixels, densidades, … drawable
  42. 42. Pixel?? Um pixel é o menor ponto físico da tela de um dispositivo É o elemento pelo qual as imagens são criadas.
  43. 43. Pilhas de Densidade
  44. 44. Tendo como densidade base do dispositvo alvo 160dpi, qual tamanho fisico teria as outras imagens (nas pastas drawable’s)?
  45. 45. Criando a imagem correta… 32px x 32px Densidade (dpi) Pixels x Escala Tamanho Recomendado (dp) 120 32 * 0.75 24 160 32 * 1.00 32 240 32 * 1.50 48 320 32 * 2.00 64 480 32 * 3.00 96 Tendo como densidade base do dispositvo alvo 160dpi, qual tamanho fisico teria as outras imagens (drawable’s)?
  46. 46. Todos os recursos devem ter: nomes minusculos e sem espaços. Caso não siga a regra a classe R não será compilada.
  47. 47. Criando um AVD 1º Passo
  48. 48. Criando um AVD 2º Passo
  49. 49. Executando o projeto Botão direito no projeto e siga os passos abaixo:
  50. 50. Activity Principal
  51. 51. Capturando componentes Arquivo Java ( Principal.java ) Arquivo XML ( layout/main.xml )
  52. 52. Evento click/tap do Button
  53. 53. Mão no código J •  Criar um aplicativo chamado ArqMob; •  Calcular a área do losango: •  O resultado deve ser exibido em um AlertDialog.Builder A = b * h / 2
  54. 54. Componentes Visuais
  55. 55. TextView e EditText •  Propriedades: •  layout_width = [“wrap_content” ou “match_parent”] -> Preenchimento Lateral •  layout_heigth = [“wrap_content” ou “match_parent”] -> Preenchimento Altura •  background = “#FFFF34” -> Cor de Fundo •  textColor = “#FFFF34” -> Cor da Fonte •  hint = “insira seu nome”-> Caso o campo de texto esteja vazio •  autoLink = [“web ou map e etc”] - > o TextView Funciona como link. •  layout_weight = [“valor inteiro”] -> Refere-se a porcentagem que o componente irá ocupar na tela;
  56. 56. Tipos de InputType do EditText http://developer.android.com/guide/topics/ui/controls/text.html
  57. 57. Tipos de InputType do EditText http://developer.android.com/guide/topics/ui/controls/text.html
  58. 58. ToggleButton e CheckBox •  Componentes para seleção de iten opcionais; •  Propriedades do ToogleButton: •  textOn: Exibe um texto quando selecionado; •  textOff: Exibe um texto quando não está selecionado; •  Método isChecked(): [método de ambos os componentes] •  Retorna a situação da seleção;
  59. 59. Tela Anterior
  60. 60. RadioButton •  É utilizado com o auxilio de um RadioGroup •  Propriedades: •  Text: Texto a ser exibido; •  Checked: Se o botão iniciará marcado ou não [ true | false ] •  Método para obter o radio selecionado: •  isChecked();
  61. 61. RadioButton
  62. 62. Activity
  63. 63. •  Representa uma “tela” da aplicação; •  Tem a função de gerenciar os eventos da tela; •  Regra de Visão; •  Configura a View a ser exibido; Activity
  64. 64. •  Deve herdar de Activity [ou subclasses]; •  Deve implementar onCreate: •  Inicializar View; •  Criar os elementos da tela; •  Deve ser informado no AndroidManifest.xml Activity
  65. 65. •  Cada Activity é adicionada ao activity stack
  66. 66. Finish() Por exemplo de pause: - Ligação Activity encerrada pelo sistema
  67. 67. Tela 1 Tela 2
  68. 68. •  Para navegarmos entre várias telas, utilizaremos os seguintes métodos: startActivity(intent); •  Pode enviar parâmetros •  Exibe uma nova activity startActivityForResult(intent,codigo); •  Pode enviar parâmetros •  Exibe uma nova activity •  Espera um retorno da mesma
  69. 69. •  Para se enviar parâmetros utiliza-se a classe Intent em união com a Bundle, ou não; •  É similar a um HashMap; Valor INT e STRING Enviando parâmentros
  70. 70. •  Para enviar parâmetros •  É similar a um HashMap; Valor Boolean De forma abreviada
  71. 71. Captando resultados de outras telas
  72. 72. Iniciando outra tela esperando resposta
  73. 73. •  Utiliza-se o método setResult(codigo, intent); •  Em seguida chama o método finish(); Retornando valores Ou sobrescreve o método onBackPressed e não chama o finish();
  74. 74. •  Capturando o retorno •  onActivityResult(int requestCode, int resultCode, Intent data); •  Efetua a leitura do intent de acordo com resultCode •  requestCode = codigo da Intent do startActivityForResult(intent, codigo); A result code specified by the second activity. This is either RESULT_OK if the operation was successful or RESULT_CANCELED if the user backed out or the operation failed for some reason.
  75. 75. Mão no código J •  Transforme sua aplicação desktop em mobile; •  Exportar o modelo de Formas Geométricas: •  Triangulo (lib); •  Quadrado (lib); •  CheckBox perguntando se deve calcular o volume (L x L x L) •  Prisma e Circulo (na mesma tela- usar radiobutton): •  prisma (Área total = A1 + 2 * A2) •  circulo(Área total = 3.14 * Raio * Raio)
  76. 76. ListActivity
  77. 77. •  Exibe dados em forma de lista; •  Subclasse de Activity; •  Já possui métodos relacionado ao componente ListView; •  Já possui barra de rolagem; •  Método setContentView(listView), é chamado automático; •  Necessário um ListAdapter; •  Fazendo a ligação entre o ListView e os dados. ListActivity
  78. 78. Adapter ?? O Adapter permite que classes com interfaces incompatíveis possam interagir.
  79. 79. ListActivity •  Um rápido exemplo… Array com itens do ListView (Lista)
  80. 80. ListActivity •  Um rápido exemplo…
  81. 81. Personalizada? X Java como programar Novatec X Cada item pode ter essa estrutura?
  82. 82. Criando Layout personalizados para ListView
  83. 83. Criando o layout_list.xml
  84. 84. •  Criando a classe Icones •  Representando cada item da lista
  85. 85. •  Criando o a classe Icones (Continuação) •  Representando cada item da lista
  86. 86. Nosso Adapter
  87. 87. •  Criando o a classe IconesAdapter (Continuação) •  Adaptor para a List
  88. 88. •  Criando o a classe IconesAdapter (Continuação)
  89. 89. •  Criando o a classe IconesAdapter (Continuação) •  Adaptor para a List
  90. 90. Configurando a Activity de Exibição
  91. 91. Configurando o clique no item da Lista (ListActivity)
  92. 92. Mão no Código J •  Crie um novo Projeto: •  Criar uma tela de Login, antes de visualizar a lista de livros; •  Listar livros com imagem da capa, editora, edição e titulo; •  Ao clicar em um item, navegar para a respectiva tela de detalhamento (titulo, autor, capa, resumo); X Java como programar Edição 3 Item da Lista Detalhamento XJava como programar Resumo Resumo Resumo Resumo Resumo Resumo Novatec - Edição Novatec LerExibir: Leitura autorizada
  93. 93. Intents O Que mais elas podem fazer?
  94. 94. •  Representa uma “ação”, que será executada pela aplicação em conjunto com o sistema operacional; •  Exemplos: •  Abrir uma nova tela startActivity(intent); •  Efetuar uma ligação; •  Abrir o browser; •  Abrir um mapa; •  ……. Intents
  95. 95. ACTION_CALL ACTION_VIEW ACTION_SEND ACTION_DIAL ACTION_WEB_SEARCH Exemplos de Ações
  96. 96. •  Algumas das atividades/intenções precisam de autorização/permissão: •  Internet: •  android.permission.INTERNET •  Contatos: •  android.permission.READ_CONTACTS •  Ligação: •  android.permission.CALL_PHONE Intents
  97. 97. Abrindo o browser
  98. 98. •  Faça uma ligação •  Ação: Intent.ACTION_CALL; •  URI: “tel:numerodesejado”; •  android.permission.CALL_PHONE Uri uri= Uri.parse(“tel:88074562”); new Intent(Intent.Action_CALL, uri); startActivity(intent); Fazendo ligação
  99. 99. •  Adicionar opção de buscar livros na internet (no google); •  Adicionar opção de ligar para o desenvolvedor da app. Mão no código
  100. 100. Notifications http://developer.android.com/guide/topics/ui/notifiers/notifications.html
  101. 101. Notifications •  Classe: android.app.Notification •  Exibi uma mensagem na barra de status; •  Possui um conteúdo/mensagem; •  Uma Intent pode ser disparada ao clicar; •  Aplicação em segundo plano disparar um Alerta;
  102. 102. Estrutura da Notificação
  103. 103. Requisitos Necessários •  Icone Pequeno •  Titulo •  Mensagem
  104. 104. Criando
  105. 105. Flags http://developer.android.com/reference/android/app/PendingIntent.html
  106. 106. Após acionada deve-se cancelar a notificação Ou adicionar no onDestroy(), para encerra junto com a Activity que a iniciou!
  107. 107. Mão no código J •  Faça com que ao abrir a tela de detalhamento de livros uma notificação seja disparada, e caso o usuário clique o mesmo seja redirecionado para o google com a lista de resultados referentes ao nome do livros.

×