Você está na página 1de 114

14/09/11

ENUCOMP - 2011

Apresentao
Apresentao

Cndido Sales

Lucas Aquiles

Estudante do IFPI;
Membro do LIMS;

Estudante do IFPI;

@candidosales
candidosg@gmail.com

@lucas_aquiles
lucasaquiles@gmail.com

14/09/11

ENUCOMP - 2011

Introduo a Computao mvel

14/09/11

ENUCOMP - 2011

Computao Mvel
Realizada em dispositivos portteis que sejam
capazes de acessar uma rede sem fio.
Por usurios mveis (com diferentes
velocidades)
Acesso informao a qualquer lugar, a
qualquer momento
Termos relacionados:
Computao Pervasiva
Computao Ubqua
14/09/11

ENUCOMP - 2011

Dos Mainsframes computao mvel

14/09/11

ENUCOMP - 2011

Computao Pervasiva
Computao Pervasiva: acesso conveniente a
informaes relevantes e a habilidade de
realizar aes sobre as mesmas quando e onde
for necessrio (IBM).
Espalhada por todos os lugares

14/09/11

ENUCOMP - 2011

Computao Pervasiva
Projeto Everywhere Display (IBM)
Qualquer superfcie pode se tornar em uma projeo do
tipo touch screen

14/09/11

ENUCOMP - 2011

Computao Ubqua
Computao Ubqua:
onipresena da informtica no cotidiano das
pessoas (Wikipdia)
... tornam-se parte da nossa vida de forma que
no os percebemos mais (Mark Weiser)
Baseia-se na deteco de gestos, movimentos,
fala, movimentao dos olhos...

14/09/11

ENUCOMP - 2011

Computao Ubqua
Ex: Casa do futuro:
Sistema automtico de iluminao
Sistemas de extino e preveno de incndios
Monitoramento de sade dos ocupantes da casa
Geladeira que perceba variaes de estoque e
validade dos produtos
Celular que envia dados de coletados a uma
central mdica
14/09/11

ENUCOMP - 2011

Computao Ubqua

14/09/11

ENUCOMP - 2011

Juntando tudo

14/09/11

ENUCOMP - 2011

Princpios da Computao Mvel


Descentralizao
Diversificao
Conectividade
Simplicidade

14/09/11

ENUCOMP - 2011

Princpio da Descentralizao
Um passo alm da descentralizao dos
sistemas distribudos;
Uma grande variedade de pequenos
dispositivos cooperam estabelecendo uma rede
dinmica de relacionamentos;
A habilidade de utilizar aplicaes e
informaes em dispositivos mveis gera a
necessidade de sincronizao de atualizaes
de dados com sistemas servidores e outros
dispositivos.
14/09/11

ENUCOMP - 2011

Princpio da Diversificao
Mesma informao em diferentes modelos

14/09/11

ENUCOMP - 2011

Princpio da Conectividade
Uma grande variedade de tecnologias deve
ser atendida:
redes celulares, WLANs, Bluetooth, IrDA,
WiMax, comunicao via satlite, etc. . .

No basta apenas conectar os dispositivos:


Troca de dados
Descoberta de servios
Delegao de tarefas
14/09/11

ENUCOMP - 2011

Princpio da Simplicidade
Computadores de uso geral: configurao
complexa
Computadores mveis: mais especficos
e mais simples em configurao
Simples no significa primitivo:
telas touch-screen,
reconhecimento de escrita,
reconhecimento de voz
etc
14/09/11

ENUCOMP - 2011

Requisitos de Aplicao
Infra-estrutura:
- Cobertura(indoor, outdoor, acesso a alta/baixa velocidade)
- Qualidade da comunicao
- Confiabilidade e estabilidade da comunicao
- Segurana
Dispositivo Mvel
Forma de interao (grafico, textual, voz)
Capacidade de identificar localizao
Capacidade de processamento e armazenamento locais
Servios Middleware
Suporte criptografia e autenticao
QoS (Quality of Service)
Descoberta e adaptao a novos servios e recursos
14/09/11

ENUCOMP - 2011

Aceitao das Tecnologias


