Vous êtes sur la page 1sur 216

Google Android - M1

Google Android - M1

Fica expressamente proibido a reproduo ou


utilizao deste material sem a devida permisso ou
consentimento do autor.
Contato: guilherme@live.ie
FOR-J Copyright 2015 Todos os direitos reservados.

Curta a FOR-J no Facebook

Contedo Programtico - Android


1.

Introduo.

2.

Configurando o Ambiente.

3.

Activity.

4.

A classe R.

5.

Gerando logs.

6.

Views.

7.

Gerenciadores de layout.

8.

Intent.

9.

Toasts e Notification.

10.

Gravando informaes no Banco de Dados com SQLite.

11.

Broadcast Receivers.

12.

Services e Threads.

13.

Comunicando com WebServices via REST.

14.

Publicando o aplicativo na Play Store.

Referncias Bibliogrficas

Google Android Aprenda a criar aplicaes


para dispositivos mveis com o Android SDK 3
Edio
Autor: Ricardo R. Lecheta

Padres de Projeto para Android - Solues


de projetos de interao para desenvolvedores
1 Edio

Autor : Greg Nudelman

Referncias Bibliogrficas

Google Android
Cria aplicaes para
celulares e tablets 2 Edio
Autor: Joo Bosco Monteiro

Segurana de aplicativos Android - Processos


permisses e outras salvaguardas 1 Edio

Autor : Jeff Six

Por que desenvolver


para dispositivos
mveis ?

Tendncia Mobile

Em 2011 a venda de smartphones cresceu 179% no Brasil.

A venda de dispositivos mveis tem uma taxa de crescimento 4 vezes


maior do que a populao mundial.

O PayPal movimenta U$ 10 milhes por dia em pagamentos mobile.

Os smartphones ajudam os usurios a navegar pelo mundo. 88% dos


usurios de smartphones procuram informaes locais em seus telefones
e 92% tomam decises em decorrncia disso, como fazer uma compra ou
entrar em contato com a empresa.

74% tomam a deciso da compra baseados em informaes obtidas no


smartphone.

Tendncia Mobile

Tendncia Mobile

Vale ou no vale a pena


investir numa
tecnologia dessa?

Como surgiu o Android.


Por que o Android foi criado ?
OHA - Open Handset Alliance.
Qual foi o primeira celular a usar
Android ?

T - Mobile G1

Histrico de verses - 2005

Google compra a
empresa
Android Inc

Histrico de verses - Abril 2009

Verso 1.5.
Android Cupcake
Features
Upload de vdeos no Youtube
Transies animadas da tela
Suporte a Widgets

Histrico de verses - Setembro


2009

Verso 1.6.
Android Donut
Features
Suporte a resolues WVGA
Melhor velocidade em busca

Histrico de verses - Janeiro 2010

Verso 2.0. - 2.1.


Android Eclair
Features
Suporte ao Bluetooth 2.1.
Google Maps 3.1.2.
Live Wallpapers

Histrico de verses - Maio 2010

Verso 2.2.
Android Froyo
Features
Suporte ao Adobe Flash
Chrome V8 Javascript Engine

Histrico de verses - Dezembro


2010

Verso 2.3. - 2.4.


Android Gingerbread
Features
Novo gerenciador de downloads
Suporte a voz por ip (VoIP)

Histrico de verses - Outubro 2011

Verso 4.0. - 4.0.4


Android Ice Cream
Sandwich
Features
Holo Interface c/ Roboto font family
Vdeos em 1080p

Histrico de verses - Junho 2012

Verso 4.1. - 4.3.


Android Jelly Bean
Features
Funes de acessibilidade
Notificaes expansveis

Histrico de verses - Outubro 2013

Verso 4.4.x.x
Android KitKat
Features
Capacidade de impresso s/ fio
Removido suporte ao Flash Player no oficial

Histrico de verses - Novembro


2014

