$30 off During Our Annual Pro Sale. View Details »

Oficina de Android

Oficina de Android

Apresentação utilizada no curso introdutório de Android realizado na Semana de Ciências Exatas e Tecnologia da PUC-SP nos dias 04 e 05 de novembro de 2013

Diego Martins de Pinho

November 04, 2013
Tweet

More Decks by Diego Martins de Pinho

Other Decks in Technology

Transcript

  1. Apresentação • Desenvolvedores Java • Empresa Touch Tecnologia (Touch Health)

    • Último semestre do curso de Ciência da Computação na PUC-SP • Contato: – [email protected] | fb.com/diego.pinho.31 – [email protected] | fb.com/luizrmiranda7
  2. Agenda • Introdução ao Android – Conhecendo um pouco da

    sua história • Conceitos básicos do Android – A arquitetura do Android – Os elementos essenciais • Configuração do ambiente • Desenvolvendo a minha primeira aplicação – Hello World – Atividade 01 - LogCat e Ciclo de Vida – Atividade 02 – Telas – Atividade 03 - Telas e Intent
  3. História do Android • Desenvolvida pela Android Inc. (comprada pela

    Google) • Faz parte da Open Handset Alliance* • O primeiro aparelho comercial com Android foi o HTC Dream ou G1. • Em 2007, Android Beta SDK é liberado. • Hoje, o Android é o sistema mais utilizado em smartphones *A OHA é um conjunto de várias empresas, que têm como objetivo desenvolver padrões abertos para dispositivos móveis HTC Dream
  4. Mercado Android • O Android conquistou 79.3% de participação no

    segmento de smartphones durante o segundo trimestre deste ano (187,4 milhões de unidades), aponta a consultoria IDC. No mesmo período do ano passado, o índice era de 69,1%.
  5. Vantagens do Android no Mercado • As principais características que

    diferenciam o Android de outros sistemas: – Flexibilidade – Aplicações – Demanda – Segurança – Custo Você consegue citar mais alguma característica que diferencia o sistema Android?
  6. Utilizadores do Android • A AdMob* fez uma pesquisa sobre

    os utilizadores de IPhone, IPod, Android, etc., relativamente à sua interação e envolvência com as aplicações. Homens Mulheres Apenas 21% compram uma aplicação paga por mês 24% dos utilizadores tem menos de 24 anos *AdMob é uma empresa americana de publicidade móvel comprada pela Google
  7. Características do Android • Sistema baseado em Linux (kernel 2.6)

    • Código fonte é open source* • API em Java (Android SDK) • Não está preso a nenhum hardware • Grande quantidade de aplicativos (Google Play) • Diversas opções de personalização • Existe SGBD nativo, o SQlite • Possui suporte a gráficos 3D baseado na especificação 1.0 da OpenGL ES *O código fonte pode ser baixado no site source.android.com
  8. A Evolução do Android • Desde seu lançamento, em 2008,

    o Android já teve dez versões diferentes, sem contar as pequenas variações, entre as versões.
  9. Utilização das Versões Versão Codinome API Distribuição 2.2 Froyo 8

    1.7% 2.3.3 – 2.3.7 Gingerbread 10 26.3% 3.2 Honeycomb 13 0.1% 4.0.3 – 4.0.4 Ice Cream Sandwich 15 19.8% 4.1.X Jelly Bean 16 37.3% 4.2.X 17 12.5% 4.3 18 2.3% Dados retirados do site: http://developer.android.com *Dados referentes a pesquisa realizada em um período de 7 dias, terminado no dia 01/11/2013
  10. Arquitetura do Android • O Google geralmente se refere ao

    sistema operacional Android como uma pilha de softwares. Cada camada da pilha agrupa vários programas que suportam funções específicas do sistema operacional. A organização em camadas permite uma melhor organização (e uso) do sistema!
  11. Arquitetura do Android • Camada de Aplicações: onde se localizam

    todos os aplicativos que são executados sobre o sistema operacional, tais como, cliente de SMS e MMS, cliente de e-mail, navegador, mapas, calculadora, dentre outros • Camada de Suporte: A camada de framework nativo disponibiliza aos desenvolvedores as mesmas Applications Programming Interface (APIs) – Interface de Programação de Aplicativos utilizadas para a criação de aplicações originais do sistema operacional Android
  12. Arquitetura do Android • Camada de Bibliotecas: camada que possui

    as bibliotecas C/C++ que são utilizadas pelo sistema, e também bibliotecas de multimídia, visualização de camadas 2D e 3D, funções para navegadores web, funções de aceleradores de hardware, renderização 3D, funções para gráficos, fontes bitmap e vetorizadas e funções de acesso a banco de dados SQLite.
  13. Arquitetura do Android • Camada de Runtime: camada se instancia

    a máquina virtual Dalvik, criada para cada aplicação executada no Android. Essa maquina virtual é a melhor referente a desempenho, maior integração com a nova geração de hardware e projetada como executar vários processos paralelamente. • Camada de Kernel Linux: o núcleo do sistema operacional Android é derivado do kernel 2.6 do Linux, herdando diversas características dessa plataforma. Parte importante que se utiliza do Linux na concepção do Google Android é o de controle de processos, gerenciarem memória, threads, protocolos de rede, modelo de drives e a segurança dos arquivos.
  14. Elementos Essenciais • Os aplicativos são escritos em Java (Dalvik

    VM não é uma JVM! Os arquivos .class são convertidos por meio de um compilador java para arquivos .dex) • Não existe função main(), existem pontos de entrada • O principal componente é a Activity, que corresponde a uma tela.
  15. Elementos Essenciais - Activity • É representado por uma tela

    na aplicação. Possui interface de usuário composta por Views, componentes gráficos, eventos e etc. • Define que existe uma tela, controla seu estado e a passagem de parâmetros de uma tela para a outra, define os métodos que serão chamados quando o usuário apertar algum botão da tela, etc.
  16. Activity – Ciclo de Vida • onCreate(): Método chamado quando

    a Activity é iniciada • onStart(): Método chamado quando a Activity fica visível para o usuário. • onResume(): Método chamado quando a Activity irá interagir com o usuário. • onPause(): Método chamado quando o sistema está prestes retomar uma outra Activity. • onStop(): Método chamado quando a Activity não estiver mais sendo executada. • onDestroy(): Método chamado quando a Activity terminou. • onRestart(): Método chamado quando a Activity estiver prestes a ser chamada novamente.
  17. Elementos Essenciais - View • Uma view pode ser um

    simples componente gráfico (botão, checkbox,imagem) ou uma view complexa, que atua como um gerenciador de layout, a qual pode conter várias views- filhas e tem a função de organizar as mesmas na tela. • A view é definida por meio de um arquivo XML.
  18. Elementos Essenciais - View Cada um dos elementos é uma

    View que foi associada a esta Activity e que podem levar a outras Activity
  19. Elementos Essenciais - Intent • O Intent representa uma ação

    que a aplicação deseja executar (mensagem da aplicação para o sistema operacional). • Uma Intent pode ser usada para: – Enviar mensagem ao sistema operacional. – Abrir uma nova tela da aplicação. – Solicitar ao sistema operacional que ligue para certo número. – Solicitar ao sistema operacional que abra o navegador em certa url. – Abrir o Google Play para fazer certa instalação de app – Etc.
  20. Elementos Essenciais – Manifest.xml • O arquivo manifest.xml contém informação

    essencial sobre a aplicação para o sistema Android. O sistema necessita dessa informação para que depois consiga rodar a aplicação • O manifest.xml define, por exemplo: – O nome do pacote Java para a aplicação – Os componentes da aplicação – Activitites, serviços, listeners – Permissões que a aplicação necessita para rodar – Versão mínima da API usada na aplicação – Etc...
  21. Elementos Essenciais – Classe R • A classe R é

    uma classe auto-gerada pelo build da aplicação no Eclipse. Ela serve como vínculo entre as Activities e as Views , ou seja, para cada componente da sua view, teremos uma variável na classe R que a referencia (de um jeito estranho!). • Não precisamos nos preocupar muito com essa classe pelo fato de não termos que mexer nela, o build do Eclipse já nos poupa desse fardo.
  22. Classe R - Exemplo Não se preocupe com a classe

    R. Ela se mostrará uma grande aliada, desde que você se lembre de nunca mexer nela! Ela é gerada automaticamente!
  23. Hello World • Tarefas: – Configurar o ambiente – Criar

    novo projeto – Criar nova máquina virtual (emulador) – Executar o projeto Não esqueça de identificar e entender todos os elementos explicados dentro do código!
  24. Atividade 01 - LogCat e Ciclo de Vida • Nesta

    atividade vamos aprender um pouco mais sobre o ciclo de vida de uma Activity e como usar o sistema de logs da máquina virtual Dalvik, o LogCat • Objetivo: Criar uma aplicação que exibe uma mensagem no LogCat a cada uma das etapas do ciclo de vida da Activity • Veja arquivo: TarefaLogCat – Exemplo.txt Não esqueça de filtrar os logs para não se perder!
  25. Atividade 02 - Telas • Nesta atividade vamos aprender um

    pouco mais sobre Activity e View. • Objetivo: Criar um aplicação – que se integre com a atividade 01 – que tenha 2 telas. Ao clicar em uma delas, é redirecionada para a outra. • Veja arquivo: Telas.txt Faça as telas estender a tela de log feita na atividade anterior!
  26. Atividade 03 – Telas e Intent • Nesta atividade vamos

    aprender um pouco mais sobre como usar as Intent e Bundle para passar parâmetros entre telas • Objetivo: Iterar o código da atividade 02, de modo que seja possível passar parâmetros entre telas (a mensagem exibida na segunda tela deve ser passada por parâmetro na primeira). • Veja arquivo: Passando-parametros.txt Aqui só vamos alterar um pouco os métodos onCreate() das nossas telas! Vai ser moleza! ;D
  27. Referências 1. http://developer.android.com/index.html 2. http://web.esad.ipleiria.pt/PDMIII/3080403/index_1.html 3. http://www.jeferson.silva.nom.br/2012/06/curso-basico-de-programacao- para.html 4. http://olhardigital.uol.com.br/pro/noticia/36573/36573

    5. http://informatica.hsw.uol.com.br/google-phone2.htm 6. http://www.alexandreporfirio.com/mini-curso-android/ 7. http://www.mundointerativo.com.br/2012/07/25/a-evolucao-do-android/ Nome: Google Android: Aprenda a criar aplicações para Dispositivos móveis com o Android SDK Autor: Ricardo R. Lecheta Editora: Novatec – Segunda Edição
  28. Agenda • Desenvolvendo minha primeira aplicação – Atividade 04 –

    Listas – Atividade 05 – Menu para aplicação – Experimento conjunto: Criando telas usando Layout
  29. Atividade 04 - Listas • Nesta atividade vamos mostrar como

    o Android facilita o nosso trabalho com lista de itens. Vamos aprender a criar uma lista de itens e exibi-la na tela. • Objetivo: Ver o funcionamento da classe ListActivity • Veja arquivo: TelaLista-exemplo.txt Nesta atividade vamos somente entender como funciona essa classe! Será importante para a próxima atividade! * Não esqueça de alterar o seu Manifest.xml
  30. Atividade 05 – Menu para Aplicação • Nesta atividade vamos

    aprender como usar a ListActivity para criar um menu para a nossa aplicação. • Objetivo: Criar um menu para as telas da aplicação. Ao apertar no item que corresponde a tela, ela deverá abrir. • Utilize a classe da atividade 04 como base! Você se lembra como chamar uma tela? Não? Olhe no código das outras atividades! A chave é a Intent. * Não esqueça de alterar o seu Manifest.xml
  31. Experimento – Criando Telas • Neste experimento vamos criar uma

    tela ao gosto de cada um, utilizando o sistema de drag n’ drop que gera o xml da nossa tela. Depois, vamos aprender a como pegar os elementos da nossa tela no código da nossa Activity para interagir com eles.
  32. Pesquisa de satisfação • Esperamos que você tenha gostado e

    aprendido nessa oficina de Android! Tentamos passar os principais conceitos envolvidos na programação de qualquer aplicativo para o sistema Android. • Se possível, gostaríamos que vocês respondessem a enquete a seguir para que possamos ter um pequeno feedback de vocês em relação ao que foi passado Enquete - Oficina Android 2013
  33. Referências 1. http://developer.android.com/index.html 2. http://web.esad.ipleiria.pt/PDMIII/3080403/index_1.html 3. http://www.jeferson.silva.nom.br/2012/06/curso-basico-de-programacao- para.html 4. http://olhardigital.uol.com.br/pro/noticia/36573/36573

    5. http://informatica.hsw.uol.com.br/google-phone2.htm 6. http://www.alexandreporfirio.com/mini-curso-android/ 7. http://www.mundointerativo.com.br/2012/07/25/a-evolucao-do-android/ Nome: Google Android: Aprenda a criar aplicações para Dispositivos móveis com o Android SDK Autor: Ricardo R. Lecheta Editora: Novatec – Segunda Edição