Tempo para atingir 1 milho de usurios:
TV preto-banco: 20 anos
TV em cores: 9 anos
VCR: 8 anos
PC: 6 anos
Celular: 2 anos e meio

Dos 128 milhes de PCs vendidos em 2001, 22% eram


laptops e este percentual tem crescido 1 a 2 pontos por ano
desde 1999;
Acessos Internet por meio de dispositivos mveis
ultrapassou os acessos convencionais (PC e Browser) desde
meados de 2002.
14/09/11

ENUCOMP - 2011

Algumas aplicaes de
computao mvel
Ngocios diversos: m-commerce e m-business
Acesso Internet por viajantes: transferncia de arquivos,
Web, acesso remoto;
Comrcio: vendedores ambulantes;
Tratamento Mdico emergencial: transmisso do
pronturio de/para ambulncia (ou local do acidente);
Segurana: consulta e obteno de ficha criminal;
Seguradoras: avaliao de sinistro;
Servios de resgate: coordenao das atividades de
resgate;
Aplicaes Militares: coordenao de aes;
Gerenciamento de frota e Gerenciamento de bens;
14/09/11

ENUCOMP - 2011

Servios baseados em localizao


Servios de emergncia: usurios entram em contato com uma central
(E911) e localizado;
Informaes de trfego;
Navegao: Como ir do ponto A ao ponto B?
Gerenciamento de frota;
Gerenciamento de bens;
Publicidade sem fio: usurios podem subscrever servios que os notifiquem a respeito
de certos produtos quando adentrarem uma dada regio;
Servios de busca: restaurantes, postos de gasolina, hotis prximos;
Localizao automtica de veculos;
Mapas;
Informaes de trnsito;
Jogos.

14/09/11

ENUCOMP - 2011

Impacto da Computao Mvel


Representa um novo paradigma computacional,ampliando os
conceitos da computao distribuda
reas com diversas implicaes:
Redes de Computadores
Sistemas Operacionais
Banco de Dados
Ambientes de Programao
etc. . .
Mudanas sociais?

14/09/11

ENUCOMP - 2011

Difuso da Tecnologia celular

14/09/11

ENUCOMP - 2011

Difuso da Tecnologia celular

14/09/11

ENUCOMP - 2011

Difuso da Tecnologia celular

14/09/11

ENUCOMP - 2011

Difuso da Tecnologia celular

14/09/11

ENUCOMP - 2011

Difuso da Tecnologia celular

14/09/11

ENUCOMP - 2011

Difuso da Tecnologia celular

14/09/11

ENUCOMP - 2011

Difuso da Tecnologia celular

14/09/11

ENUCOMP - 2011

Difuso da Tecnologia celular

14/09/11

ENUCOMP - 2011

Difuso da Tecnologia celular

14/09/11

ENUCOMP - 2011

Difuso da Tecnologia celular

14/09/11

ENUCOMP - 2011

Viso Geral

14/09/11

ENUCOMP
- 2011
III SACIC
- 2011

32

Roteiro
1.
2.
3.
4.
5.
6.
7.
8.
9.

Mundo mobile
O que o Android;
Open Handset Alliance;
Android e os competidores;
Por que Linux no Android?;
Dalvik Virtual Machine;
Instalando as ferramentas do Android;
Projeto Meu HelloWord
Componentes;

14/09/11

ENUCOMP - 2011

Mundo mobile
Mercado de celulares
Usurios querem mais recursos em seus
dispositivos
Aplicaes mveis no mundo coorporativo
Necessidade de plataformas mais
modernas para desenvolvimento de
aplicaes no auxilio de seus negcios e
lucros.
14/09/11

ENUCOMP - 2011

O que Android?
Sistema operacional baseado no kernel
do Linux;
Possui uma implementao da JVM
Dalvik;
Cdigo aberto e livre;
Plataforma flexvel e poderosssima de
desenvolvimento
Customizavel
14/09/11

ENUCOMP - 2011

Android e os competidores
IPhone
JME
Symbiam
BlackBerry
WindowsMobile

14/09/11

ENUCOMP - 2011

Porque Linux no android?