Verso 5.0.
Android Lollipop
Features
Implementao do Material Design
ART definido como Runtime Environment

Por que usar Android?

Por que usar Android ?

4 a cada 5 aparelhos no mundo usam


Android.
Cerca de 1 Bilho de aparelhos no mundo
usam Android.

Android : Uma
plataforma em

crescimento
constante

Por que usar Android ?

Por que usar Android ?

Por que usar Android ?

Por que usar Android ?

Por que usar Android ?


Participao no mercado em 2016 - Fonte IDC

Por que usar Android ?

Por que usar Android ?


Principais vantagens por ser OpenSource :
Fcil licenciamento
Adaptvel e inovvel
Pode ser executado para qualquer propsito
neutro as outras tecnologias
Cdigo fonte livre

Por que usar Android ?


baseado na plataforma Linux.

Por que usar Android ?


Mquina virtual Dalvik.
Dalvik vs JVM.

Compilao JIT
(Just In Time)

Por que usar Android ?


ART - Android Runtime
Dalvik vs ART.

Compilao AOT
(Ahead Of Time)

Android s
Smartphone e Tablet ?

As novas tendncias - Wear

As novas tendncias - TV

Configurando o
ambiente

Configurando o ambiente

Dowload da SDK : https://developer.android.com/sdk/installing/index.html

Configurando o ambiente

IDE : Eclipse

Configurando o ambiente

IDE : Android Studio

Configurando o ambiente
Principais vantagens de usar Android Studio
gratuito
Foi adotado como IDE padro para Android pela Google.
intuitivo e didtico

Por que ser utilizado o


Android Studio ?

Configurando o ambiente

Emuladores : AVD (Android Virtual Device)

Configurando o ambiente

Emuladores : Genymotion

Configurando o ambiente
Principais vantagens de usar o emulador nativo
gratuito para uso comercial
Possui bom desempenho quando utilizado com o acelerador da Intel.
fcil de configurar e inicializar

Por que ser utilizado o


Emulador nativo ?

Activity

O que ?

Activity - O que ?

a classe que representa a tela de uma


aplicao Android.
Ela integra a interface grfica (XML) com o
sistema de domnio (Controller).

Pra que serve?

Activity - Pra que serve ?

Ela responsvel por gerenciar os eventos


gerados em uma tela
Quando o usurio pressiona um boto.
Quando um item no menu escolhido.
Quando o usurio seleciona uma
opo em uma lista de itens.

Como usar ?

Activity - Como usar ?

Deve sempre herdar a classe android.app.


Activity ou uma subclasse da mesma;
Deve-se implementar o mtodo onCreate;
Deve ser clarada no arquivo
AndroidManifest.xml

Activity - Ciclo de vida

Exerccios

Activity - Exerccios

Crie uma Activity chamada PrincipalActivity


que exiba uma mensagem de boas vindas;
Crie uma Activity chamada CicloActivity e
exiba uma mensagem para cada ciclo que
ela executar, desde a criao at ela ser
destruda.

A classe R

O que ?

A classe R- O que ?
Meio de campo entre os recursos do projeto
e a interface de programao (Java);
Constantes so utilizadas para acessar
esses recursos
Ela gerada dinamicamente e
automaticamente;
Ela nunca dever ser alterada
manualmente!!!!!!

Gerando Logs (Logcat)

O que ?

Gerando Logs (Logcat)- O que ?


Mecanismo para gerar logs de
acompanhamento no Android.
Os logs so vizualizados no Logcat.
Mtodos
Log.v() - Verbose
Log.d() - Debug
Log.i() - Info
Log.w() - Warning
Log.e() - Error

Views

O que ?

Views - O que ?
Representao da interface grfica do
Android e seus componentes;
Botes, Checkbox, Campo de texto, Lista de
itens, Campos de data e tempo, Barras de
progresso etc.

Pra que serve?

Views - Pra que serve ?


