$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. Oficina de Android
    Por: Diego M. Pinho e Luiz Miranda

    View Slide

  2. 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

    View Slide

  3. 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

    View Slide

  4. Introdução ao Android
    Conhecendo um pouco da sua história

    View Slide

  5. 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

    View Slide

  6. 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%.

    View Slide

  7. 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?

    View Slide

  8. 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

    View Slide

  9. 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

    View Slide

  10. 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.

    View Slide

  11. View Slide

  12. View Slide

  13. 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

    View Slide

  14. Conceitos básicos
    A arquitetura do Android

    View Slide

  15. 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!

    View Slide

  16. Arquitetura do Android

    View Slide

  17. 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

    View Slide

  18. 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.

    View Slide

  19. 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.

    View Slide

  20. Conceitos básicos
    Os elementos essenciais

    View Slide

  21. 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.

    View Slide

  22. 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.

    View Slide

  23. Elementos Essenciais - Activity
    Para cada tela diferente da nossa aplicação, teremos uma Activity

    View Slide

  24. Activity – Ciclo de Vida

    View Slide

  25. 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.

    View Slide

  26. 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.

    View Slide

  27. Elementos Essenciais - View
    Cada um dos elementos é uma
    View que foi associada a esta
    Activity e que podem levar a
    outras Activity

    View Slide

  28. 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.

    View Slide

  29. 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...

    View Slide

  30. Manifest.xml - Exemplo
    Quais informações importantes é possível
    encontrar neste Manifest.xml?

    View Slide

  31. Manifest.xml - Exemplo

    View Slide

  32. 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.

    View Slide

  33. 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!

    View Slide

  34. Desenvolvendo minha primeira aplicação
    Hello World

    View Slide

  35. 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!

    View Slide

  36. Desenvolvendo minha primeira aplicação
    Atividade 01 – LogCat e Ciclo de Vida

    View Slide

  37. 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!

    View Slide

  38. Desenvolvendo minha primeira aplicação
    Atividade 02 – Telas

    View Slide

  39. 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!

    View Slide

  40. Desenvolvendo minha primeira aplicação
    Atividade 03 – Telas e Intent

    View Slide

  41. 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

    View Slide

  42. 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

    View Slide

  43. DIA 2

    View Slide

  44. Oficina de Android
    Por: Diego M. Pinho e Luiz Miranda

    View Slide

  45. Agenda
    • Desenvolvendo minha primeira aplicação
    – Atividade 04 – Listas
    – Atividade 05 – Menu para aplicação
    – Experimento conjunto: Criando telas usando Layout

    View Slide

  46. Desenvolvendo minha primeira aplicação
    Atividade 04 – Listas

    View Slide

  47. 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

    View Slide

  48. Desenvolvendo minha primeira aplicação
    Atividade 05 – Menu para Aplicação

    View Slide

  49. 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

    View Slide

  50. Desenvolvendo minha primeira aplicação
    Experimento - Criando telas usando Layout

    View Slide

  51. 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.

    View Slide

  52. 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

    View Slide

  53. 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

    View Slide

  54. Muito obrigado a todos!
    Diego M. de Pinho: [email protected]
    Luiz Miranda: [email protected]

    View Slide