Construda sob o kernel 2.6 do Linux
Gerencia memria e processos
Abstrao de hardware
Usurios no vem o Linux e seus
programas no fazem chamas diretas a ele.
Suporte a grficos 3D, especificao 1.0 da
OpenGL ES, possvel criar jogso com tima
qualidade.
14/09/11

ENUCOMP - 2011

Open Handset Alliance


Unio entre grandes da telefonia
liderados pelo Google (OHA Open
Handset Alliance)
Definir uma plataforma nica e aberta
Plataforma moderna e flexvel para
desenvolvimento de aplicaes
Fabricantes, Usurios e
Desenvolvedores se beneficiam com o
grupo
14/09/11

ENUCOMP - 2011

Dalvik Virtual Machine


JVM timizada para execuo de
dispositivos mveis Dalvik
Bytecodes (arquivo .class) so
convertidos em arquivo .dex (Dalvik
Executable) Aplicao android
compilada
Compactao dos arquivos .dex e
recursos como imagens em arquivos .apk
(Android Package File) Aplicao Final
14/09/11

ENUCOMP - 2011

Instalando as ferramentas do Android

Requisitos
1.Java SDK
2.Android SDK
3.Eclipse IDE
4.Plugin ADT
14/09/11

ENUCOMP - 2011

Configurao do ambiente

1. Escolher a verso
do JDK

14/09/11

2.Aceite
os termos
ENUCOMP
- 2011

3.Escolher a verso
para seu S.O

Configurao do ambiente
Instalao do JDK no Linux (Ubuntu)
Com o comando apt-get:
sudo apt-get install openjdk-6-jdk && sudo apt-get
install sun-java6-jdk

Aps a instalao entre via console e


digite: java v
A sada deve ser a verso do java
instalado.
14/09/11

ENUCOMP - 2011

Instalao do Android SDK

. no site www.android.com escolher a opo developers

14/09/11

ENUCOMP - 2011

Instalao do Android SDK

2. Escolha a opo SDK

3. Baixe o android SDK de acordo com o seu S.