Criao de formulrios de cadastro;
Exibir informaes oriundas de um Banco de
Dados e/ou Web Service;

Como usar ?

Views - Text View


Sintaxe - Text View

Views - Edit Text


Sintaxe - Edit Text

Views - Checkbox
Sintaxe - Checkbox

Views - Listview (Modo simples)


Sintaxe - Listview
A Activity deve extender a classe ListActivity !

Views - Listview (Modo


personalizado)
Sintaxe - Listview Personalizado (Front-end)
A Activity deve extender a classe ListActivity !

Views - Listview (Modo


personalizado)
Sintaxe - Listview Personalizado (Back-end)
A Activity deve extender a classe ListActivity !

Views - Listview (Modo


personalizado)
Sintaxe - Listview Personalizado (Back-end)
A Activity deve extender a classe ListActivity !

Views - Radio Button


Sintaxe - Radio Button

Views - Spinner
Sintaxe - Spinner (Front-end)

Views - Spinner
Sintaxe - Spinner (Back-end)

Views - Spinner
Sintaxe - Spinner (Array de String)

Views - Button
Sintax - Button

Views - ProgressBar
Sintaxe - ProgressBar (Front-end)

Views - ProgressBar
Sintaxe - ProgressBar (Back-end)

Views - DatePicker
Sintaxe - DatePicker

Views - TimePicker
Sintaxe - TimePicker

Views - AlertDialog
Sintaxe - AlertDialog

Views - AlertDialog
Sintaxe - AlertDialog (Evento de
clique)

Views - Menu
Sintaxe - Menu

