SlideShare uma empresa Scribd logo
1 de 148
Baixar para ler offline
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 Empresa Junior de Engenharia de
Computação
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?
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
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
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).
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ão para Tablets, Honeycomb;
4.0: A ascenção, Ice Cream Sandwich, Jelly Bean e Kit Kat;
5.0: A ouzadia, Lollipop.
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
pronto, já pode programar
seus apps nativos

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
Era legal... Mas...
•Interface muito misturada
•Meio eclipse seco, meio Android
•Relativamente pesado
•Emulador quase impossível de ser executado
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
infraestrutura da IDE IntelliJ IDEA,
da JetBrains
Utiliza o Gradle como novo sistema
de build no processo de
desenvolvimento
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
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,
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
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
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
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
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
Testando seus apps
•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,
rede, memória RAM, armazenamento interno
e processador.
Android Virtual Device (AVD)
•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)
•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...
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
individuais ou companhias o melhorem ainda mais
(ou piorem –’)
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
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 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
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
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 para debugar com o seu
smartphone Android
DDMS: Dalvik Debug Monitor Server
•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.java (comportamento)
Activity
•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.java)
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/java
Estrutura do projeto
Pacote principal das classes de teste
Por padrão o Android Studio cria os fontes em “src/androidTest/java
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 um
arquivo ‘manifest’
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ão mínima, versão padrão, dependências
(escrito em Groovy)
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 é
criado junto com uma Activity;
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 cada idioma)
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
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
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
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 botaoClicado (View v){
}
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!’)
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
Log.v //Verbose
Log.d //Debug
Log.i //Info
Log.e //Warnig
Log.wtf //What a F***
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");
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
campo de texto.
Boa prática: crie um atributo para cada view e inicialize todos
no onCreate (usando findViewById)
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 com que onDestroy seja chamado
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édias
de alguma disciplina e diga se você está ou não
aprovado
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
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)
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 nota mínima da final
finalMinima = 12.5 – (1.5 * media)
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?
SharedPreferences é uma forma conveniente de
salvar pequenas quantidades de dados.
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
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
Intents
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
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
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
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
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();
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”);
}
}
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:
Prática
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);
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”, “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
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
Prática
Sistema para guardar quaisquer observações

Mais conteúdo relacionado

Mais procurados

Introdução ao desenvolvimento de apps para Android - Dia 1/2
Introdução ao desenvolvimento de apps para Android - Dia 1/2Introdução ao desenvolvimento de apps para Android - Dia 1/2
Introdução ao desenvolvimento de apps para Android - Dia 1/2Matheus Calegaro
 
Introdução ao Desenvolvimento Android
Introdução ao Desenvolvimento AndroidIntrodução ao Desenvolvimento Android
Introdução ao Desenvolvimento AndroidJosé Alexandre Macedo
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidSidney Roberto
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para AndroidJorge Cardoso
 
Seminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para AndroidSeminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para AndroidWilliam Higino
 
Capítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldCapítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldMarcio Palheta
 
Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03Horacio Diamante Mondlane
 
Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?Rudson Lima
 
Da introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidDa introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidRodolfo Faquin Della Justina
 
Curso de Android - aula 3
Curso de Android - aula 3Curso de Android - aula 3
Curso de Android - aula 3Jose Berardo
 
Tutorial de Instalação Eclipse + Android SDK
Tutorial de Instalação Eclipse + Android SDKTutorial de Instalação Eclipse + Android SDK
Tutorial de Instalação Eclipse + Android SDKRonildo Oliveira
 
Programando Android - Aula 2
Programando Android - Aula 2Programando Android - Aula 2
Programando Android - Aula 2Kalil Maciel
 
Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2Jose Berardo
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidRafael Sakurai
 
Curso de Android Aula 4
Curso de Android Aula 4Curso de Android Aula 4
Curso de Android Aula 4Jose Berardo
 

Mais procurados (20)

Introdução ao desenvolvimento de apps para Android - Dia 1/2
Introdução ao desenvolvimento de apps para Android - Dia 1/2Introdução ao desenvolvimento de apps para Android - Dia 1/2
Introdução ao desenvolvimento de apps para Android - Dia 1/2
 
Introdução ao Desenvolvimento Android
Introdução ao Desenvolvimento AndroidIntrodução ao Desenvolvimento Android
Introdução ao Desenvolvimento Android
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para Android
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
 
Seminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para AndroidSeminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para Android
 
Android Aula 5
Android Aula 5Android Aula 5
Android Aula 5
 
Capítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldCapítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorld
 
Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03
 
Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?
 
Da introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidDa introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento Android
 
Curso de Android - aula 3
Curso de Android - aula 3Curso de Android - aula 3
Curso de Android - aula 3
 
Tutorial de Instalação Eclipse + Android SDK
Tutorial de Instalação Eclipse + Android SDKTutorial de Instalação Eclipse + Android SDK
Tutorial de Instalação Eclipse + Android SDK
 
Android Aula 3
Android Aula 3Android Aula 3
Android Aula 3
 
Google android pdf
Google android pdfGoogle android pdf
Google android pdf
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
Android Aula 4
Android Aula 4Android Aula 4
Android Aula 4
 
Programando Android - Aula 2
Programando Android - Aula 2Programando Android - Aula 2
Programando Android - Aula 2
 
Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao Android
 
Curso de Android Aula 4
Curso de Android Aula 4Curso de Android Aula 4
Curso de Android Aula 4
 

Semelhante a Introdução ao Android em

Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - BásicoHugoDalevedove
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma AndroidNatanael Fonseca
 
Treinamento Android Nooclix
Treinamento Android NooclixTreinamento Android Nooclix
Treinamento Android NooclixIury Teixeira
 
O guia passo_a_passo
O guia passo_a_passoO guia passo_a_passo
O guia passo_a_passoESJEA
 
Palestra Dispositivos Móveis
Palestra Dispositivos MóveisPalestra Dispositivos Móveis
Palestra Dispositivos MóveisGrendene S/A
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para AndroidClaudio Pereira
 
Desenvolvimento android
Desenvolvimento androidDesenvolvimento android
Desenvolvimento androidDiego Keller
 
Configurando o ambiente para desenvolvimento Android
Configurando o ambiente para desenvolvimento AndroidConfigurando o ambiente para desenvolvimento Android
Configurando o ambiente para desenvolvimento AndroidCalebeMiquissene
 
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataformaAndroid Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataformaFelipe Silveira
 
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveisSeminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveisRogério Moraes de Carvalho
 
Treinamento Android Embarcado
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android EmbarcadoOdair Sousa
 
Apresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaApresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaGPrimola
 
Android: Conheça o Futuro Inevitável
Android: Conheça o Futuro InevitávelAndroid: Conheça o Futuro Inevitável
Android: Conheça o Futuro InevitávelCampus Party Brasil
 
Introdução à plataforma android.
Introdução à plataforma android.Introdução à plataforma android.
Introdução à plataforma android.Everton Dewes
 

Semelhante a Introdução ao Android em (20)

Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - Básico
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma Android
 
Treinamento Android Nooclix
Treinamento Android NooclixTreinamento Android Nooclix
Treinamento Android Nooclix
 
Empreendedori$mo com Android
Empreendedori$mo com AndroidEmpreendedori$mo com Android
Empreendedori$mo com Android
 
O guia passo_a_passo
O guia passo_a_passoO guia passo_a_passo
O guia passo_a_passo
 
Android Studio
Android StudioAndroid Studio
Android Studio
 
Palestra Dispositivos Móveis
Palestra Dispositivos MóveisPalestra Dispositivos Móveis
Palestra Dispositivos Móveis
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para Android
 
Desenvolvimento android
Desenvolvimento androidDesenvolvimento android
Desenvolvimento android
 
Configurando o ambiente para desenvolvimento Android
Configurando o ambiente para desenvolvimento AndroidConfigurando o ambiente para desenvolvimento Android
Configurando o ambiente para desenvolvimento Android
 
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataformaAndroid Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
 
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveisSeminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
 
Curso Básico Android - Aula 01
Curso Básico Android - Aula 01Curso Básico Android - Aula 01
Curso Básico Android - Aula 01
 
Treinamento Android Embarcado
Treinamento Android EmbarcadoTreinamento Android Embarcado
Treinamento Android Embarcado
 
Apresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaApresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno Cotta
 
Android: Conheça o Futuro Inevitável
Android: Conheça o Futuro InevitávelAndroid: Conheça o Futuro Inevitável
Android: Conheça o Futuro Inevitável
 