ENUCOMP
2011smartphone)
erso 14/09/11
atual a 3.2 (para tablet)
e 2.3.3 -(para

Instalao do Android SDK


Localize o arquivo e descompacte-o.
No windows basta executar o arquivo SDK
Manager.exe localizado na pasta raiz do sdk
No linux ou Mac, acesse pelo terminal a pasta raiz do
sdk e execute o comando ./tools/android

14/09/11

ENUCOMP - 2011

Instalao do Android SDK


ir aparacer o Android SDK e o AVD
(android vitual device) Manager.

14/09/11

ENUCOMP - 2011

Instalao do Android SDK


V em Available Packages, marque a opo
AndroidRepository e clique em Install Selected

14/09/11

ENUCOMP - 2011

Instalao do Android SDK


Uma lista com todos os componentes disponveis,
incluindo documentao, plataformas, add-on,
bibliotecas ser exibida.

14/09/11

ENUCOMP - 2011

Instalao do Android SDK


Caso ocorra algum erro de HTTPS SSL, v em
"settings, marque a opo "Force https:// sources to
be fetched using http://" e clique em "Save & Apply".

14/09/11

ENUCOMP - 2011

Instalao do Android SDK


Aceite todos e clique em install

14/09/11

ENUCOMP - 2011

Instalao e Configurao do Eclipse


IDE

Acesse o site www.eclipse.org e v na sesso Downlods

2. Escolha a verso do Eclipse IDE for Java Developers


14/09/11

ENUCOMP - 2011

Instalao e Configurao do Eclipse


IDE
Faa o download

14/09/11

ENUCOMP - 2011

Instalao e Configurao do Eclipse IDE


Aps o download localize o arquivo ,
descompacte-o e execute o arquivo
eclipse.exe
No ubunto apenas eclipse

14/09/11

ENUCOMP - 2011

Instalao do plugin ADT


Inicie o eclipse e v em help, install
new software

14/09/11

ENUCOMP - 2011

Instalao do plugin ADT


Clique em add e uma nova janela ir
aparecer

Em name coloque ADT Plugin e em location adicione


https://dl-ssl.google.com/android/eclipse/ e clique em ok

14/09/11

ENUCOMP - 2011

Instalao do plugin ADT


Selecione ADT Plugin na lista de sites, marque a
opo Developers Tools e clique em next.

14/09/11

ENUCOMP - 2011

Instalao do plugin ADT


Ir aparecer uma lista com todos os item a serem
instalados.
Clique em "Next" novamente. Na prxima tela,
escolha a opo "I accept the the terms of the licence
agreements" e clique em 'Finish'.
Aps o processo de instao do plugin o Eclipse ir
reiniciar.

14/09/11

ENUCOMP - 2011

Instalao do plugin ADT


Quando o Eclipse IDE iniciar uma mensagem de erro ir
aparecer, porque a IDE no consegue localizar o Android
SDK
V em Window, Preferences, Android. Clique em 'Browse..,
selecione a raiz do SDK e clique em 'OK.

14/09/11

ENUCOMP - 2011

Criando uma ADV


Abra o SDK e ADV Manager e em
Virtual Devices clique em new

14/09/11

ENUCOMP - 2011

Criando uma ADV


Adicione as informaes como na
imagem e clique em Create ADV

14/09/11

ENUCOMP - 2011

Criando uma ADV


Criamos uma ADV com o nome
enucomp
Que possui o firmeware 2.2 e tambm
possui o Secure Digital Card (SD) e o
Skin Default Half-VGA HVGA (320 x
480)

14/09/11

ENUCOMP - 2011

Pronto! Nosso ambiente est


pronto para desenvolvimento.

14/09/11

ENUCOMP - 2011

Projeto Meu HelloWord


O plugin ADT vem com uma aplicao HelloWord de
exemplo, vamos us-la
V em file > Project > new project.
V em android > android project e clique em next
Em Project Name digite: HelloAndroid
No Build Target: Android 2.2
Application Name : Hello, Android
Package name: br.ifpi.edu.hello
Create Activity: Hello
E clique em finish
14/09/11

ENUCOMP - 2011

Projeto Meu HelloWord


Um estrutura de diretrios como a
mostrada abaixo ser criada

14/09/11

ENUCOMP - 2011

Projeto Meu HelloWord


Para executar clique com o boto direito
em cima do projeto e escolha run as >
android application

14/09/11

ENUCOMP - 2011

Projeto Meu HelloWord

14/09/11

ENUCOMP - 2011

Activity

14/09/11

ENUCOMP
- 2011
III SACIC
- 2011

67

Activity
Uma tela pode ser criada de duas formas:
Em um arquivo XML
Direto em um arquivo Java usando a sua API
android.app.Activity:
Similar classe JFrame do Swing
Representa, priori, uma tela da aplicao
Composta por vrios componentes representados pela classe
andoid.view.View (botes, checkboxes, imagens)
Controla a passagem de parmetros para outra tela
Define mtodos para tratar eventos dos componentes
14/09/11

ENUCOMP - 2011

Activity

14/09/11

ENUCOMP - 2011

View
So componentes simples (botes, checkboxes,
imagens) ou componentes compostos
Atuam como gerenciadores de layout
Podem conter vrias views filhas (outro componentes)

O arquivo main.xml um arquivo de layout padro


Vrios layouts podemser definidos

14/09/11

ENUCOMP - 2011

Setando a View Principal


O mdoto setContentView faz a ligao entre a activity
e a view
A view passada como parmetro est definida no
arquivo main.xml (pode ser mudado)
referenciada via o arquivo R.java como uma
constante

14/09/11

ENUCOMP - 2011

A classe R

14/09/11

ENUCOMP - 2011

AndroidManifest.xml
Base da aplicao e semelhante ao web.xml de
aplicaes WEB

14/09/11

ENUCOMP - 2011

AndroidManifest.xml
As Activities devem ser definidas no arquivo
Para que o usurio possa interagir, pelo menosuma Activity
deve ser definida no arquivo
A configurao de uma Activity como ponto de partida para a
aplicao ilustrada abaixo:

14/09/11

ENUCOMP - 2011

Criao de interface via Java


Pode-se definir uma interface visual via
codificao java

14/09/11

ENUCOMP - 2011

Referenciando componentes
Sempre que possvel, atribua um ID aos
componentes

14/09/11

ENUCOMP - 2011

Referenciando componentes
Adicionar IDs aos componentes
permitem acesso via codificao

14/09/11

ENUCOMP - 2011

Tratando o clique de um boto


Para tratar eventos de um boto, deve-se:
Obter o componente pelo ID
Instanciar um listener
Setar o listener no boto
Implementar o mtodo onClick

14/09/11

ENUCOMP - 2011

Exemplo

14/09/11

ENUCOMP - 2011

Gerando Logs

14/09/11

ENUCOMP - 2011

Gerando Logs
Usa-se a classe Log e seus mtodos estticos:

14/09/11

ENUCOMP - 2011

Componentes

14/09/11

ENUCOMP
- 2011
III SACIC
- 2011

82

Roteiro
1. ScrollView;
2. MapView;
3. ListView;
4. ImageView;
5. ContextMenu;
6. Autocomplete;
7. Tables;
8. Buttons (ImageButton, GroupButton, Button);
9. CSS;
10.Tratamento de eventos
11.Apresentao de exemplos
14/09/11

ENUCOMP - 2011

ScrollView
A classe android.widget.ScrollView deve
ser utilizada para telas que contm
muitos elementos e nas quais seja
necessrio fazer a rolagem da tela.
Exemplo
exemplo_scrollview.xml
ExemploScrollView

14/09/11

ENUCOMP - 2011

MapView
Para visualizao de mapas;
Para utilizar um MapView, basta definir a tag
<com.google.android.maps.MapView> e
informar no atributo android:apiKey uma
chave de autenticao vlida para o Google
Maps.
Exemplo
Mapview.xml
MapaSimplesXML
14/09/11

ENUCOMP - 2011

ListView
Desenha os componentes em uma lista
vertical e com barra de rolagem (scroll),
se necessrio.
Necessita da classe android.app.ListActivity,
uma acitivy especial para exibir uma lista de
itens na vertical.
Exemplo
Prtico! Pg. 113
14/09/11

ENUCOMP - 2011

ImageView
Apresenta uma imagem que voc
selecionou.

14/09/11

ENUCOMP - 2011

Context Menu
Menu contextuado que pode ser utilizado
em qualquer momento de sua aplicao.
Exemplo
Pg 253

14/09/11

ENUCOMP - 2011

Autocomplete
Um recurso muito usado em aplicaes web
So campos de texto que podem completar
automaticamente o texto que o usurio est
digitando.
Para usar o AutoCompleteTextView necessrio
chamar o mtodo setAdapter(adaptador) e
informar sua implementao de ListAdapter.
Exemplo
Pg 221
14/09/11

ENUCOMP - 2011

Tabs
Conceitos
1. TabHost Componente que agrupa os
butes e o contudo
1. TabWidget Grupa em linha os butes
que possuem labels e cones (opcional)
1. FrameLayout Agrupa o contedo de
uma aba
14/09/11

ENUCOMP - 2011

Tabs
Estrutura

14/09/11

ENUCOMP - 2011

Usando TabActivity
Crie uma nova Activity que extenda de TabActivity e
implementa as interfaces OnTabChangeListener e
TabContentFactory

14/09/11

ENUCOMP - 2011

Usando TabActivity
Crie dois novos layouts xml do android com os
nomes tab1.xml tab2.xml e adicione um TextView a
cada layout
E altere o setContentView() das activitys Tab1.class
e Tab2.class para eles.

14/09/11

ENUCOMP - 2011

Nova tab pelo XML do Android


Crie um novo layout XML - tabs.xml
Crie uma nova acvitivy - Tabs.java que estenda
de Activity
Adicione a activity ao AndroidManifest.xml
Altere o mtodo setContentView(R.layout.tabs))