Views - Menu
Principais configuraes do atributo android:showAsAction
ifRoom : Apenas exibe o menu se o mesmo couber na Action
Bar.
withText : Tambm inclui o ttulo (definido pelo atributo
android:title) junto com o item de menu.
never : Nunca exibe o item de menu.
always : Sempre exibe o item na Action Bar (Evite usar esse
atributo, apenas que realmente seja fundamental que o item
aparea.

Views - Menu
Sintaxe - Menu - Eventos

Tratando eventos

Events - Buttons
Sintaxe - Front-end

Sintaxe - Back-end

Events - RadioButton
Sintaxe - Front-end

Events - RadioButton
Sintaxe - Backend

Events - ListView
Sintaxe

Events - ListView
Outros eventos
setOnLongClickListener
setOnDragListener
setOnScrollListener

Events - Checkbox
Sintaxe - Front-end

Sintaxe - Back-end

Events - EditText
Sintaxe - Back-end

Gerenciadores de
Layout

O que ?

Gerenciadores de Layout - O que


?
Agrupadores (ViewGroups) que agrupam
vrios outros componentes (Views) dentro
de um determinado espao da tela.

Para que serve?

Gerenciadores de Layout - Para que


serve?
Organizam os componentes (as Views) de
acordo
com
a
necessidade
do
desenvolvedor.

Como usar ?

ViewGroups - Linear Layout


Como o prprio nome diz, o Linear Layout
agrupa os componentes de maneira linear
tanto em orientao vertical como
orientao horizontal

ViewGroups - Linear Layout


Sintaxe

Obs: param mudar a orientao para horinzontal basta mudar o atributo


android:orientation para horizontal

ViewGroups - Table Layout


Como o prprio nome diz, o Table Layout
agrupa os componentes em formato de
tabela, similar ao componente <table> do
HTML.

ViewGroups - Table Layout


Sintaxe

android:strechColumns

android:shrinkColumns

Atributo para especificar colunas


para ocupar o espao dispnvel na
tela (Semelhante ao colspan do
HTML)

Atributo para especificar colunas


para que seja sempre exibidas na
tela, caso o contedo seja muito
grande e fique fora tela.

ViewGroups - Relative Layout


O mais complexo dos gerenciadores, porm
o mais flexvel. Relative Layout posiciona
seus elementos abaixo, ao lado ou acima
de um outro componente "relativo".

ViewGroups - Relative Layout


Principais atributos
Atributo

Descrio

android:layout:below

Posiciona abaixo do componente indicado

android:layout:above

Posiciona acima do componente indicado

android:layout:toRightOf

Posiciona direita do componente indicado

android:layout:toLeftOf

Posiciona esquerda do componente indicado

android:layout_alignParentTop

Alinha no topo do componente indicado

android:layout_alignParentBottom

Alinha abaixo do componente indicado

android:layout_marginTop

Espao na margem superior do componente

android:layout_marginRight

Espao na margem direita do componente

android:layout_marginLeft

Espao na margem esquerda do componente

ViewGroups - Relative Layout


Sintaxe I

ViewGroups - Relative Layout


Sintaxe II

ViewGroups - Frame Layout


O mais simples dos componentes, o Frame
Layout utilizando quando a tela possui um
nico componente.

ViewGroups - Frame Layout


Sintaxe

Exerccios

Views / ViewGroups - Exerccios

Crie uma tela com as seguintes entradas :


Nome, idade e nacionalidade.
Crie uma tela com as seguintes entradas :
Nome, agncia, conta, saldo usando Linear
Layout

Intent

O que ?

Intent - O que ?

O corao do Android.
Uma mensagem da aplicao para o
sistema operacional.

Para que serve?

Intent - Para que serve?


Enviar uma mensagem para o sistema
operacional.
Inicializar uma nova tela da aplicao
(Activity).
Inicializar

um

novo

Service.

Como usar ?

Intent Explcita
Sintaxe - Intent Explcita para navegao entre telas.
Ocorre quando executamos uma atividade de forma explcita, onde quem "dispara" a intent
conhece o componente que vai atender essa mensagem.

Intent Implcita
Sintaxe - Intent Implcita para navegao entre telas.
Ocorre quando executamos uma atividade de maneira implcita onde quem est "disparando" a
Intent no sabe quais componentes que vo atender sua mensagem.

Arquivo de manifesto

Passando parmetro por Intent


Sintaxe
Dentro do conceito de Intents, totalmente possvel passar parmetro de um componente para o
outro.
Activity origem.

Activity destino.

Disparando Intents Nativas


possvel tambm executar telas / servios j existentes na plataforma Android, como por exemplo
abrir o navegador nativo e executar uma URL.

Sintaxe

Disparando Intents Nativas

Intents nativas
Intents comuns na plataforma Android
Ao

Descrio

ACTION_SET_ALARM

Cria um novo alarme

ACTION_SET_TIMER

Cria um novo timer.

ACTION_INSERT

Adiciona um novo evento no calendrio.

ACTION_IMAGE_CAPTURE /
ACTION_VIDEO_CAPTURE

Abre a camera para tirar foto e vdeo.

ACTION_PICK

Seleciona um contato na agenda para obter


informaes do mesmo..

ACTION_SEND

Envio de e-mail.

ACTION_VIEW

Executa um arquivo de mdia.

ACTION_CALL

Inicia uma chamada.

Disparando Intents Nativas


possvel tambm executar telas / servios j existentes na plataforma Android, como por exemplo
abrir o navegador nativo e executar uma URL.

Sintaxe

Obtendo resultados de Activitys


possvel tambm obter resultados de Activitys que foram inicializadas, para isso existe o mtodo
startActivityForResult().

Sintaxe

Activity 1

Activity 2

Intent Resolution
Quando o sistema operacional recebe uma Intent implcita, ele procura pela
melhor componente atravs de um processo chamado Intent Resolution
que baseado em 3 aspectos :

Action

Data

Category

Intent Resolution - Action Test


Para especificar as aes aceitas, um Intent Filter pode declarar zero ou
mais elementos <actions>.
...
<intent-filter>
<action android:name="android.intent.action.EDIT" />
<action android:name="android.intent.action.VIEW" />
...
</intent-filter>

Para validar esse filtro, a ao especificada na Intent deve combinar com


UMA dessas aes listadas no filtro.
Se o filtro no tem nenhuma ao, nenhuma intent vai corresponder, ento
todas as intents iro falhar no teste.
Embora, se uma Intent no especificar uma ao, ela ir passar no teste
(Contanto que o filtro contenha ao menos uma ao).

Intent Resolution - Category Test


Para especificar as categorias aceitas, um Intent Filter pode declarar zero ou
mais elementos <category>.
...
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
...
</intent-filter>

Para uma intent passar no teste de categoria, cada categoria na Intent deve
corresponder a uma categoria no filtro. O Intent Filter pode declarar mais categorias
que a Intent especificada e a Intent continuar passando no teste. Embora, uma Intent
sem categorias deve sempre passar no teste, independentemente de quais categorias
so declaradas nos filtros.
Observao : o Android automticamente aplica a categoria CATEGORY_DEFAULT para todas
intents implicitas. Ento se voce quer que sua activity receba intent implicitas, voce deve incluir a
categoria "android.intent.category.DEFAULT" em seu Intent Filter.

Intent Resolution - Data Test


Para especificar os dados aceitas, um Intent Filter pode declarar zero ou
mais elementos <data>.
...
<intent-filter>
<data android:mimeType="video/mpeg" android:scheme="http" ... />
<data android:mimeType="audio/mpeg" android:scheme="http" ... />
...
</intent-filter>

Cada elemento <data> pode especificar uma estrutura de URI e um tipo de dado. Ha atributos
separados para cada atributo de uma URI : scheme, host, port e path.
<scheme>://<host>:<port>/<path>
Por exemplo :
content://com.example.project:200/folder/subfolder/etc

Intent Resolution - Data Test


Algumas regras na URI :
- Se um scheme no especificado, o host ignorado.
- Se um host no especificado, a porta (port) ignorada.
- Se ambos scheme e host no for especificado, o path ignorado.
- Se um filtro, especifica apenas um scheme. Todas URIs com aquele scheme corresponde ao
filtro.
- Se um filtro especifica um scheme e um authority, todos as URIs com o mesmo scheme e
authority correspondem ao filtro, independente de suas partes.
- Se um filtro especifica um scheme, um authority e um path. apenas URIs com o mesmo
scheme, authority e path corresponde ao filtro.

Intent Resolution - Data Test


Algumas regras na URI :
- Se um scheme no especificado, o host ignorado.
- Se um host no especificado, a porta (port) ignorada.
- Se ambos scheme e host no for especificado, o path ignorado.
- Se um filtro, especifica apenas um scheme. Todas URIs com aquele scheme corresponde ao
filtro.
- Se um filtro especifica um scheme e um authority, todos as URIs com o mesmo scheme e
authority correspondem ao filtro, independente de suas partes.
- Se um filtro especifica um scheme, um authority e um path. apenas URIs com o mesmo
scheme, authority e path corresponde ao filtro.

Intent Resolution - Data Test


As comparaes de data compara ambos URI e o MIME type especificado dentro de
um Intent Filter. As regras so as seguintes
a) Uma Intent que no contem nem um URI e nem um MIME type passa no teste apenas se o filtro
(Intent Filter) no especificar qualquer tipo de URI e MIME type.
b) Uma Intent que contem uma URI mas no possui MIME type, passa no teste apenas se a URI
corresponder a URI do filtro (Intent Filter) e o mesmo no especificar um MIME type.
c) Uma Intent que contem um MIME type mas no uma URI passa no teste apenas se o filtro
(Intent Filter) listar os mesmos MIME types e no especificar uma URI.
d) Uma Intent que contem ambos URI e MIME Type passa no teste de MIME type apenas se os
MIME types corresponderem aos MIME types listados no filtro e ele passa no teste de URI se a
URI corresponder a um URI dentro do filtro (Intent Filter).

