GOOGLE ANDROID
Prof. MSc. Iury Teixeira
Faculdade de Juazeiro do Norte
Especialização em Desenvolvimento de Aplicativos para
Dispositivos Móveis
Nosso objetivo
Conhecer o sistema operacional e plataforma de
desenvolvimento Google Android junto de seus principais
componentes de desenvolvimento de Apps.
Roteiro
• Origem
• OHA
• Onde está o Android?
• OAA
• Arquitetura
• Tipos de Aplicativos
• Google Play
• SDK e Dalvik
• Ambiente de
Desenvolvimento
• AVD e Emulador
• ADB, DDMS e ADT
• Widgets
• Activity
• ListActivity
• Intents
• Android é baseado no Kernel 2.6 do Linux;
• O Linux é responsável por gerenciar:
Memória
Processos
Threads
Segurança
Redes
Drivers
Android e Linux
Prof. Iury Teixeira
• Assim como no Java, o Android possui uma VM, chamada
Dalvik. VM otimizada para baixo consumo de
recursos
• Essa mesma, é responsável por efetuar toda compilação e
transformar em código executável no Android;
• Não existe uma JVM no Android;
• E como funciona a compilação?
Máquina Virtual
Prof. Iury Teixeira
Tipos de Aplicativos
• Foreground
• Interage com o usuário
• Background
• Executa em segundo plano
• Intermittent
• União dos primeiros tipos
• Widgets
• De fácil acesso na Home Screen
• API específica
Prof. Iury Teixeira
Loja de Aplicativos
• Objetivo:
• Possibilitar aos desenvolvedores um local para disponibilizar suas
Apps.
• Para utilizar:
• Cadastro, pagamento de US$ 25.00;
• Após isso pode ser instalado por qualquer usuário;
Ferramentas e SDK
Eclipse + ADT plugin
Android SDK Tools
Android Platform-tools
The latest Android platform
The latest Android system image
for the emulator
ADT Bundle
Estrutura do SDK
• add-ons
• Arquivos extras e de terceiros pertencentes a determinadas APIs
• plataforms
• raiz das APIs
• tools
• Arquivos auxiliares para a execução de ferramentas do SDK
O Que vem com o SDK
• Contém:
• toda a API necessária para desenvolver utilizando a
linguagem Java;
• SDK Manger
• Emulador;
• Sendo possível plugar um celular na porta USB para
executar/testar a aplicação;
• Para isso necessita do driver do celular instalado na máquina;
• AVD Manager
• Controlador de plataformas do Android
• DDMS
• Debug, Monitoramento;
SDK Manager
• Local onde pode ser feito o download de:
• APIs
• Ferramentas
• bibliotecas de terceiros
• Documentação, exemplos e código
• Mas o que é AVD ?
• Android Virtual Device
• Criação de uma configuração virtual para um determinado
dispositivo, reconhecida e emulada pelo emulador.
AVD Manager
Prof. Iury Teixeira
Src: código fonte Java
Gen: fonte Java gerado pelo ADT
Android 4.2.2: Compile with, versão de compilação do
projeto
Assests: arquivos html, textos, fonte, banco,… recursos
Bin: onde ficará o .apk
Libs: bibliotecas utilizadas no projeto
Res: recursos estáticos utilizados no projeto
Drawable: imagens do aplicativo
Layout: interfaces/telas do aplicativo
Menu: desenhos de menu do aplicativo
Values: mensagens de texto do aplicativo
(internacionalização)
AndroidManifest.xml
• Deve-se manter na raiz do projeto;
• Mantem todas as configurações do projeto:
• Nome, pacote base, ícone
• Activity’s
• Versão SDK
• Permissões
O que significa essas linhas?
Pode ser executada isoladamente, ponto inicial
A Activity estará na tela inicial
AndroidManifest.xml
layout
• /res/layout/activity_main.xml
• Os arquivos XML na pasta layout representam uma tela da aplicação;
• As TAGS representam os componentes visuais;
• Os componentes visuais podem ser criados via API Java também;
A Classe R
• Possui constantes (do tipo INT) para todos os recursos
criados;
• Acessa imagens;
• É atualizada automaticamente pelo ADT(Plugin), quando a
pasta res é alterada;
• R.drawable.imagem1;
• R.layout.meu_layout;
• R.string.valor_string;
• R.style.meu_estilo;
Diferente de android.R
Tendo como densidade base do
dispositvo alvo 160dpi, qual tamanho
fisico teria as outras imagens (nas pastas
drawable’s)?
Criando a imagem correta…
32px x 32px
Densidade (dpi) Pixels x Escala Tamanho Recomendado (dp)
120 32 * 0.75 24
160 32 * 1.00 32
240 32 * 1.50 48
320 32 * 2.00 64
480 32 * 3.00 96
Tendo como densidade base do dispositvo alvo 160dpi, qual tamanho fisico
teria as outras imagens (drawable’s)?
Todos os recursos devem ter: nomes
minusculos e sem espaços. Caso não
siga a regra a classe R não será
compilada.
Mão no código J
• Criar um aplicativo chamado ArqMob;
• Calcular a área do losango:
• O resultado deve ser exibido em um AlertDialog.Builder
A = b * h / 2
TextView e EditText
• Propriedades:
• layout_width = [“wrap_content” ou “match_parent”] -> Preenchimento
Lateral
• layout_heigth = [“wrap_content” ou “match_parent”] -> Preenchimento
Altura
• background = “#FFFF34” -> Cor de Fundo
• textColor = “#FFFF34” -> Cor da Fonte
• hint = “insira seu nome”-> Caso o campo de texto esteja vazio
• autoLink = [“web ou map e etc”] - > o TextView Funciona como link.
• layout_weight = [“valor inteiro”] -> Refere-se a porcentagem que o
componente irá ocupar na tela;
Tipos de InputType do EditText
http://developer.android.com/guide/topics/ui/controls/text.html
Tipos de InputType do EditText
http://developer.android.com/guide/topics/ui/controls/text.html
ToggleButton e CheckBox
• Componentes para seleção de iten opcionais;
• Propriedades do ToogleButton:
• textOn: Exibe um texto quando selecionado;
• textOff: Exibe um texto quando não está selecionado;
• Método isChecked(): [método de ambos os componentes]
• Retorna a situação da seleção;
RadioButton
• É utilizado com o auxilio de um RadioGroup
• Propriedades:
• Text: Texto a ser exibido;
• Checked: Se o botão iniciará marcado ou não [ true | false ]
• Método para obter o radio selecionado:
• isChecked();
• Representa uma “tela” da aplicação;
• Tem a função de gerenciar os eventos da tela;
• Regra de Visão;
• Configura a View a ser exibido;
Activity
• Deve herdar de Activity [ou subclasses];
• Deve implementar onCreate:
• Inicializar View;
• Criar os elementos da tela;
• Deve ser informado no AndroidManifest.xml
Activity
• Para navegarmos entre várias telas, utilizaremos os
seguintes métodos:
startActivity(intent);
• Pode enviar parâmetros
• Exibe uma nova activity
startActivityForResult(intent,codigo);
• Pode enviar parâmetros
• Exibe uma nova activity
• Espera um retorno da mesma
• Para se enviar parâmetros utiliza-se a classe Intent em
união com a Bundle, ou não;
• É similar a um HashMap;
Valor INT e STRING
Enviando parâmentros
• Para enviar parâmetros
• É similar a um HashMap;
Valor Boolean
De forma abreviada
• Utiliza-se o método setResult(codigo, intent);
• Em seguida chama o método finish();
Retornando valores
Ou sobrescreve o método onBackPressed e não chama o finish();
• Capturando o retorno
• onActivityResult(int requestCode, int resultCode, Intent data);
• Efetua a leitura do intent de acordo com resultCode
• requestCode = codigo da Intent do
startActivityForResult(intent, codigo);
A result code specified by the second activity. This is either RESULT_OK
if the operation was successful or RESULT_CANCELED if the user
backed out or the operation failed for some reason.
Mão no código J
• Transforme sua aplicação desktop em mobile;
• Exportar o modelo de Formas Geométricas:
• Triangulo (lib);
• Quadrado (lib);
• CheckBox perguntando se deve calcular o volume (L x L x L)
• Prisma e Circulo (na mesma tela- usar radiobutton):
• prisma (Área total = A1 + 2 * A2)
• circulo(Área total = 3.14 * Raio * Raio)
• Exibe dados em forma de lista;
• Subclasse de Activity;
• Já possui métodos relacionado
ao componente ListView;
• Já possui barra de rolagem;
• Método setContentView(listView), é
chamado automático;
• Necessário um ListAdapter;
• Fazendo a ligação entre o ListView e os
dados.
ListActivity
Adapter ??
O Adapter permite que classes
com interfaces incompatíveis
possam interagir.
Mão no Código J
• Crie um novo Projeto:
• Criar uma tela de Login, antes de visualizar
a lista de livros;
• Listar livros com imagem da capa, editora,
edição e titulo;
• Ao clicar em um item, navegar para a
respectiva tela de detalhamento (titulo,
autor, capa, resumo);
X
Java como programar
Edição 3
Item da Lista
Detalhamento
XJava como programar
Resumo Resumo
Resumo Resumo
Resumo Resumo
Novatec - Edição
Novatec
LerExibir: Leitura autorizada
• Representa uma “ação”, que será executada pela
aplicação em conjunto com o sistema operacional;
• Exemplos:
• Abrir uma nova tela startActivity(intent);
• Efetuar uma ligação;
• Abrir o browser;
• Abrir um mapa;
• …….
Intents
Notifications
• Classe: android.app.Notification
• Exibi uma mensagem na barra de
status;
• Possui um conteúdo/mensagem;
• Uma Intent pode ser disparada ao clicar;
• Aplicação em segundo plano disparar
um Alerta;
Após acionada deve-se cancelar a notificação
Ou adicionar no onDestroy(), para encerra junto
com a Activity que a iniciou!
Mão no código J
• Faça com que ao abrir a tela de detalhamento de livros
uma notificação seja disparada, e caso o usuário clique o
mesmo seja redirecionado para o google com a lista de
resultados referentes ao nome do livros.