14/09/11

ENUCOMP - 2011

Nova tab pelo XML do Android


Sua activity deve est assim

14/09/11

ENUCOMP - 2011

Nova tab pelo XML do Android


Altere o arquivo tab.xml

14/09/11

ENUCOMP - 2011

Nova tab pelo XML do Android


Altere o arquivo Tab.java

14/09/11

ENUCOMP - 2011

Nova tab pelo XML do Android


Altere o arquivo AndroidManifest para que a
activity Tabs.java seja iniciada no incio da
aplicao

14/09/11

ENUCOMP - 2011

Buttons
As classes android.widget.Button e
android.widget.ImageButton so
utilizadas para criar um boto na tela.
A diferena que a classe ImageButton
permite usar uma imagem para desenhar no
boto.
Exemplo
Pg 223
14/09/11

ENUCOMP - 2011

CSS
Podemos utilizar os arquivos XML como
extenses de estilos que podem ser
reutilizados em vrios layouts, sem
necessitar a repetio de cdigo.
Exemplo
Guia Turistico

14/09/11

ENUCOMP - 2011

Ciclo de vida

14/09/11

ENUCOMP
- 2011
III SACIC
- 2011

101

Ciclo de vida de uma activity

14/09/11
17/05/11

ENUCOMP
- 2011
III SACIC - 2011