Exerccios

Intent - Exerccios

Crie uma tela com 1 botao e ao clicar nesse


botao va para uma segunda tela.
Crie uma tela com 2 campos (numero 1 e
numero) ao clicar no botao Calcular o
usuario vai para uma segunda tela onde
mostra o resultado da soma desses 2
numeros

Toast e Notification

O que ?

Toast e Notification - O que ?

Toast : Componente utilizado para exibir


informaes para o usurio de maneira
rpida
e
instantanea.
Notification : Componente utilizado para
notificar o usurio quando um determinado
evento/ao
ocorre.

Para que serve?

Toast e Notification - Para que serve


?
Toast : Exibir mensagens sem tirar o foco
do usurio da aplicao, mensagens
rpidas, semelhante uma "torrada".
Notification : Exibi notificaes para o
usurio avisando que determinado evento
ocorreu, tal como uma nova mensagem
chegou, um download terminou e por a
vai...

Como usar ?

Toast - Como usar ?


Sintaxe

Constantes de tempo de durao


Toast.LENGTH_LONG = durao longa.
Toast.LENGTH_SHORT = durao curta.

Notification - Como usar ?

Notification - Como usar ?


Sintaxe

Exerccios

Toasts e Notification - Exerccios

Crie um boto que ao ser clicado dispare um


