Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Desenvolvimento de aplicações para a plataforma google android

3,932 views

Published on

Slide da apresentação sobre desenvolvimento de aplicações para Google Android no ENUCOMP 2011.

Durante a apresentação foi desenvolvida uma app android fazendo comunicação com uma aplicação web, desenvolvida com VRaptor, via RestFul.

A aplicação era uma biblioteca on line, onde os alunos que tivesse a app android podia reservar e renovar os títulos do acervo.

Published in: Technology
  • Be the first to comment

Desenvolvimento de aplicações para a plataforma google android

  1. 1. 14/09/11 ENUCOMP - 2011
  2. 2. Apresentação <ul><li>Cândido Sales </li></ul><ul><li>Estudante do IFPI; </li></ul><ul><li>Membro do LIMS; </li></ul><ul><li>@candidosales </li></ul><ul><li>[email_address] </li></ul><ul><li>Lucas Aquiles </li></ul><ul><li>Estudante do IFPI; </li></ul><ul><li>@lucas_aquiles </li></ul><ul><li>[email_address] </li></ul>Apresentação 14/09/11 ENUCOMP - 2011
  3. 3. Introdução a Computação móvel 14/09/11 ENUCOMP - 2011
  4. 4. Computação Móvel <ul><li>Realizada em dispositivos portáteis que sejam capazes de acessar uma rede sem fio. </li></ul><ul><li>Por usuários móveis (com diferentes velocidades) </li></ul><ul><li>Acesso à informação a qualquer lugar, a qualquer momento </li></ul><ul><li>Termos relacionados: </li></ul><ul><li>– Computação Pervasiva </li></ul><ul><li>– Computação Ubíqua </li></ul>14/09/11 ENUCOMP - 2011
  5. 5. Dos Mainsframes à computação móvel 14/09/11 ENUCOMP - 2011
  6. 6. Computação Pervasiva <ul><li>Computação Pervasiva: acesso conveniente a informações relevantes e a habilidade de realizar ações sobre as mesmas quando e onde for necessário (IBM). </li></ul><ul><li>“ Espalhada por todos os lugares” </li></ul>14/09/11 ENUCOMP - 2011
  7. 7. Computação Pervasiva <ul><li>Projeto Everywhere Display (IBM) </li></ul><ul><li>– Qualquer superfície pode se tornar em uma projeção do tipo “touch screen” </li></ul>14/09/11 ENUCOMP - 2011
  8. 8. Computação Ubíqua <ul><li>Computação Ubíqua: </li></ul><ul><li>– onipresença da informática no cotidiano das pessoas (Wikipédia) </li></ul><ul><li>– ... tornam-se parte da nossa vida de forma que não os percebemos mais (Mark Weiser) </li></ul><ul><li>– Baseia-se na detecção de gestos, movimentos, fala, movimentação dos olhos... </li></ul>14/09/11 ENUCOMP - 2011
  9. 9. Computação Ubíqua <ul><li>Ex: Casa do “futuro”: </li></ul><ul><ul><li>• Sistema automático de iluminação </li></ul></ul><ul><ul><li>• Sistemas de extinção e prevenção de incêndios </li></ul></ul><ul><ul><li>• Monitoramento de saúde dos ocupantes da casa </li></ul></ul><ul><ul><li>• Geladeira que perceba variações de estoque e validade dos produtos </li></ul></ul><ul><ul><li>• Celular que envia dados de “coletados” a uma central médica </li></ul></ul>14/09/11 ENUCOMP - 2011
  10. 10. 14/09/11 ENUCOMP - 2011 Computação Ubíqua
  11. 11. Juntando tudo 14/09/11 ENUCOMP - 2011
  12. 12. Princípios da Computação Móvel <ul><li>Descentralização </li></ul><ul><li>Diversificação </li></ul><ul><li>Conectividade </li></ul><ul><li>Simplicidade </li></ul>14/09/11 ENUCOMP - 2011
  13. 13. Princípio da Descentralização <ul><li>Um passo além da descentralização dos sistemas distribuídos; </li></ul><ul><li>Uma grande variedade de pequenos dispositivos cooperam estabelecendo uma rede dinâmica de relacionamentos; </li></ul><ul><li>A habilidade de utilizar aplicações e informações em dispositivos móveis gera a necessidade de sincronização de atualizações de dados com sistemas servidores e outros dispositivos. </li></ul>14/09/11 ENUCOMP - 2011
  14. 14. Princípio da Diversificação <ul><li>Mesma informação em diferentes “modelos” </li></ul>14/09/11 ENUCOMP - 2011
  15. 15. Princípio da Conectividade <ul><li>Uma grande variedade de tecnologias deve ser atendida: </li></ul><ul><ul><li>– redes celulares, WLANs, Bluetooth, IrDA, WiMax, comunicação via satélite, etc. . . </li></ul></ul><ul><li>Não basta apenas conectar os dispositivos: </li></ul><ul><ul><li>– Troca de dados </li></ul></ul><ul><ul><li>– Descoberta de serviços </li></ul></ul><ul><ul><li>– Delegação de tarefas </li></ul></ul>14/09/11 ENUCOMP - 2011
  16. 16. Princípio da Simplicidade <ul><li>Computadores de uso geral: configuração complexa </li></ul><ul><li>“ Computadores” móveis: mais específicos e mais simples em configuração </li></ul><ul><li>Simples não significa primitivo: </li></ul><ul><ul><li>– telas touch-screen, </li></ul></ul><ul><ul><li>– reconhecimento de escrita, </li></ul></ul><ul><ul><li>– reconhecimento de voz </li></ul></ul><ul><ul><li>– etc </li></ul></ul>14/09/11 ENUCOMP - 2011
  17. 17. Requisitos de Aplicação <ul><li>• Infra-estrutura: </li></ul><ul><ul><li>- Cobertura(indoor, outdoor, acesso a alta/baixa velocidade) </li></ul></ul><ul><ul><li>- Qualidade da comunicação </li></ul></ul><ul><ul><li>- Confiabilidade e estabilidade da comunicação </li></ul></ul><ul><ul><li>- Segurança </li></ul></ul><ul><li>• Dispositivo Móvel </li></ul><ul><ul><li>– Forma de interação (grafico, textual, voz) </li></ul></ul><ul><ul><li>– Capacidade de identificar localização </li></ul></ul><ul><ul><li>– Capacidade de processamento e armazenamento locais </li></ul></ul><ul><li>• Serviços Middleware </li></ul><ul><ul><li>– Suporte à criptografia e autenticação </li></ul></ul><ul><ul><li>– QoS (Quality of Service) </li></ul></ul><ul><ul><li>– Descoberta e adaptação a novos serviços e recursos </li></ul></ul>14/09/11 ENUCOMP - 2011
  18. 18. Aceitação das Tecnologias <ul><li>Tempo para atingir 1 milhão de usuários: </li></ul><ul><ul><li>– TV preto-banco: 20 anos </li></ul></ul><ul><ul><li>– TV em cores: 9 anos </li></ul></ul><ul><ul><li>– VCR: 8 anos </li></ul></ul><ul><ul><li>– PC: 6 anos </li></ul></ul><ul><ul><li>– Celular: 2 anos e meio </li></ul></ul><ul><li>Dos 128 milhões de PCs vendidos em 2001, 22% eram laptops e este percentual tem crescido 1 a 2 pontos por ano desde 1999; </li></ul><ul><li>Acessos à Internet por meio de dispositivos móveis ultrapassou os acessos convencionais (PC e Browser) desde meados de 2002. </li></ul>14/09/11 ENUCOMP - 2011
  19. 19. Algumas aplicações de computação móvel <ul><li>Négocios diversos: m-commerce e m-business </li></ul><ul><ul><li>• Acesso à Internet por viajantes: transferência de arquivos, Web, acesso remoto…; </li></ul></ul><ul><ul><li>• Comércio: vendedores ambulantes; </li></ul></ul><ul><ul><li>• Tratamento Médico emergencial: transmissão do prontuário de/para ambulância (ou local do acidente); </li></ul></ul><ul><ul><li>• Segurança: consulta e obtenção de ficha criminal; </li></ul></ul><ul><ul><li>• Seguradoras: avaliação de sinistro; </li></ul></ul><ul><ul><li>• Serviços de resgate: coordenação das atividades de resgate; </li></ul></ul><ul><ul><li>• Aplicações Militares: coordenação de ações; </li></ul></ul><ul><ul><li>Gerenciamento de frota e Gerenciamento de bens; </li></ul></ul>14/09/11 ENUCOMP - 2011
  20. 20. Serviços baseados em localização <ul><li>Serviços de emergência: usuários entram em contato com uma central (E911) e é localizado; </li></ul><ul><ul><li>• Informações de tráfego; </li></ul></ul><ul><ul><li>• Navegação: Como ir do ponto A ao ponto B? </li></ul></ul><ul><ul><li>• Gerenciamento de frota; </li></ul></ul><ul><ul><li>• Gerenciamento de bens; </li></ul></ul><ul><ul><li>• Publicidade sem fio: usuários podem subscrever serviços que os notifiquem a respeito de certos produtos quando adentrarem uma dada região; </li></ul></ul><ul><ul><li>• Serviços de busca: restaurantes, postos de gasolina, hotéis próximos; </li></ul></ul><ul><ul><li>• Localização automática de veículos; </li></ul></ul><ul><ul><li>• Mapas; </li></ul></ul><ul><ul><li>• Informações de trânsito; </li></ul></ul><ul><ul><li>• Jogos. </li></ul></ul>14/09/11 ENUCOMP - 2011
  21. 21. Impacto da Computação Móvel <ul><li>Representa um novo paradigma computacional,ampliando os conceitos da computação distribuída </li></ul><ul><li>– Áreas com diversas implicações: </li></ul><ul><li>Redes de Computadores </li></ul><ul><li>Sistemas Operacionais </li></ul><ul><li>Banco de Dados </li></ul><ul><li>Ambientes de Programação </li></ul><ul><li>etc. . . </li></ul><ul><li>Mudanças sociais? </li></ul>14/09/11 ENUCOMP - 2011
  22. 22. Difusão da Tecnologia celular 14/09/11 ENUCOMP - 2011
  23. 23. 14/09/11 ENUCOMP - 2011 Difusão da Tecnologia celular
  24. 24. Difusão da Tecnologia celular 14/09/11 ENUCOMP - 2011
  25. 25. 14/09/11 ENUCOMP - 2011 Difusão da Tecnologia celular
  26. 26. Difusão da Tecnologia celular 14/09/11 ENUCOMP - 2011
  27. 27. 14/09/11 ENUCOMP - 2011 Difusão da Tecnologia celular
  28. 28. 14/09/11 ENUCOMP - 2011 Difusão da Tecnologia celular
  29. 29. 14/09/11 ENUCOMP - 2011 Difusão da Tecnologia celular
  30. 30. 14/09/11 ENUCOMP - 2011 Difusão da Tecnologia celular
  31. 31. 14/09/11 ENUCOMP - 2011 Difusão da Tecnologia celular
  32. 32. Visão Geral III SACIC - 2011 14/09/11 ENUCOMP - 2011
  33. 33. Roteiro <ul><ul><li>Mundo mobile </li></ul></ul><ul><ul><li>O que é o Android; </li></ul></ul><ul><ul><li>Open Handset Alliance; </li></ul></ul><ul><ul><li>Android e os competidores; </li></ul></ul><ul><ul><li>Por que Linux no Android?; </li></ul></ul><ul><ul><li>Dalvik Virtual Machine; </li></ul></ul><ul><ul><li>Instalando as ferramentas do Android; </li></ul></ul><ul><ul><li>Projeto “Meu HelloWord” </li></ul></ul><ul><ul><li>Componentes; </li></ul></ul>14/09/11 ENUCOMP - 2011
  34. 34. Mundo mobile <ul><li>Mercado de celulares </li></ul><ul><li>Usuários querem mais recursos em seus dispositivos </li></ul><ul><li>Aplicações móveis no mundo coorporativo </li></ul><ul><li>Necessidade de plataformas mais modernas para desenvolvimento de aplicações no auxilio de seus negócios e lucros. </li></ul>14/09/11 ENUCOMP - 2011
  35. 35. O que é Android? <ul><li>Sistema operacional baseado no kernel do Linux; </li></ul><ul><li>Possui uma implementação da JVM – Dalvik; </li></ul><ul><li>Código aberto e livre; </li></ul><ul><li>Plataforma flexível e poderosíssima de desenvolvimento </li></ul><ul><li>Customizavel </li></ul>14/09/11 ENUCOMP - 2011
  36. 36. Android e os competidores <ul><li>IPhone </li></ul><ul><li>JME </li></ul><ul><li>Symbiam </li></ul><ul><li>BlackBerry </li></ul><ul><li>WindowsMobile </li></ul>14/09/11 ENUCOMP - 2011
  37. 37. Porque Linux no android? <ul><li>Construída sob o kernel 2.6 do Linux </li></ul><ul><li>Gerencia memória e processos </li></ul><ul><li>Abstração de hardware </li></ul><ul><li>Usuários não vêem o Linux e seus programas não fazem chamas diretas a ele. </li></ul><ul><li>Suporte a gráficos 3D, especificação 1.0 da OpenGL ES, possível criar jogso com ótima qualidade. </li></ul>14/09/11 ENUCOMP - 2011
  38. 38. Open Handset Alliance <ul><li>União entre grandes da telefonia liderados pelo Google (OHA – Open Handset Alliance ) </li></ul><ul><li>Definir uma plataforma única e aberta </li></ul><ul><li>Plataforma moderna e flexível para desenvolvimento de aplicações </li></ul><ul><li>Fabricantes, Usuários e Desenvolvedores se beneficiam com o grupo </li></ul>14/09/11 ENUCOMP - 2011
  39. 39. Dalvik Virtual Machine <ul><li>JVM ótimizada para execução de dispositivos móveis – Dalvik </li></ul><ul><li>Bytecodes (arquivo .class) são convertidos em arquivo .dex (Dalvik Executable) – Aplicação android compilada </li></ul><ul><li>Compactação dos arquivos .dex e recursos como imagens em arquivos .apk (Android Package File) – Aplicação Final </li></ul>14/09/11 ENUCOMP - 2011
  40. 40. Instalando as ferramentas do Android <ul><li>Requisitos </li></ul><ul><ul><li>Java SDK </li></ul></ul><ul><ul><li>Android SDK </li></ul></ul><ul><ul><li>Eclipse IDE </li></ul></ul><ul><ul><li>Plugin ADT </li></ul></ul>14/09/11 ENUCOMP - 2011
  41. 41. Configuração do ambiente <ul><li>Escolher a versão </li></ul><ul><li>do JDK </li></ul>2.Aceite os termos 3.Escolher a versão para seu S.O 14/09/11 ENUCOMP - 2011
  42. 42. Configuração do ambiente <ul><li>Instalação do JDK no Linux (Ubuntu) </li></ul><ul><li>Com o comando apt-get : </li></ul><ul><li>sudo apt-get install openjdk-6-jdk && sudo apt-get install sun-java6-jdk </li></ul><ul><li>Após a instalação entre via console e digite: java –v </li></ul><ul><li>A saída deve ser a versão do java instalado. </li></ul>14/09/11 ENUCOMP - 2011
  43. 43. Instalação do Android SDK 1. no site www.android.com escolher a opção developers 14/09/11 ENUCOMP - 2011
  44. 44. Instalação do Android SDK 2. Escolha a opção SDK 3. Baixe o android SDK de acordo com o seu S.O A versão atual é a 3.2 (para tablet) e 2.3.3 (para smartphone) 14/09/11 ENUCOMP - 2011
  45. 45. Instalação do Android SDK <ul><li>Localize o arquivo e descompacte-o. </li></ul><ul><li>No windows basta executar o arquivo “SDK Manager.exe” localizado na pasta raiz do sdk </li></ul><ul><li>No linux ou Mac, acesse pelo terminal a pasta raiz do sdk e execute o comando ./tools/android </li></ul>14/09/11 ENUCOMP - 2011
  46. 46. Instalação do Android SDK <ul><li>irá aparacer o Android SDK e o AVD ( android vitual device ) Manager. </li></ul>14/09/11 ENUCOMP - 2011
  47. 47. Instalação do Android SDK Vá em “Available Packages”, marque a opção “AndroidRepository” e clique em “Install Selected” 14/09/11 ENUCOMP - 2011
  48. 48. Instalação do Android SDK <ul><li>Uma lista com todos os componentes disponíveis, incluindo documentação, plataformas, add-on, bibliotecas será exibida. </li></ul>14/09/11 ENUCOMP - 2011
  49. 49. Instalação do Android SDK <ul><li>Caso ocorra algum erro de HTTPS SSL, vá em &quot;settings“, marque a opção &quot;Force https:// sources to be fetched using http://&quot; e clique em &quot;Save & Apply&quot;. </li></ul>14/09/11 ENUCOMP - 2011
  50. 50. Instalação do Android SDK <ul><li>Aceite todos e clique em “install” </li></ul>14/09/11 ENUCOMP - 2011
  51. 51. <ul><li>Instalação e Configuração do Eclipse IDE </li></ul>1. Acesse o site www.eclipse.org e vá na sessão “Downlods” 2. Escolha a versão do Eclipse IDE for Java Developers 14/09/11 ENUCOMP - 2011
  52. 52. <ul><li>Instalação e Configuração do Eclipse IDE </li></ul><ul><li>Faça o download </li></ul>14/09/11 ENUCOMP - 2011
  53. 53. Instalação e Configuração do Eclipse IDE <ul><li>Após o download localize o arquivo , descompacte-o e execute o arquivo “eclipse.exe” </li></ul><ul><li>No ubunto é apenas “eclipse” </li></ul>14/09/11 ENUCOMP - 2011
  54. 54. Instalação do plugin ADT <ul><li>Inicie o eclipse e vá em “ help ”, “ install new software ” </li></ul>14/09/11 ENUCOMP - 2011
  55. 55. Instalação do plugin ADT <ul><li>Clique em add e uma nova janela irá aparecer </li></ul><ul><li>Em “name” coloque “ADT Plugin” e em “location” adicione https://dl-ssl.google.com/android/eclipse/ e clique em “ok” </li></ul>14/09/11 ENUCOMP - 2011
  56. 56. Instalação do plugin ADT <ul><li>Selecione “ADT Plugin” na lista de sites, marque a opção “Developers Tools” e clique em “next”. </li></ul>14/09/11 ENUCOMP - 2011
  57. 57. Instalação do plugin ADT <ul><li>Irá aparecer uma lista com todos os item a serem instalados. </li></ul><ul><li>Clique em &quot;Next&quot; novamente. Na próxima tela, escolha a opção &quot; I accept the the terms of the licence agreements &quot; e clique em 'Finish'. </li></ul><ul><li>Após o processo de instação do plugin o Eclipse irá reiniciar. </li></ul>14/09/11 ENUCOMP - 2011
  58. 58. <ul><li>Instalação do plugin ADT </li></ul><ul><li>Quando o Eclipse IDE iniciar uma mensagem de erro irá aparecer, porque a IDE não consegue localizar o Android SDK </li></ul><ul><li>Vá em Window, Preferences, Android. Clique em 'Browse..‘, selecione a raiz do SDK e clique em 'OK‘. </li></ul>14/09/11 ENUCOMP - 2011
  59. 59. Criando uma ADV <ul><li>Abra o “SDK e ADV Manager” e em Virtual Devices clique em “new” </li></ul>14/09/11 ENUCOMP - 2011
  60. 60. Criando uma ADV <ul><li>Adicione as informações como na imagem e clique em “Create ADV” </li></ul>14/09/11 ENUCOMP - 2011
  61. 61. Criando uma ADV <ul><li>Criamos uma ADV com o nome “enucomp” </li></ul><ul><li>Que possui o firmeware 2.2 e também possui o Secure Digital Card (SD) e o Skin Default Half-VGA – HVGA (320 x 480) </li></ul>14/09/11 ENUCOMP - 2011
  62. 62. Pronto! Nosso ambiente está pronto para desenvolvimento. 14/09/11 ENUCOMP - 2011
  63. 63. Projeto “Meu HelloWord” <ul><li>O plugin ADT vem com uma aplicação HelloWord de exemplo, vamos usá-la </li></ul><ul><li>Vá em “file” > “Project” > “new project”. </li></ul><ul><li>Vá em “android” > “android project” e clique em “next” </li></ul><ul><li>Em Project Name digite: HelloAndroid </li></ul><ul><li>No Build Target: Android 2.2 </li></ul><ul><li>Application Name : Hello, Android </li></ul><ul><li>Package name: br.ifpi.edu.hello </li></ul><ul><li>Create Activity: Hello </li></ul><ul><li>E clique em “finish” </li></ul>14/09/11 ENUCOMP - 2011
  64. 64. Projeto “Meu HelloWord” <ul><li>Um estrutura de diretórios como a mostrada abaixo será criada </li></ul>14/09/11 ENUCOMP - 2011
  65. 65. Projeto “Meu HelloWord” <ul><li>Para executar clique com o botão direito em cima do projeto e escolha “run as” > “android application” </li></ul>14/09/11 ENUCOMP - 2011
  66. 66. Projeto “Meu HelloWord” 14/09/11 ENUCOMP - 2011
  67. 67. Activity III SACIC - 2011 14/09/11 ENUCOMP - 2011
  68. 68. Activity <ul><li>Uma tela pode ser criada de duas formas: </li></ul><ul><li>– Em um arquivo XML </li></ul><ul><li>– Direto em um arquivo Java usando a sua API </li></ul><ul><li>android.app.Activity: </li></ul><ul><li>– Similar à classe JFrame do Swing </li></ul><ul><li>– Representa, à priori, uma tela da aplicação </li></ul><ul><li>– Composta por vários componentes representados pela classe andoid.view.View (botões, checkboxes, imagens) </li></ul><ul><li>– Controla a passagem de parâmetros para outra tela </li></ul><ul><li>– Define métodos para tratar eventos dos componentes </li></ul>14/09/11 ENUCOMP - 2011
  69. 69. Activity 14/09/11 ENUCOMP - 2011
  70. 70. View <ul><li>São componentes simples (botões, checkboxes, imagens) ou componentes compostos </li></ul><ul><ul><li>– Atuam como gerenciadores de layout </li></ul></ul><ul><ul><li>– Podem conter várias views filhas (outro componentes) </li></ul></ul><ul><li>O arquivo main.xml é um arquivo de layout padrão </li></ul><ul><li>Vários layouts podemser definidos </li></ul>14/09/11 ENUCOMP - 2011
  71. 71. Setando a View Principal <ul><li>O médoto setContentView faz a ligação entre a activity e a view </li></ul><ul><li>A view passada como parâmetro está definida no arquivo main.xml (pode ser mudado) </li></ul><ul><li>– é referenciada via o arquivo R.java como uma constante </li></ul>14/09/11 ENUCOMP - 2011
  72. 72. A classe R 14/09/11 ENUCOMP - 2011
  73. 73. AndroidManifest.xml Base da aplicação e semelhante ao web.xml de aplicações WEB 14/09/11 ENUCOMP - 2011
  74. 74. AndroidManifest.xml <ul><li>As Activities devem ser definidas no arquivo </li></ul><ul><li>Para que o usuário possa interagir, pelo menosuma Activity deve ser definida no arquivo </li></ul><ul><li>A configuração de uma Activity como ponto de partida para a aplicação é ilustrada abaixo: </li></ul>14/09/11 ENUCOMP - 2011
  75. 75. Criação de interface via Java <ul><li>Pode-se definir uma interface visual via codificação java </li></ul>14/09/11 ENUCOMP - 2011
  76. 76. Referenciando componentes <ul><li>Sempre que possível, atribua um ID aos componentes </li></ul>14/09/11 ENUCOMP - 2011
  77. 77. Referenciando componentes <ul><li>Adicionar IDs aos componentes permitem acesso via codificação </li></ul>14/09/11 ENUCOMP - 2011
  78. 78. Tratando o clique de um botão <ul><li>Para tratar eventos de um botão, deve-se: </li></ul><ul><ul><li>– Obter o componente pelo ID </li></ul></ul><ul><ul><li>– Instanciar um listener </li></ul></ul><ul><ul><li>– Setar o listener no botão </li></ul></ul><ul><ul><li>– Implementar o método onClick </li></ul></ul>14/09/11 ENUCOMP - 2011
  79. 79. Exemplo 14/09/11 ENUCOMP - 2011
  80. 80. Gerando Logs 14/09/11 ENUCOMP - 2011
  81. 81. Gerando Logs <ul><li>Usa-se a classe Log e seus métodos estáticos: </li></ul>14/09/11 ENUCOMP - 2011
  82. 82. Componentes III SACIC - 2011 14/09/11 ENUCOMP - 2011
  83. 83. Roteiro <ul><li>ScrollView; </li></ul><ul><li>MapView; </li></ul><ul><li>ListView; </li></ul><ul><li>ImageView; </li></ul><ul><li>ContextMenu; </li></ul><ul><li>Autocomplete; </li></ul><ul><li>Tables; </li></ul><ul><li>Buttons (ImageButton, GroupButton, Button); </li></ul><ul><li>“ CSS”; </li></ul><ul><li>Tratamento de eventos </li></ul><ul><li>Apresentação de exemplos </li></ul>14/09/11 ENUCOMP - 2011
  84. 84. ScrollView <ul><li>A classe android.widget.ScrollView deve ser utilizada para telas que contêm muitos elementos e nas quais seja necessário fazer a rolagem da tela. </li></ul><ul><ul><li>Exemplo </li></ul></ul><ul><ul><ul><li>exemplo_scrollview.xml </li></ul></ul></ul><ul><ul><ul><li>ExemploScrollView </li></ul></ul></ul>14/09/11 ENUCOMP - 2011
  85. 85. MapView <ul><li>Para visualização de mapas; </li></ul><ul><ul><li>Para utilizar um MapView, basta definir a tag <com.google.android.maps.MapView> e informar no atributo android:apiKey uma chave de autenticação válida para o Google Maps. </li></ul></ul><ul><ul><li>Exemplo </li></ul></ul><ul><ul><ul><li>Mapview.xml </li></ul></ul></ul><ul><ul><ul><li>MapaSimplesXML </li></ul></ul></ul>14/09/11 ENUCOMP - 2011
  86. 86. ListView <ul><li>Desenha os componentes em uma lista vertical e com barra de rolagem (scroll), se necessário. </li></ul><ul><ul><li>Necessita da classe android.app.ListActivity, uma acitivy especial para exibir uma lista de itens na vertical. </li></ul></ul><ul><ul><li>Exemplo </li></ul></ul><ul><ul><ul><li>Prático! Pág. 113 </li></ul></ul></ul>14/09/11 ENUCOMP - 2011
  87. 87. ImageView <ul><li>Apresenta uma imagem que você selecionou. </li></ul>14/09/11 ENUCOMP - 2011
  88. 88. Context Menu <ul><li>Menu contextuado que pode ser utilizado em qualquer momento de sua aplicação. </li></ul><ul><ul><li>Exemplo </li></ul></ul><ul><ul><ul><li>Pág 253 </li></ul></ul></ul>14/09/11 ENUCOMP - 2011
  89. 89. Autocomplete <ul><li>Um recurso muito usado em aplicações web </li></ul><ul><li>São campos de texto que podem completar automaticamente o texto que o usuário está digitando. </li></ul><ul><ul><li>Para usar o AutoCompleteTextView é necessário chamar o método setAdapter(adaptador) e informar sua implementação de ListAdapter. </li></ul></ul><ul><ul><li>Exemplo </li></ul></ul><ul><ul><ul><li>Pág 221 </li></ul></ul></ul>14/09/11 ENUCOMP - 2011
  90. 90. Tabs <ul><li>Conceitos </li></ul><ul><ul><li>TabHost – Componente que agrupa os butões e o contéudo </li></ul></ul><ul><ul><li>TabWidget – Grupa em linha os butões que possuem labels e ícones (opcional) </li></ul></ul><ul><ul><li>FrameLayout – Agrupa o conteúdo de uma aba </li></ul></ul>14/09/11 ENUCOMP - 2011
  91. 91. Tabs <ul><li>Estrutura </li></ul>14/09/11 ENUCOMP - 2011
  92. 92. Usando TabActivity <ul><li>Crie uma nova Activity que extenda de TabActivity e implementa as interfaces OnTabChangeListener e TabContentFactory </li></ul>14/09/11 ENUCOMP - 2011
  93. 93. Usando TabActivity <ul><li>Crie dois novos layouts xml do android com os nomes tab1.xml tab2.xml e adicione um TextView a cada layout </li></ul><ul><li>E altere o setContentView() das activitys Tab1.class e Tab2.class para eles. </li></ul>14/09/11 ENUCOMP - 2011
  94. 94. Nova tab pelo XML do Android <ul><li>Crie um novo layout XML - tabs.xml </li></ul><ul><li>Crie uma nova acvitivy - Tabs.java que estenda de Activity </li></ul><ul><li>Adicione a activity ao AndroidManifest.xml </li></ul><ul><li>Altere o método setContentView(R.layout.tabs)) </li></ul>14/09/11 ENUCOMP - 2011
  95. 95. Nova tab pelo XML do Android <ul><li>Sua activity deve está assim </li></ul>14/09/11 ENUCOMP - 2011
  96. 96. Nova tab pelo XML do Android <ul><li>Altere o arquivo tab.xml </li></ul>14/09/11 ENUCOMP - 2011
  97. 97. Nova tab pelo XML do Android <ul><li>Altere o arquivo Tab.java </li></ul>14/09/11 ENUCOMP - 2011
  98. 98. Nova tab pelo XML do Android <ul><li>Altere o arquivo AndroidManifest para que a activity Tabs.java seja iniciada no início da aplicação </li></ul>14/09/11 ENUCOMP - 2011
  99. 99. Buttons <ul><li>As classes android.widget.Button e android.widget.ImageButton são utilizadas para criar um botão na tela. </li></ul><ul><ul><li>A diferença é que a classe ImageButton permite usar uma imagem para desenhar no botão. </li></ul></ul><ul><ul><li>Exemplo </li></ul></ul><ul><ul><ul><li>Pág 223 </li></ul></ul></ul>14/09/11 ENUCOMP - 2011
  100. 100. “ CSS” <ul><li>Podemos utilizar os arquivos XML como extensões de estilos que podem ser reutilizados em vários layouts, sem necessitar a repetição de código. </li></ul><ul><ul><li>Exemplo </li></ul></ul><ul><ul><ul><li>Guia Turistico </li></ul></ul></ul>14/09/11 ENUCOMP - 2011
  101. 101. Ciclo de vida III SACIC - 2011 14/09/11 ENUCOMP - 2011
  102. 102. 17/05/11 III SACIC - 2011 Ciclo de vida de uma activity 14/09/11 ENUCOMP - 2011
  103. 103. 17/05/11 III SACIC - 2011 <ul><li>onCreate : </li></ul><ul><ul><li>– Obrigatório e chamado uma única vez. </li></ul></ul><ul><ul><li>– Deve-se setar a view </li></ul></ul><ul><li>• onStart : é chamado quando uma activity está ficando visível e já tem uma view definida </li></ul><ul><li>• onRestart: chamado quando uma activity foi parada temporariamente e está retornando à execução </li></ul><ul><li>• onResume : </li></ul><ul><ul><li>– Quando uma activity está executando. </li></ul></ul><ul><ul><li>– Pode ser chamada também para recuperação de dados quando foi interrompida e volta a execução </li></ul></ul>Ciclo de vida de uma activity 14/09/11 ENUCOMP - 2011
  104. 104. 17/05/11 III SACIC - 2011 <ul><li>onPause : chamado quando a activity está sendo tirada do topo da execução. Usado para salvar o estado da aplicação </li></ul><ul><li>onStop : </li></ul><ul><li>– A aplicação não está mais visível e está em segundo plano. </li></ul><ul><li>– Caso fique por muito tempo em 2o Plano e falte recursos, o S.O. pode remover completamente da pilha de execução </li></ul><ul><li>onDestroy : encerra literalmente a activity </li></ul>Ciclo de vida de uma activity 14/09/11 ENUCOMP - 2011
  105. 105. Activities x Intents III SACIC - 2011 14/09/11 ENUCOMP - 2011
  106. 106. Activities x Intents <ul><li>Activities são as &quot;telas&quot; </li></ul><ul><li>Uma aplicação pode ter várias activities: </li></ul><ul><li>– geralmente independentes, </li></ul><ul><li>– contudo elas podem precisar se cooperar e trocar dados entre si </li></ul><ul><li>Numa aplicação tradicional, uma activity deve ser definida como &quot;main&quot; e será executada ao rodar a aplicação </li></ul><ul><li>Indo de uma activity para outra é possível pedindo para a atual executar uma intent </li></ul>14/09/11 ENUCOMP - 2011
  107. 107. Intents 14/09/11 ENUCOMP - 2011
  108. 108. Intents <ul><li>android.content.Intent </li></ul><ul><ul><li>• Representa uma mensagem da aplicação para o S.O. </li></ul></ul><ul><ul><li>• Solicita que algo seja realizado e serve para integrar aplicações </li></ul></ul><ul><li>• Ex: </li></ul><ul><ul><li>– Chamar outra tela (já visto) </li></ul></ul><ul><ul><li>– Solicitar que o S.O. ligue para um número; </li></ul></ul><ul><ul><li>– Abrir o browser em um determinado endereço </li></ul></ul><ul><ul><li>– Exibir algum endereço, localização ou rota num mapa </li></ul></ul><ul><ul><li>– Executar processamento em segundo plano </li></ul></ul><ul><ul><li>– Enviar mensagem para outras aplicações realizarem tarefas específicas </li></ul></ul>14/09/11 ENUCOMP - 2011
  109. 109. Intents <ul><li>São chamadas pelos métodos: </li></ul><ul><li>startActivity(intent) = Executa uma activity </li></ul><ul><li>starActivityForResult(intent) = Executa uma activity quepode retornar valores </li></ul><ul><li>startService(intent) or bindService(intent, …) = Inicia ou se comunica comum serviço de segundo plano </li></ul><ul><li>sendBroadcast(intent) = Envia uma intent que podeser &quot;capturada&quot; por serviçosespecíficos </li></ul>14/09/11 ENUCOMP - 2011
  110. 110. Alguns tipos de Intents pré-definidos 14/09/11 ENUCOMP - 2011
  111. 111. Permissões <ul><li>Algumas intents necessitam de permissão explicita para executar </li></ul><ul><li>Deve-se adicionar as permissões no arquivo AndroidManifest.xml </li></ul>14/09/11 ENUCOMP - 2011
  112. 112. Usando Intents pré-definidas 14/09/11 ENUCOMP - 2011
  113. 113. Algumas permissões <ul><li>Permissão para executar navegação: INTERNET </li></ul><ul><li>Ligações telefônicas: CALL_PHONE </li></ul><ul><li>Leitura à lista de contatos: READ_CONTACTS </li></ul>14/09/11 ENUCOMP - 2011
  114. 114. Intent chamar navegador <ul><li>Tipo ACTION_VIEW </li></ul><ul><li>... </li></ul><ul><li>Uri uri = Uri.parse(&quot;http://www.android.com&quot;); </li></ul><ul><li>Intent it = new Intent(Intent.ACTION_VIEW, uri); </li></ul><ul><li>startActivity(it); </li></ul><ul><li>... </li></ul><ul><li>É necessária a permissão INTERNET </li></ul>14/09/11 ENUCOMP - 2011

×