Ciclo de vida de uma activity


onCreate:
Obrigatrio e chamado uma nica vez.
Deve-se setar a view
onStart: chamado quando uma activity est ficando visvel e j tem uma
view definida
onRestart: chamado quando uma activity foi parada temporariamente e est
retornando execuo
onResume:
Quando uma activity est executando.
Pode ser chamada tambm para recuperao de dados quando foi
interrompida e volta a execuo

14/09/11
17/05/11

ENUCOMP
- 2011
III SACIC - 2011

Ciclo de vida de uma activity


onPause: chamado quando a activity est sendo tirada do topo da
execuo. Usado para salvar o estado da aplicao
onStop:
A aplicao no est mais visvel e est em segundo plano.
Caso fique por muito tempo em 2o Plano e falte recursos, o S.O.
pode remover completamente da pilha de execuo
onDestroy: encerra literalmente a activity

14/09/11
17/05/11

ENUCOMP
- 2011
III SACIC - 2011

Activities x Intents

14/09/11

ENUCOMP
- 2011
III SACIC
- 2011

105

Activities x Intents
Activities so as "telas"
Uma aplicao pode ter vrias activities:
geralmente independentes,
contudo elas podem precisar se cooperar e
trocar dados entre si
Numa aplicao tradicional, uma activity deve
ser definida como "main" e ser executada ao
rodar a aplicao
Indo de uma activity para outra possvel
pedindo para a atual executar uma intent
14/09/11

ENUCOMP - 2011

Intents

14/09/11

ENUCOMP - 2011

Intents
android.content.Intent
Representa uma mensagem da aplicao para o S.O.
Solicita que algo seja realizado e serve para integrar aplicaes

Ex:
Chamar outra tela (j visto)
Solicitar que o S.O. ligue para um nmero;
Abrir o browser em um determinado endereo
Exibir algum endereo, localizao ou rota num mapa
Executar processamento em segundo plano
Enviar mensagem para outras aplicaes realizarem tarefas
especficas
14/09/11

ENUCOMP - 2011

Intents
So chamadas pelos mtodos:
startActivity(intent) = Executa uma activity
starActivityForResult(intent) = Executa uma activity
quepode retornar valores
startService(intent) or bindService(intent, ) = Inicia
ou se comunica comum servio de segundo plano
sendBroadcast(intent) = Envia uma intent que
podeser "capturada" por serviosespecficos
14/09/11

ENUCOMP - 2011

Alguns tipos de Intents pr-definidos

14/09/11

ENUCOMP - 2011

Permisses
Algumas intents necessitam de permisso explicita
para executar
Deve-se adicionar as permisses no arquivo
AndroidManifest.xml

14/09/11

ENUCOMP - 2011

Usando Intents pr-definidas

14/09/11

ENUCOMP - 2011

Algumas permisses

Permisso para executar navegao: INTERNET


Ligaes telefnicas: CALL_PHONE
Leitura lista de contatos: READ_CONTACTS

14/09/11

ENUCOMP - 2011

Intent chamar navegador

Tipo ACTION_VIEW
...
Uri uri = Uri.parse("http://www.android.com");
Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);
...
necessria a permisso INTERNET
14/09/11

ENUCOMP - 2011

Você também pode gostar