Toast.
Crie um boto que ao ser cliclado dispare
um
Notification.

Banco de Dados com


SQLite

O que ?

Banco de Dados - O que ?

Armazenamento de informaes de uma


aplicao.
SQL (Structured Query Language).
SQLite Database (http://www.sqlite.org).

Para que serve?

Banco de Dados - Para que serve?

Manipular e/ou processar informaes de


uma aplicao.
Ex 1 : Controle financeiro.
Ex 2 : Cadastro de clientes.
Ex 3 : Cadastro de produtos.

Como usar ?

Banco de Dados - SQLiteOpenHelper


SQLiteOpenHelper a classe principal de uma integrao do aplicativo com o banco de dados, ela
facilita o versionamento e o acesso ao Banco de Dados.

Por questo de conveno, colunas chaves primrias devem ter o seu nome representado por _id.

Banco de Dados - INSERT


Para inserir um registro no banco, basta instanciar um objeto da classe DatabaseHelper e obtemos
atravs dela uma instncia da classe SQLiteDatabase com permisses de escrita. Por fim montamos
os valores a serem inseridos no objeto da classe ContentValues e chamamos o metodo insert da
classe SQLiteDatabase

Banco de Dados - UPDATE


Para atualizar um registro no banco, basta instanciar um objeto da classe DatabaseHelper e obtemos
atravs dela uma instncia da classe SQLiteDatabase com permisses de escrita. Por fim montamos
os valores a serem atualizados no objeto da classe ContentValues e chamamos o metodo update da
classe SQLiteDatabase.

Banco de Dados - DELETE


Para deletar um registro no banco, basta instanciar um objeto da classe DatabaseHelper e obtemos
atravs dela uma instncia da classe SQLiteDatabase com permisses de escrita. Por fim chamamos
o metodo delete da classe SQLiteDatabase passando a chave do registro a ser deletado.

Banco de Dados - READ


Para recuperar registros no banco, basta instanciar um objeto da classe DatabaseHelper e obtemos
atravs dela uma instncia da classe SQLiteDatabase com permisses de leitura. Criamos um objeto
da classe Cursor e montamos a consulta dentro do metodo rawQuery em seguida utilizamos o
prprio Cursor para ler os registros retornados atravs da consulta.

Banco de Dados - READ


Uma alternativa de realizar consultas utilizar o mtodo query da classe SQLiteDatabase onde se
passa 5 clausulas de SQL como parmetro e o mesmo retorna um objeto da classe Cursor com o
resultado.

muito improdutivo ?

Banco de Dados - Alternativas


Ferramenta para mapeamento objeto-relacional compatvel com Android.

ORM Lite http://ormlite.com


DBFlow - https://github.com/Raizlabs/DBFlow
Sugar ORM - http://satyan.github.io/sugar/

Lembre-se sempre do Design


Emergente antes de adicionar um
framework em seu projeto.

Exerccios

Banco de Dados - Exerccios

Faa um aplicativo com CRUD de clientes


onde esse Cliente tem os campos : id,
nome,
agencia,
conta,
saldo.

Broadcast Receiver

O que ?

Broadcast Receiver - O que ?


Componente utilizado para responder a
eventos no Android
Eventos do sistema operacional ou de
outras aplicaes.

Para que serve?

Broadcast Receiver - Para que


serve?
Com Broadcast Receiver possvel escutar diversos tipos
de eventos.

Ao iniciar uma ligao.


Ao finalizar uma ligao.
Ao enviar um SMS.
Quando a bateria estiver fraca.
Quando a bateria estiver 100% carregada.

Como usar ?

Broadcast Receiver - Como usar?


A estrutura bsica de uma classe que representa um BroadcastReceiver

AndroidManifest.xml

Broadcast Receiver - Como usar?


Disparando o BroadcastReceiver

Registro de log no LogCat

Broadcast Receiver - Actions Nativas


Algumas actions nativas
Atributo

Descrio

android.intent.action.REBOOT

Aparelho reiniciou

android.intent.action.SCREEN_OFF

Tela desligou

androi.dintent.action.SCREEN_ON

Tela ligou

android.provider.Telephony.SMS_RECEIVED

Recebeu SMS

android.intent.action.BATTERY_CHANGED

Alterou o estado da bateria

android.intent.action.BATTERY_LOW

Bateria fraca

android.net.wifi.WIFI_STATE_CHANGED

Sinal do WIFI mudou

android.intent.action.POWER_CONNECTED

Ligou na energia

android.intent.action.POWER_DISCONNECTED

Desligou da energia

Broadcast Receiver - Dicas


importantes
S fica ativo durante a execuo do mtodo
onReceive()
No fazer operao assncrona dentro do
Broadcast.
O mtodo onReceive() deve completar em at
10 segundos.
No possvel fazer processamento "pesado"

Exerccios

Broadcast Receiver - Exerccios


Crie um BroadcastReceiver com a ao
CLIQUE_BOTAO que seja executado toda
vez que o usurio apertar um boto. Ao ser
executado imprima um texto no LogCat
dizendo que o Broadcast foi executado.
Crie um BroadcastReceiver que seja
executado quando o dispositivo ficar com a
bateria fraca

Services e Threads

O que ?

Services e threads - O que ?


Componentes que permitem executar
processamento em segundo plano.
Componentes de alta prioridade.

Para que serve?

Service - Para que serve?


Executar processos pesados dentro do Android.

Download de um arquivo grande.


Envio de informaes pesadas para um
servidor.
Execuo de algum algortmo pesado.
Operaes de I/O.

Como usar ?

Service - Como usar ?


A estrutura bsica de uma classe que representa um Service.

Service - Como usar ?


A estrutura bsica de uma classe que representa um Service.

Service - Como usar ?


AndroidManifest.xml

A partir da verso 5.0. Lollipop por


questes de segurana no possivel
mais enviar Intent implcita para
Service.

Iniciando e parando o Service

AsyncTask - Como usar ?


AsyncTask - Classe auxiliar para criar uma Thread e
sincronizar o acesso as views de maneira padronizada.

AsyncTask - Como usar ?


O que faz cada mtodo ?
onPreExecute - executado antes da thread iniciar, geralmente
utilizado para mostrar uma mensagem ao estiolo "Por favor,
espere" ou ento at mesmo mostrar uma barra de progresso.

doInBackground - executado sobre uma thread separada


onde ocorrer todo o processamento pesado.

onPostExecute - executado na thread principal (UI Thread),


onde ele tem acesso aos componentes da tela, podendo assim
atualizar os mesmos.

Exerccios

Broadcast Receiver - Exerccios


Crie uma Service que execute um contador
de 0 a 10. Imprima os dados do contador no
LogCat. Crie um boto na interface para
iniciar e outro para parar o Service.
Crie uma AsyncTask que execute um
contador de 0 a 10.

Comunicando com
WebServices via REST

O que ?

REST - O que ?

Arquitetura para sistemas que explora os protocolos da Web. Sendo


RESTful, um servio da Web que utiliza-se desse paradigma pra construir
WebServices.
Curso JEE M3 - Web Services - FOR-J
Objetivo desse curso introduzir e
oeferecer
aos
participantes
conhecimentos
fundamentais
referentes ao desenvolvimento de
web services e SOAP e REST
utilizando
a
tecnologia
Java.
Mais

informaes

em

http://fernandofranzini.wordpress.
com/2012/05/09/jee-m3-2012-webservices/

Para que serve?

REST - Para que serve ?


Troca de informaes entre aplicaes
Leitura de informaes auxiliares (Busca de
CEP).

Como usar ?

REST - Como usar ?


Toda requisio Web para no travar a thread principal (UI Thread) deve ser executada em outra
Thread, portanto deve ser executada dentro do mtodo doInBackground da classe AsyncTask.
Para facilitar o trabalho das requisies ser utilizado a classe HttpRequest disponvel em
https://github.com/kevinsawicki/http-request
Inserindo um registro no WebService de clientes.

REST - Como usar ?


Lendo um registro no WebService de clientes.

REST - Como usar ?


Removendo um registro no WebService de clientes.

Exerccio

WebService - Exerccios

Faa um aplicativo que insira e leia registros


de clientes em um WebService REST onde
esse Cliente tem os campos : id, nome,
agencia,
conta,
saldo.
Obs : Os dados do servidor sero disponibilizados na hora do curso.

Publicando o aplicativo
na Play Store

O que ?

Google Play Store - O que ?


}

