Introdução ao Android
Afonso da Silva Machado
3 de Março de 2015
Eu
Afonso da Silva Machado
7º Semestre de Engenharia de Computação
Universidade Estadual de Feira de Santana
Membro da Emp...
Você
Quem tem um aparelho Android?
Quem sabe programar em Java?
Quem já programou pra alguma plataforma móvel?
Quem já “pr...
Conteúdo
•Histórico e Características
•Eclipse x Android Studio
• Android SDK
• AVD
•Arquitetura
•Debug
•Organização da ID...
Metodologia
•Dividindo em três partes
1. Manuseando a IDE
2. Aprendendo conceitos fundamentais
3. Aplicando seus conceitos...
Você
Código Aberto
Desenvolvido inicialmente pela Android Inc.
Comprado pela Google em 2005 e Lançado em 2008
Baseado no K...
Um sistema operacional para Tablets
E smartphones?
#sqn
Android Wear e Android TV
Diferentes Smartphones
E em breve: Android Auto
Anunciado para Grandes Marcas
http://www.android.com/
Várias versões
Android 5.0: Lollipop
Várias versões
1.0: 2008, O lançamento, HTC Dream;
2.0: Google, Eclair e Froyo, Nexus One;
2.3: Gingerbred, o sucesso;
3.0...
Versões
http://developer.android.com/about/dashboards/index.html
Google play store, filmes, músicas...
Android Studio (ou Eclipse?)
http://developer.android.com/sdk/index.html
Vamos ao que
Interessa ;)
Mas e o
Eclipse?
Java + Um bando de coisa
Chato?
Quantos gostam de java?
Quantos gostam de eclipse?
A idéia era: Android gambiarreitor tabajara
Seu kit de ferramentas e
plugins Android que você
instala no seu Eclipse, e
pr...
ADT: Android Developer Tools
O ADT foi a primeira IDE para
desenvolvimento em Android
Todo o processo de build é
baseado n...
Era legal... Mas...
•Interface muito misturada
•Meio eclipse seco, meio Android
•Relativamente pesado
•Emulador quase impo...
Até que...
16 de maio de 2013
Google I/O
Android KitKat
Google Nexus 5
IDE exclusiva para Android
Android Studio
No mesmo mês (Maio de 2014) foi lançado o primeiro
beta o Android Studio, versão 0.1
Android Studio
No mês de dezembro de 2014 a Google publicou o
download da primeira versão estável (1.0)
Android Studio
Android Studio é a nova suíte
de desenvolvimento de apps
em Android
Foi projetado utilizando a
infraestrutu...
A idéia é
• Apresentar uma IDE com uma interface intuitiva e
organizada;
• Mais “leve” e mais rápida;
• Multiplataforma;
•...
Features do Android Studio
• Baseado no flexível sistema de build Gradle
• Variantes de build e geração de múltiplos APKs
...
Features do Android Studio
• usabilidade, compatibilidade de versões, dentre outros
• suporte para utilização do ProGuard ...
Features do Android Studio
Funcionalidade
Sistema de Build
Build de dependências baseadas no Apache Maven Sim Não
Variante...
Requerimentos (pesado mas leve)
Windows OS X Linux
Microsoft Windows 8/7/Vista/2003
(32 ou 64 bit)
Mac OS X 10.8.5 or mais...
Android SDK
•Um kit de ferramentas
onde você encontrará
todas as ferramentas
e API’s necessárias
para fazer o seu
aplicati...
Vamos explorar
•Abra o Android
Studio.
$ cd android-studio/
$ cd bin/
$ sh studio.sh
Criando um projeto
Criando um projeto
Criando um projeto
Isso é pra mais tarde ;)
Enquanto
Esperamos...
1. Usando seu aparelho Android
2. Usando um Android Virtual Device
Testando seus apps
Usando seu aparelho Android, conectando a uma porta USB do
seu computador e ativando o modo de depuração no dispositivo
Te...
•Mais rápido
•Mais confortável
•Mais técnico
•Acesso mais rápido à DEBUGs
Testando no seu aparelho Android
Usando um Android Virtual Device (AVD)
Testando seus apps
•É basicamente um emulador do SO no seu
computador (Semelhante ao Virtual Box)
•Dentro de um AVD você pode emular câmera,
...
•Lento quando instalado em máquinas com
pouca memória e baixo processamento
•Devido a travamentos, a experiência com o
sis...
•Quem tiver um celular Android, use;
•Caso contrário usaremos um AVD;
•Mas criaremos um para entendermos seu
funcionamento...
Barra principal
Debug
Compilar e Executar
Dispositivos Virtuais
Android SDK Tools
Monitoramento do Dispositivo
Procedimentos Iniciais
Dispositivos Virtuais
Android SDK Tools
Monitoramento do Dispositivo
Prática
Criar e executar um AVD
Verificar pacotes do Android
SDK
Enquanto seu AVD
não abre...
Vamos à alguns
conceitos
Arquitetura de uma aplicação
• Linux Kernel
• Bibliotecas
• Frameworks
• Aplicações
• Android Runtime ou Dalvik VM
Arquitetura do Android
Linux Kernel
Permite que a plataforma Android tenha alta
portabilidade
Por ser de código aberto permite que talentos
indiv...
Bibliotecas
A camada acima do Kernel contém as bibliotecas nativas do
Android
Essas bibliotecas são todas
escritas em C ou...
Android Runtime
• Core libraries: gráficos 2D, interações com o SO,
collections do Java
• Máquina Virtual Android Runtime
Dalvik VM x ART
• No Dalvik (Just-in-time), os aplicativos instalados no
Android são interpretados pela máquina virtual Da...
Dalvik VM ART
Usa a abordagem just-in-time,
que resulta em menor consumo
de espaço de armazenamento,
mas o tempo de carreg...
Framoworks e Aplicações
• Gerenciadores de câmera, GPS, janelas...
• Telefone, mensagens, câmera, e o seu aplicativo
Seu AVD já abriu?
Se sim, vamos brincar
com ele.
DDMS: Dalvik Debug Monitor Server
Abra o Monitoramento do
Dispositivo
•Ferramenta de Debug do Android Studio (Já
existia no Eclipse);
•Mas no Android Studio a ferramenta pode
também ser usada ...
•Abra a aba “Emulator Tool” e simule uma ligação e
um envio de SMS
Prática
Deixe seu AVD aberto e
vamos pra outra parte
Lembram de quando
eu falei sobre “Activity”?
Equivale à uma tela.
Cada Activity é definida em dois arquivos
res/layout/activity_nome.xml (visual)
src/.../NomeActivity....
•Crie a sua Activity
Prática
Hello world!
Estrutura de um Projeto
no Android Studio
Perspectivas de Desenvolvimento
Projeto Pacotes Android
Estrutura do projetoNome do projeto
(mesmo nome do diretório)
Estrutura do projetoPasta com arquivos de
configuração da IDE
Estrutura do projeto
Módulo do projeto
O ícone muda conforme o tipo de módulo (wear, TV, glass)
Estrutura do projeto
Contém os arquivos compilados do app e os arquivos
auxiliares (layouts, arquivos *.class, arquivo R.j...
Estrutura do projeto
Pasta com as bibliotecas utilizadas
Contém os arquivos *.jar
Estrutura do projeto
Pasta com todo o código-fonte do aplicativo
Por padrão o Android Studio cria os fontes em “src/main/j...
Estrutura do projeto
Pacote principal das classes de teste
Por padrão o Android Studio cria os fontes em “src/androidTest/...
Estrutura do projeto
Arquivos de recursos do aplicativo
Layouts, telas, strings, ícones do app
Estrutura do projeto
Arquivo ‘Manifest’ do app (nome, versão
do Android, permissões...)
No Android Studio, cada módulo tem...
Estrutura do projeto
Arquivo de configuração do módulo app
Herdado da infraestrutura do IntelliJ
Estrutura do projeto
Arquivo build.gradle para o módulo app
Contém arquivos de configuração e tarefas do módulo,
como vers...
Estrutura do projeto
Pacote de arquivos do Gradle
Estrutura do projeto
Arquivo build.gradle do projeto
Contém informações gerais do projeto (repositórios)
Estrutura do projeto
Arquivo de propriedades do Gradle
Configurações específicas do gradle (gerado)
Estrutura do projeto
Script para execução das tarefas do Gradle
Utilizado no processo de realizar a construção do app
Estrutura do projeto
Informações locais (SDK)
Informa a localização do Android SDK (gerado)
Estrutura do projeto
Arquivo de configuração do projeto
Herdado da infraestrutura do IntelliJ
Estrutura do projeto
Arquivo de configuração dos módulos
Contém as informações dos módulos do projeto
Estrutura do projeto
Bibliotecas externas
Lista de bibliotecas externas ao projeto (SDK, JDK, etc)
Layout
Layout
• Todo o layout e interface gráfica de um aplicativo feito
no Android Studio está inserido num arquivo .xml, que é
...
Layout
• Pode ser manuseado
tanto o código xml
quanto a ferramenta de
interface do Android
Studio.
strings.xml
• res/values/strings/xml
Útil para traduzir um app para vários idiomas
(Usando um arquivo strings.xml para cad...
Código Java
• src/.../MainActivity.java
• Todas as Activities são herdam da classe ActionBarActivity
• Para cada Actvity h...
styles.xml
• Contém o estilo que você usa para o aplicativo e seus
componentes
Útil para economizar linhas nos arquivos do...
Arquivo R.java (Gerado pelo compilador)
• Possui métodos estáticos com as referências de todos os
recursos do projeto
• Ca...
Compilando seu projeto
 Make Project
 Run
Compilando seu projeto
Substitua no arquivo strings.xml, “Hello, World” por
qualquer outra String
Execute o app
Compilando seu projeto
Substitua no arquivo styles.xml o “parent” por
“Base.V14.Theme.AppCompact”
Execute o app
Interação
Adicione um botão
Ids!
Quando você adiciona mais de um componente numa
tela, os componentes são organizados por IDs
Ids!
Os Ids são referenciados no arquivo R.java, para facilitar
a interação com os componentes, basta apenas usar seu
ID
Clique!
Usando o método “onClick” e chamando-o no arquivo
.java da sua activity
android:onClick=“botaoClicado”
public void...
Prática
1. Exibir uma mensagem na tela
2. Exibir algo no Log ao tocar o botão
3. Exibir a quantidade de vezes que o botão ...
Toast (mensagem na tela)
Toast.makeText(this, "Que botao massa vei", Toast.LENGTH_SHORT).show();
Log (não visível para o usuário)
Toast.makeText(this, "Que botao massa vei", Toast.LENGTH_SHORT).show();
//métodos de Log
...
Método findViewById
• Use este método para acessar qualquer ID disponível para sua aplicação no
arquivo R.java no tempo de...
Práticazinha
• Modifique o texto do Botão ao tocar nele
Prática
• Adicione um campo de texto ‘EditView’ na sua
Activity
• Ao clicar no botão, altere o TextView para o valor do
ca...
Ciclo de vida de uma
Activity
Ciclo de vida de uma Activity
Prática
Implemente os métodos do ciclo de vida de uma
activity para emitir uma mensagem de log para
cada um
Tente fazer co...
Prática
Rotacione o dispositivo (Ctrl + F11) e veja quais
métodos são chamados.
Seu primeiro app funcional!
Usando dos conhecimentos até agora passados,
implemente um aplicativo que cálcule suas 3 média...
Dica!
Use três ‘EditText’ + 3 ‘TextView’ para as médias
Use um ‘TextView’ (inicialmente vazio) para informar o
resultado
C...
Dica!
No seu layout (xml), use o método
‘android:maxLenght’ para definir o tamanho máximo
de caracteres no EditText
Use ta...
Melhorando o app!
Para evitar erros, defina os ‘EditText’ como ‘0’
inicialmente, usando setText();
Melhorando o app!
Fazer com que apareça um ‘Dialog’ com o resultado
na tela
Melhorando o app!
Brincar com o Dialog, fazendo com que apareça uma
mensagem diferente no botão, ao passar ou perder
Melhorando o app
Faça com que ele calcule a média que você precisa
numa prova final em caso de reprovação
Fórmula para not...
Voltando para o projeto Hello World!
Preferências
Preferências
Como salvar dados para que eles possam ser
acessados da próxima vez que o app seja
executado?
SharedPreferenc...
Preferências
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(this);
Editor editor = prefs.edit();...
Prática
Faça o app guardar o texto
Carregue no onCreate e salve no onDestroy
Boa prática: use atributos static final para ...
Intents
Intents
São mensagens que seu programa envia para o
sistema para requisitar funcionalidades de outros
Componentes
Exemplo:...
Abrindo outra Activity
Intent intent = new Intent(this, OutraActivity.class);
startActivity(intent);
Pode ser chamado, por...
Fechando a Activity
Usando o método ‘finish();’
Quando uma activity é fechada
(desempilhada), o Sistema
mostra a Activity ...
Prática
Aproveitando o seu projeto Hello World, crie uma nova
Activity chamada OutraActivity.java
Na MainActivity.java, ad...
Passando dados de uma Activity pra outra
Intent intent = new Intent(this, OutraActivity.class);
intent.putExtra(“pi”, 3.14...
Retornando dados de uma Activity
Intent intent = new Intent(this, OutraActivity.class);
startActivityForResult(intent, 123...
Exercitando
Adicione dois ‘TextView’ vazios em cada Activity
Faça com que nesses ‘TextView’ aparecam a quantidade
de vezes...
Prática
Intents Implícitos
// Abrir navegador
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("http://www.google.com/"));...
Intents Implícitos
Existem ainda vários outros tipos
ACTION_CALL -> Realiza chamadas
IMAGE_CAPTURE -> Tira uma foto
ListView
ListView: Funcionamento
ListView
ArrayAdapter
ListView
ListView listView = (ListView) findViewById(R.id.mylist);
listView.setAdapter(adapter);
ListView
ListView lista = (ListView) findViewById(R.id.mylist);
String[] values = new String[] { “Jelly Bean”, “KitKat”, “...
ListView: Interação
lista.setOnItemClickListener(new
AdapterView.OnItemClickListener() {
@Override
public void onItemClick...
Prática
Sistema para guardar quaisquer observações
Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1
Próximos SlideShares
Carregando em…5
×

Introdução ao android - siecomp 2015.1

792 visualizações

Publicada em

Minicurso ministrado na SIECOMP

Publicada em: Engenharia
  • Seja o primeiro a comentar

Introdução ao android - siecomp 2015.1

  1. 1. Introdução ao Android Afonso da Silva Machado 3 de Março de 2015
  2. 2. Eu Afonso da Silva Machado 7º Semestre de Engenharia de Computação Universidade Estadual de Feira de Santana Membro da Empresa Junior de Engenharia de Computação
  3. 3. Você Quem tem um aparelho Android? Quem sabe programar em Java? Quem já programou pra alguma plataforma móvel? Quem já “programou” pelo menos um Hello World pra Android?
  4. 4. Conteúdo •Histórico e Características •Eclipse x Android Studio • Android SDK • AVD •Arquitetura •Debug •Organização da IDE •Conceitos específicos •Mão na massa
  5. 5. Metodologia •Dividindo em três partes 1. Manuseando a IDE 2. Aprendendo conceitos fundamentais 3. Aplicando seus conceitos a) Um pequeno app para cada conceito b) Apps completos para exercitar
  6. 6. Você Código Aberto Desenvolvido inicialmente pela Android Inc. Comprado pela Google em 2005 e Lançado em 2008 Baseado no Kernel do Linux Rodava com uma máquina virtual Java própria: Dalvik VM, a partir da versão 5.0 roda com uma nova máquina virtual ART (Android Run Time).
  7. 7. Um sistema operacional para Tablets
  8. 8. E smartphones?
  9. 9. #sqn
  10. 10. Android Wear e Android TV
  11. 11. Diferentes Smartphones
  12. 12. E em breve: Android Auto
  13. 13. Anunciado para Grandes Marcas http://www.android.com/
  14. 14. Várias versões
  15. 15. Android 5.0: Lollipop
  16. 16. Várias versões 1.0: 2008, O lançamento, HTC Dream; 2.0: Google, Eclair e Froyo, Nexus One; 2.3: Gingerbred, o sucesso; 3.0: Versão para Tablets, Honeycomb; 4.0: A ascenção, Ice Cream Sandwich, Jelly Bean e Kit Kat; 5.0: A ouzadia, Lollipop.
  17. 17. Versões http://developer.android.com/about/dashboards/index.html
  18. 18. Google play store, filmes, músicas...
  19. 19. Android Studio (ou Eclipse?) http://developer.android.com/sdk/index.html
  20. 20. Vamos ao que Interessa ;)
  21. 21. Mas e o Eclipse?
  22. 22. Java + Um bando de coisa Chato? Quantos gostam de java? Quantos gostam de eclipse?
  23. 23. A idéia era: Android gambiarreitor tabajara Seu kit de ferramentas e plugins Android que você instala no seu Eclipse, e pronto, já pode programar seus apps nativos 
  24. 24. ADT: Android Developer Tools O ADT foi a primeira IDE para desenvolvimento em Android Todo o processo de build é baseado na ferramenta Apache Ant Construído na infraestrutura do Eclipse
  25. 25. Era legal... Mas... •Interface muito misturada •Meio eclipse seco, meio Android •Relativamente pesado •Emulador quase impossível de ser executado
  26. 26. Até que... 16 de maio de 2013 Google I/O Android KitKat Google Nexus 5 IDE exclusiva para Android
  27. 27. Android Studio No mesmo mês (Maio de 2014) foi lançado o primeiro beta o Android Studio, versão 0.1
  28. 28. Android Studio No mês de dezembro de 2014 a Google publicou o download da primeira versão estável (1.0)
  29. 29. Android Studio Android Studio é a nova suíte de desenvolvimento de apps em Android Foi projetado utilizando a infraestrutura da IDE IntelliJ IDEA, da JetBrains Utiliza o Gradle como novo sistema de build no processo de desenvolvimento
  30. 30. A idéia é • Apresentar uma IDE com uma interface intuitiva e organizada; • Mais “leve” e mais rápida; • Multiplataforma; • Novo sistema de automação de compilação, deixando de lado o “Ant” e adicionando o “Gradle”. • Mantendo o Android SDK
  31. 31. Features do Android Studio • Baseado no flexível sistema de build Gradle • Variantes de build e geração de múltiplos APKs • Suporte expandido de templates para Google Play Services e • vários tipos de dispositivos • Editor de layout poderoso com suporte para edição de temas • Ferramenta Lint para capturar problemas de performance,
  32. 32. Features do Android Studio • usabilidade, compatibilidade de versões, dentre outros • suporte para utilização do ProGuard e assinatura de apps • suporte embutido para Google Cloud Platform, tornando mais fácil • integrar funcionalidades do Google Cloud Messaging e App Engine
  33. 33. Features do Android Studio Funcionalidade Sistema de Build Build de dependências baseadas no Apache Maven Sim Não Variantes de build e geração de múltiplos APKs (ex: Android Wear, Android TV) Sim Não Auto-completar de código Android avançado e refactoring Sim Não Editor gráfico de layout Sim Sim Assinatura de APK e gerenciamento de keystore Sim Sim Suporte à NDK Sim Sim
  34. 34. Requerimentos (pesado mas leve) Windows OS X Linux Microsoft Windows 8/7/Vista/2003 (32 ou 64 bit) Mac OS X 10.8.5 or mais atual, up to 10.10 to up 10.10.1 up 10.10.2 GNOME ou KDE ou Unity desktop no Ubuntu ou Fedora 2 GB RAM mínimo, 4 GB RAM recomendado 2 GB RAM mínimo, 4 GB RAM recomendado 2 GB RAM mínimo, 4 GB RAM recomendado 500 MB de espaço em disco 500 MB de espaço em disco 500 MB de espaço em disco 16 GB de espaço livre para o Android SDK e suas imagens de sistema 16 GB de espaço livre para o Android SDK e suas imagens de sistema 16 GB de espaço livre para o Android SDK e suas imagens de sistema Java Development Kit (JDK) 7 ou mais atual Java Development Kit (JDK) 7 ou mais atual Java Development Kit (JDK) 7 ou mais atual Resolução mínima de tela: 1280x800 Resolução mínima de tela: 1280x800 Resolução mínima de tela: 1280x800
  35. 35. Android SDK •Um kit de ferramentas onde você encontrará todas as ferramentas e API’s necessárias para fazer o seu aplicativo usando o Android Studio ou o Eclipse
  36. 36. Vamos explorar •Abra o Android Studio. $ cd android-studio/ $ cd bin/ $ sh studio.sh
  37. 37. Criando um projeto
  38. 38. Criando um projeto
  39. 39. Criando um projeto
  40. 40. Isso é pra mais tarde ;)
  41. 41. Enquanto Esperamos...
  42. 42. 1. Usando seu aparelho Android 2. Usando um Android Virtual Device Testando seus apps
  43. 43. Usando seu aparelho Android, conectando a uma porta USB do seu computador e ativando o modo de depuração no dispositivo Testando seus apps
  44. 44. •Mais rápido •Mais confortável •Mais técnico •Acesso mais rápido à DEBUGs Testando no seu aparelho Android
  45. 45. Usando um Android Virtual Device (AVD) Testando seus apps
  46. 46. •É basicamente um emulador do SO no seu computador (Semelhante ao Virtual Box) •Dentro de um AVD você pode emular câmera, rede, memória RAM, armazenamento interno e processador. Android Virtual Device (AVD)
  47. 47. •Lento quando instalado em máquinas com pouca memória e baixo processamento •Devido a travamentos, a experiência com o sistema e com o seu aplicativo se torna ruim •Alternativa grátis •Bom método de testar uma nova versão do Android Android Virtual Device (AVD)
  48. 48. •Quem tiver um celular Android, use; •Caso contrário usaremos um AVD; •Mas criaremos um para entendermos seu funcionamento •Seu projeto ja abriu? Por via das duvidas...
  49. 49. Barra principal Debug Compilar e Executar Dispositivos Virtuais Android SDK Tools Monitoramento do Dispositivo
  50. 50. Procedimentos Iniciais Dispositivos Virtuais Android SDK Tools Monitoramento do Dispositivo
  51. 51. Prática Criar e executar um AVD Verificar pacotes do Android SDK
  52. 52. Enquanto seu AVD não abre...
  53. 53. Vamos à alguns conceitos
  54. 54. Arquitetura de uma aplicação • Linux Kernel • Bibliotecas • Frameworks • Aplicações • Android Runtime ou Dalvik VM
  55. 55. Arquitetura do Android
  56. 56. Linux Kernel Permite que a plataforma Android tenha alta portabilidade Por ser de código aberto permite que talentos individuais ou companhias o melhorem ainda mais (ou piorem –’)
  57. 57. Bibliotecas A camada acima do Kernel contém as bibliotecas nativas do Android Essas bibliotecas são todas escritas em C ou C++ e compiladas para a arquitetura de hardware específica utilizada pelo telefone. Ex.: Codecs de mídia, Banco de Dados AQL
  58. 58. Android Runtime • Core libraries: gráficos 2D, interações com o SO, collections do Java • Máquina Virtual Android Runtime
  59. 59. Dalvik VM x ART • No Dalvik (Just-in-time), os aplicativos instalados no Android são interpretados pela máquina virtual Dalvik, e então as informações deles são enviadas até a interface gráfica • No ART (Ahead-of-time), os códigos são pré-compilados na linguagem de execução já durante a instalação dos aplicativos. Isso significa que a instalação dos softwares pode ser mais demorada, mas também representa mais rapidez na execução dos apps
  60. 60. Dalvik VM ART Usa a abordagem just-in-time, que resulta em menor consumo de espaço de armazenamento, mas o tempo de carregamento dos apps é mais longo; Usa a abordagem antes-do- tempo, que compila os aplicativos quando eles são instalados, resultando em tempos de carga e uso do processador menores; O cache se acumula ao longo do tempo, de modo que o tempo de inicialização são rápidos; O cache é construído no boot dos dispositivo, logo reiniciar leva muito mais tempo; Como o espaço ocupado é menor, ele unciona melhor para dispositivos de armazenamento interno menor. consome muito mais espaço de armazenamento, uma vez que ele armazena aplicativos compilados além dos APKs. Sem suporte à 64bits Suporte à 64bits
  61. 61. Framoworks e Aplicações • Gerenciadores de câmera, GPS, janelas... • Telefone, mensagens, câmera, e o seu aplicativo
  62. 62. Seu AVD já abriu?
  63. 63. Se sim, vamos brincar com ele.
  64. 64. DDMS: Dalvik Debug Monitor Server Abra o Monitoramento do Dispositivo
  65. 65. •Ferramenta de Debug do Android Studio (Já existia no Eclipse); •Mas no Android Studio a ferramenta pode também ser usada para debugar com o seu smartphone Android DDMS: Dalvik Debug Monitor Server
  66. 66. •Abra a aba “Emulator Tool” e simule uma ligação e um envio de SMS Prática
  67. 67. Deixe seu AVD aberto e vamos pra outra parte
  68. 68. Lembram de quando eu falei sobre “Activity”?
  69. 69. Equivale à uma tela. Cada Activity é definida em dois arquivos res/layout/activity_nome.xml (visual) src/.../NomeActivity.java (comportamento) Activity
  70. 70. •Crie a sua Activity Prática
  71. 71. Hello world!
  72. 72. Estrutura de um Projeto no Android Studio
  73. 73. Perspectivas de Desenvolvimento Projeto Pacotes Android
  74. 74. Estrutura do projetoNome do projeto (mesmo nome do diretório)
  75. 75. Estrutura do projetoPasta com arquivos de configuração da IDE
  76. 76. Estrutura do projeto Módulo do projeto O ícone muda conforme o tipo de módulo (wear, TV, glass)
  77. 77. Estrutura do projeto Contém os arquivos compilados do app e os arquivos auxiliares (layouts, arquivos *.class, arquivo R.java)
  78. 78. Estrutura do projeto Pasta com as bibliotecas utilizadas Contém os arquivos *.jar
  79. 79. Estrutura do projeto Pasta com todo o código-fonte do aplicativo Por padrão o Android Studio cria os fontes em “src/main/java
  80. 80. Estrutura do projeto Pacote principal das classes de teste Por padrão o Android Studio cria os fontes em “src/androidTest/java
  81. 81. Estrutura do projeto Arquivos de recursos do aplicativo Layouts, telas, strings, ícones do app
  82. 82. Estrutura do projeto Arquivo ‘Manifest’ do app (nome, versão do Android, permissões...) No Android Studio, cada módulo tem um arquivo ‘manifest’
  83. 83. Estrutura do projeto Arquivo de configuração do módulo app Herdado da infraestrutura do IntelliJ
  84. 84. Estrutura do projeto Arquivo build.gradle para o módulo app Contém arquivos de configuração e tarefas do módulo, como versão mínima, versão padrão, dependências (escrito em Groovy)
  85. 85. Estrutura do projeto Pacote de arquivos do Gradle
  86. 86. Estrutura do projeto Arquivo build.gradle do projeto Contém informações gerais do projeto (repositórios)
  87. 87. Estrutura do projeto Arquivo de propriedades do Gradle Configurações específicas do gradle (gerado)
  88. 88. Estrutura do projeto Script para execução das tarefas do Gradle Utilizado no processo de realizar a construção do app
  89. 89. Estrutura do projeto Informações locais (SDK) Informa a localização do Android SDK (gerado)
  90. 90. Estrutura do projeto Arquivo de configuração do projeto Herdado da infraestrutura do IntelliJ
  91. 91. Estrutura do projeto Arquivo de configuração dos módulos Contém as informações dos módulos do projeto
  92. 92. Estrutura do projeto Bibliotecas externas Lista de bibliotecas externas ao projeto (SDK, JDK, etc)
  93. 93. Layout
  94. 94. Layout • Todo o layout e interface gráfica de um aplicativo feito no Android Studio está inserido num arquivo .xml, que é criado junto com uma Activity;
  95. 95. Layout • Pode ser manuseado tanto o código xml quanto a ferramenta de interface do Android Studio.
  96. 96. strings.xml • res/values/strings/xml Útil para traduzir um app para vários idiomas (Usando um arquivo strings.xml para cada idioma)
  97. 97. Código Java • src/.../MainActivity.java • Todas as Activities são herdam da classe ActionBarActivity • Para cada Actvity há um layout indicado no código • Qualquer componente da tela é referenciado no arquivo R.java
  98. 98. styles.xml • Contém o estilo que você usa para o aplicativo e seus componentes Útil para economizar linhas nos arquivos do layout, aplicando os estilos dos componentes
  99. 99. Arquivo R.java (Gerado pelo compilador) • Possui métodos estáticos com as referências de todos os recursos do projeto • Cada recurso é identificado por um número. O compilador gera constantes par facilitar o uso de recursos no código fonte • É gerada automaticamente pelo Android Studio e nunca deve ser alterada manualmente
  100. 100. Compilando seu projeto  Make Project  Run
  101. 101. Compilando seu projeto Substitua no arquivo strings.xml, “Hello, World” por qualquer outra String Execute o app
  102. 102. Compilando seu projeto Substitua no arquivo styles.xml o “parent” por “Base.V14.Theme.AppCompact” Execute o app
  103. 103. Interação
  104. 104. Adicione um botão
  105. 105. Ids! Quando você adiciona mais de um componente numa tela, os componentes são organizados por IDs
  106. 106. Ids! Os Ids são referenciados no arquivo R.java, para facilitar a interação com os componentes, basta apenas usar seu ID
  107. 107. Clique! Usando o método “onClick” e chamando-o no arquivo .java da sua activity android:onClick=“botaoClicado” public void botaoClicado (View v){ }
  108. 108. Prática 1. Exibir uma mensagem na tela 2. Exibir algo no Log ao tocar o botão 3. Exibir a quantidade de vezes que o botão foi tocado 4. Mudar o texto do textView (Nosso antigo ‘Hello World!’)
  109. 109. Toast (mensagem na tela) Toast.makeText(this, "Que botao massa vei", Toast.LENGTH_SHORT).show();
  110. 110. Log (não visível para o usuário) Toast.makeText(this, "Que botao massa vei", Toast.LENGTH_SHORT).show(); //métodos de Log Log.v //Verbose Log.d //Debug Log.i //Info Log.e //Warnig Log.wtf //What a F***
  111. 111. Método findViewById • Use este método para acessar qualquer ID disponível para sua aplicação no arquivo R.java no tempo de execução. TextView texto = (TextView) findViewById(R.id.textView1); texto.setText("Clicou "+x+" vezes");
  112. 112. Práticazinha • Modifique o texto do Botão ao tocar nele
  113. 113. Prática • Adicione um campo de texto ‘EditView’ na sua Activity • Ao clicar no botão, altere o TextView para o valor do campo de texto. Boa prática: crie um atributo para cada view e inicialize todos no onCreate (usando findViewById)
  114. 114. Ciclo de vida de uma Activity
  115. 115. Ciclo de vida de uma Activity
  116. 116. Prática Implemente os métodos do ciclo de vida de uma activity para emitir uma mensagem de log para cada um Tente fazer com que onDestroy seja chamado
  117. 117. Prática Rotacione o dispositivo (Ctrl + F11) e veja quais métodos são chamados.
  118. 118. Seu primeiro app funcional! Usando dos conhecimentos até agora passados, implemente um aplicativo que cálcule suas 3 médias de alguma disciplina e diga se você está ou não aprovado
  119. 119. Dica! Use três ‘EditText’ + 3 ‘TextView’ para as médias Use um ‘TextView’ (inicialmente vazio) para informar o resultado Caso precise, use ‘AbsoluteLayout’ para posicionar melhor os componentes
  120. 120. Dica! No seu layout (xml), use o método ‘android:maxLenght’ para definir o tamanho máximo de caracteres no EditText Use também o método ‘android:inputType’ para definir o tipo de entrada (Números)
  121. 121. Melhorando o app! Para evitar erros, defina os ‘EditText’ como ‘0’ inicialmente, usando setText();
  122. 122. Melhorando o app! Fazer com que apareça um ‘Dialog’ com o resultado na tela
  123. 123. Melhorando o app! Brincar com o Dialog, fazendo com que apareça uma mensagem diferente no botão, ao passar ou perder
  124. 124. Melhorando o app Faça com que ele calcule a média que você precisa numa prova final em caso de reprovação Fórmula para nota mínima da final finalMinima = 12.5 – (1.5 * media)
  125. 125. Voltando para o projeto Hello World! Preferências
  126. 126. Preferências Como salvar dados para que eles possam ser acessados da próxima vez que o app seja executado? SharedPreferences é uma forma conveniente de salvar pequenas quantidades de dados.
  127. 127. Preferências SharedPreferences prefs = PreferenceManager .getDefaultSharedPreferences(this); Editor editor = prefs.edit(); editor.putString("texto", texto); editor.commit(); SharedPreferences prefs = PreferenceManager .getDefaultSharedPreferences(this); String texto = prefs.getString("texto", ""); Salvando Carregando
  128. 128. Prática Faça o app guardar o texto Carregue no onCreate e salve no onDestroy Boa prática: use atributos static final para as chaves
  129. 129. Intents
  130. 130. Intents São mensagens que seu programa envia para o sistema para requisitar funcionalidades de outros Componentes Exemplo: uma Activity envia um Intent para requisitar ao sistema que outra Activity seja aberta Outro exemplo: uma Activity envia um Intent para requisitar ao sistema que abra um navegador na página www.google.com
  131. 131. Abrindo outra Activity Intent intent = new Intent(this, OutraActivity.class); startActivity(intent); Pode ser chamado, por exemplo, ao clicar em um botão A nova activity é “empilhada” sobre a atual
  132. 132. Fechando a Activity Usando o método ‘finish();’ Quando uma activity é fechada (desempilhada), o Sistema mostra a Activity anterior, que estava abaixo da atual A Activity é desempilhada para evitar empilhamentos desnecessários, gerando alto consume de memória
  133. 133. Prática Aproveitando o seu projeto Hello World, crie uma nova Activity chamada OutraActivity.java Na MainActivity.java, adicione um novo botão que ao ser clicado abre OutraActivity Na OutraActivity adicione um botão que ao ser clicado feche a Activity
  134. 134. Passando dados de uma Activity pra outra Intent intent = new Intent(this, OutraActivity.class); intent.putExtra(“pi”, 3.14); startActivity(intent); Bundle extras = getIntent().getExtras() if (extras != null) { float x = extra.getFloat(“pi”); } MainActivity.java OutraActivity.java Pode ser chamado no onCreate();
  135. 135. Retornando dados de uma Activity Intent intent = new Intent(this, OutraActivity.class); startActivityForResult(intent, 1234); Intent data = new Intent(); data.putExtra(“pi”, 3.14); setResult(RESULT_OK, data); finish(); MainActivity.java OutraActivity.java MainActivity.java @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1234 && resultCode == RESULT_OK) { float pi = data.getFloatExtra(“pi”); } }
  136. 136. Exercitando Adicione dois ‘TextView’ vazios em cada Activity Faça com que nesses ‘TextView’ aparecam a quantidade de vezes que você trocou de Activity Dessa forma:
  137. 137. Prática
  138. 138. Intents Implícitos // Abrir navegador Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com/")); startActivity(intent); // Enviar mensagem (SMS) Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(android.content.Intent.EXTRA_TEXT, "Oi!"); startActivity(intent);
  139. 139. Intents Implícitos Existem ainda vários outros tipos ACTION_CALL -> Realiza chamadas IMAGE_CAPTURE -> Tira uma foto
  140. 140. ListView
  141. 141. ListView: Funcionamento ListView ArrayAdapter
  142. 142. ListView ListView listView = (ListView) findViewById(R.id.mylist); listView.setAdapter(adapter);
  143. 143. ListView ListView lista = (ListView) findViewById(R.id.mylist); String[] values = new String[] { “Jelly Bean”, “KitKat”, “Lollipop” }; ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, // layout de um item values); lista.setAdapter(adapter); Crie um novo projeto, adicione um ListView na Activity, coloque este código no onCreate, e observe o que acontece
  144. 144. ListView: Interação lista.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // Seu código aqui } }); Coloque este código dentro do onCreate e coloque um “Toast” dentro do onItemClick
  145. 145. Prática Sistema para guardar quaisquer observações

×