Android Native Apps Hands On
Android Native Apps Hands OnAndroid Native Apps Hands On
Android Native Apps Hands On
 
Introdução à plataforma android.
Introdução à plataforma android.Introdução à plataforma android.
Introdução à plataforma android.
 
Appium
AppiumAppium
Appium
 
Appium
AppiumAppium
Appium
 

Introdução ao Android em

  • 1. Introdução ao Android Afonso da Silva Machado 3 de Março de 2015
  • 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. 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. 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. 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. 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. Um sistema operacional para Tablets
  • 10. Android Wear e Android TV
  • 12. E em breve: Android Auto
  • 13. Anunciado para Grandes Marcas http://www.android.com/
  • 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.
  • 18. Google play store, filmes, músicas...
  • 19. Android Studio (ou Eclipse?) http://developer.android.com/sdk/index.html
  • 22. Java + Um bando de coisa Chato? Quantos gostam de java? Quantos gostam de eclipse?
  • 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. 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.
  • 26. Era legal... Mas... •Interface muito misturada •Meio eclipse seco, meio Android •Relativamente pesado •Emulador quase impossível de ser executado
  • 27. Até que... 16 de maio de 2013 Google I/O Android KitKat Google Nexus 5 IDE exclusiva para Android
  • 28. Android Studio No mesmo mês (Maio de 2014) foi lançado o primeiro beta o Android Studio, versão 0.1
  • 29. Android Studio No mês de dezembro de 2014 a Google publicou o download da primeira versão estável (1.0)
  • 30.
  • 31. 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
  • 32. 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
  • 33. 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,
  • 34. 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
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. Vamos explorar •Abra o Android Studio. $ cd android-studio/ $ cd bin/ $ sh studio.sh
  • 42. Isso é pra mais tarde ;)
  • 44. 1. Usando seu aparelho Android 2. Usando um Android Virtual Device Testando seus apps
  • 45. Usando seu aparelho Android, conectando a uma porta USB do seu computador e ativando o modo de depuração no dispositivo Testando seus apps
  • 46. •Mais rápido •Mais confortável •Mais técnico •Acesso mais rápido à DEBUGs Testando no seu aparelho Android
  • 47. Usando um Android Virtual Device (AVD) Testando seus apps
  • 48. •É 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)
  • 49. •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)
  • 50. •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...
  • 51. Barra principal Debug Compilar e Executar Dispositivos Virtuais Android SDK Tools Monitoramento do Dispositivo
  • 52. Procedimentos Iniciais Dispositivos Virtuais Android SDK Tools Monitoramento do Dispositivo
  • 53. Prática Criar e executar um AVD Verificar pacotes do Android SDK
  • 56. Arquitetura de uma aplicação • Linux Kernel • Bibliotecas • Frameworks • Aplicações • Android Runtime ou Dalvik VM
  • 58. 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 –’)
  • 59. 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
  • 60. Android Runtime • Core libraries: gráficos 2D, interações com o SO, collections do Java • Máquina Virtual Android Runtime
  • 61. 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
  • 62. 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
  • 63.
  • 64. Framoworks e Aplicações • Gerenciadores de câmera, GPS, janelas... • Telefone, mensagens, câmera, e o seu aplicativo
  • 65. Seu AVD já abriu?
  • 66. Se sim, vamos brincar com ele.
  • 67. DDMS: Dalvik Debug Monitor Server Abra o Monitoramento do Dispositivo
  • 68. •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
  • 69. •Abra a aba “Emulator Tool” e simule uma ligação e um envio de SMS Prática
  • 70. Deixe seu AVD aberto e vamos pra outra parte
  • 71. Lembram de quando eu falei sobre “Activity”?
  • 72. Equivale à uma tela. Cada Activity é definida em dois arquivos res/layout/activity_nome.xml (visual) src/.../NomeActivity.java (comportamento) Activity
  • 73. •Crie a sua Activity Prática
  • 75. Estrutura de um Projeto no Android Studio
  • 77. Estrutura do projetoNome do projeto (mesmo nome do diretório)
  • 78. Estrutura do projetoPasta com arquivos de configuração da IDE
  • 79. Estrutura do projeto Módulo do projeto O ícone muda conforme o tipo de módulo (wear, TV, glass)
  • 80. Estrutura do projeto Contém os arquivos compilados do app e os arquivos auxiliares (layouts, arquivos *.class, arquivo R.java)
  • 81. Estrutura do projeto Pasta com as bibliotecas utilizadas Contém os arquivos *.jar
  • 82. 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
  • 83. Estrutura do projeto Pacote principal das classes de teste Por padrão o Android Studio cria os fontes em “src/androidTest/java
  • 84. Estrutura do projeto Arquivos de recursos do aplicativo Layouts, telas, strings, ícones do app
  • 85. Estrutura do projeto Arquivo ‘Manifest’ do app (nome, versão do Android, permissões...) No Android Studio, cada módulo tem um arquivo ‘manifest’
  • 86. Estrutura do projeto Arquivo de configuração do módulo app Herdado da infraestrutura do IntelliJ
  • 87. 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)
  • 88. Estrutura do projeto Pacote de arquivos do Gradle
  • 89. Estrutura do projeto Arquivo build.gradle do projeto Contém informações gerais do projeto (repositórios)
  • 90. Estrutura do projeto Arquivo de propriedades do Gradle Configurações específicas do gradle (gerado)
  • 91. Estrutura do projeto Script para execução das tarefas do Gradle Utilizado no processo de realizar a construção do app
  • 92. Estrutura do projeto Informações locais (SDK) Informa a localização do Android SDK (gerado)
  • 93. Estrutura do projeto Arquivo de configuração do projeto Herdado da infraestrutura do IntelliJ
  • 94. Estrutura do projeto Arquivo de configuração dos módulos Contém as informações dos módulos do projeto
  • 95. Estrutura do projeto Bibliotecas externas Lista de bibliotecas externas ao projeto (SDK, JDK, etc)
  • 97. 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;
  • 98. Layout • Pode ser manuseado tanto o código xml quanto a ferramenta de interface do Android Studio.
  • 99. strings.xml • res/values/strings/xml Útil para traduzir um app para vários idiomas (Usando um arquivo strings.xml para cada idioma)
  • 100. 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
  • 101. 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
  • 102. 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
  • 103. Compilando seu projeto  Make Project  Run
  • 104. Compilando seu projeto Substitua no arquivo strings.xml, “Hello, World” por qualquer outra String Execute o app
  • 105. Compilando seu projeto Substitua no arquivo styles.xml o “parent” por “Base.V14.Theme.AppCompact” Execute o app
  • 108. Ids! Quando você adiciona mais de um componente numa tela, os componentes são organizados por IDs
  • 109. Ids! Os Ids são referenciados no arquivo R.java, para facilitar a interação com os componentes, basta apenas usar seu ID
  • 110. Clique! Usando o método “onClick” e chamando-o no arquivo .java da sua activity android:onClick=“botaoClicado” public void botaoClicado (View v){ }
  • 111. 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!’)
  • 112. Toast (mensagem na tela) Toast.makeText(this, "Que botao massa vei", Toast.LENGTH_SHORT).show();
  • 113. 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***
  • 114. 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");
  • 115. Práticazinha • Modifique o texto do Botão ao tocar nele
  • 116. 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)
  • 117. Ciclo de vida de uma Activity
  • 118. Ciclo de vida de uma Activity
  • 119. 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
  • 120. Prática Rotacione o dispositivo (Ctrl + F11) e veja quais métodos são chamados.
  • 121. 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
  • 122. 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
  • 123. 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)
  • 124. Melhorando o app! Para evitar erros, defina os ‘EditText’ como ‘0’ inicialmente, usando setText();
  • 125. Melhorando o app! Fazer com que apareça um ‘Dialog’ com o resultado na tela
  • 126. Melhorando o app! Brincar com o Dialog, fazendo com que apareça uma mensagem diferente no botão, ao passar ou perder
  • 127. 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)
  • 128. Voltando para o projeto Hello World! Preferências
  • 129. 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.
  • 130. 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
  • 131. 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
  • 133. 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
  • 134. 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
  • 135. 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
  • 136. 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
  • 137. 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();
  • 138. 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”); } }
  • 139. 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:
  • 141. 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);
  • 142. Intents Implícitos Existem ainda vários outros tipos ACTION_CALL -> Realiza chamadas IMAGE_CAPTURE -> Tira uma foto
  • 145. ListView ListView listView = (ListView) findViewById(R.id.mylist); listView.setAdapter(adapter);
  • 146. 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
  • 147. 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
  • 148. Prática Sistema para guardar quaisquer observações