Canal de vendas oficial de aplicativos


Android.
Acessada via Android e/ou Web.

Como usar ?

Google Play Store - Publicando


Uma aplicao pode ser disponibilizada de
forma gratuita ou paga.
Para comprar uma aplicao paga h a
necessidade de utilizar o Google Checkout
e um carto de crdito internacional.

Google Play Store - Publicando


Possui sistema de filtros, ou seja, s exibira
seu aplicativo, se o dispositivo do cliente or
compatvel com a verso utilizada pelo
desenvolvedor
Possui
notificao
automtica.

de

atualizao

Google Play Store - Publicando


Requisitos.
Conta no Google
Perfil de Desenvolvedor
Taxa nica de U$ 25,00

Boas prticas

Google Play Store - Boas prticas


Teste em
emulador

vrios

dispositivos
para

(Use o
isso).

Coloque um nome e cone que represente


bem a aplicao.
Defina o atributo debuggable para false.

Assinando o aplicativo

Google Play Store - Assinando o


aplicativo
A assinatura garantir a autoria de sua
aplicao e no ser necessrio ser
reconhecida
por
uma
autoridade
certificadora.
Sempre que houver a necessidade de
publicar uma nova verso do aplicativo
dever usar o mesmo pacote e assinatura
digital utilizado no ato da publicao.

Google Play Store - Assinando o


aplicativo

Compilao

Cdigo Fonte

Arquivo .APK

Assinatura

Arquivo .APK
pronto
to

en

m
ha

Ali

Arquivo .APK
assinado
Certificado Digital

Google Play Store - Assinando o


aplicativo
Toda feature necessria pelo aplicativo deve
ser
inserido
no
AndroidManifest.xml

Isso determinar se o dispositivo de um determinado cliente


poder ou no utilizar sua aplicao.

Vous aimerez peut-être aussi