Você está na página 1de 43

COMPUTAÇÃO MÓVEL

Prof. M.Sc Sílvio Bacalá Jr


www.facom.ufu.br/~bacala/ANDROID
O que é computação Móvel
• Acesso à informação a qualquer lugar, a
qualquer momento.
O que é computação Móvel
• Tecnicamente:
• Processamento
• Mobilidade
• Comunicação sem fio
Dispositivos móveis
• O tamanho é importante
Dispositivos
Outros Dispositivos
Características comuns
• Interface limitada
• Processamento
• Comunicação
• Energia
Mobilidade
Introdução
• Atualmente, a Computação Móvel vem
surgindo como um novo paradigma
computacional.

• As redes que suportam a computação


móvel são as Redes Móveis, que trazem
novos requisitos e desafios não
encontrados em redes de computadores
tradicionais.
Introdução (cont.)
• A Mobilidade é a principal característica das
Redes Móveis. Ela traz problemas e desafios
que até então, não víamos, ou ignorávamos
em ambientes fixos.
• A mobilidade impõe requisitos e gera
problemas:
• roteamento;
• velocidade do canal;
• interferências do ambiente;
• localização da estação móvel;
• duração da energia da bateria da estação parada e em
movimento;
• entre outros.
Portabilidade

• É a capacidade de um terminal móvel


operar a partir de diferentes pontos de
conexão, mas perde o contato durante o
tempo de mudança do ponto de acesso.
• ao se mover, as conexões são encerradas e
reinicializadas no novo ponto de conexão. Ex:
WLANs (IEEE 802.11).
Mobilidade
• É a capacidade de um terminal móvel
continuar em contato contínuo com os
recursos da rede.
• nem o sistema, nem as aplicações precisam ser
encerrados e reinicializados;
• modo de acesso a rede: interface sem-fio ;
• redes móveis.
Redes Móveis
São redes de computadores sem fio que
possuem nós móveis:

• Redes Infra-Estruturadas:
• Rede de telefonia celular;
• Wireless LANs (IEEE 802.11, HIPERLAN);
• Wireless ATM;
• Redes via satélite.
• Redes Sem Infra-Estrutura:
• Redes Móveis Ad-hoc (MANET);
• WPAN – IEEE802.15(Bluetooth);
• Redes de Sensores;
• Redes Tolerantes a Atraso (DTN)
Estrutura das Redes Móveis
• Parte Fixa (redes de computadores
tradicionais):
• ERB- Estação Rádio Base;
• ESM - Estação de suporte à mobilidade;
• Estações Fixas (servidores, roteadores).
• Parte Móvel (equipamentos móveis):
• Estações Móveis (notebook, celular, palmtop, PDA,
sensores).
• Existem pesquisas propondo redes totalmente
móveis:
• Ex : Rede Móvel Ad hoc.
Problemas em Redes Móveis
• Mobilidade do usuário;
• Instabilidade (variação das condições do canal
de comunicação sem fio);
• Baixa largura de banda (bandwidth);
• Alta taxa de erros (10-5 bits errados);
• Gerenciamento do consumo de energia da
estação móvel;
• Suporte à QoS;
• Segurança.
Desenvolvimento de aplicativos
para dispositivos móveis
usando Android
Plataforma Android
• Ambiente de software para dispositivos móveis
• Não é uma plataforma de hardware
• Inclui
• Sistema operacional baseado em kernel de Linux
• UI rica
• Aplicações de usuário
• Bibliotecas de código
• Frameworks de aplicação
• Suporte a multimídia
• Funcionalidades de telefonia
• etc
Introdução a Android
• Plataforma de software
• Esforço principal da Google
• Colaboração com a Open Handset Alliance
• Quase 50 organizações
• Comprometida com uma plataforma móvel melhor e mais
aberta
• Considerada apenas uma novidade por muitos
a princípio
• Tornou-se um divisor de águas no mercado móvel
• Baseado em Linux e na máquina virtual Dalvik
Plataforma
• Android é um Sistema Operacional que
utiliza em seu núcleo a versão 2.6 do
kernel do Linux. É um sistema leve
porém poderoso;
• Atualmente o Android equipa Celulares,
Tablets PC, SmartPhones, etc;
• Utiliza a Máquina Virtual Dalvik
(desenvolvida pela Google).
Características
 Desenvolvido para tirar o maior proveito
do que os dispositivos podem oferecer
 Construído em Java
 Suporta um Subset da linguagem Java
Plataforma Android
• Componentes do SO estão em
C ou C++
• Aplicações são desenvolvidas
em Java
• Na sua imensa maioria
• Aplicações do sistema estão em
Java também
• Nenhuma diferença entre aplicações
do sistema e aplicações
desenvolvidas usando o SDK
• Open-source
Características

 Dalvik – Máquina virtual


 Possui um conjunto de bibliotecas C/C++
 SQLite – Banco de dados relacional
 Redes e comunidades disponíveis pelo
Google
 Android market
Camadas
• Kernel linux
• Drivers de hardware
• Bibliotecas
• WebKit, SQLite, gráficos
2D, 3D, mídia, etc
• Managers
• Telefonia, Activities
(views), janelas, recursos,
etc
• Android runtime
• Core java
• Dalvik VM
Camadas
• Linux kernel
• Base de um kernel linux e JVM otimizada
• Duas tecnologias são cruciais para ambiente
• Porque linux?
• Capacidades e poder de programação
• Open-source
• Cobre mudança rápida de produtos
• Plataforma comprovadamente estável
• Confiabilidade é mais importante que desempenho em
mercado móvel
• Voz X características de programação
• Camada de abstração de hardware
Camadas
• Dalvik VM
• Criado por Dan Bornstein;
• Nome de uma cidade em Iceland
• Diminui o tamanho do arquivo executável;
• Formato .dex (Dalvik Executable);
• Não é baseado em byte code Java mas sobre
instâncias de arquivos .dex;
• Neste caso para instanciar uma classe Java é
necessário convertê-la para .dex;
Camadas
• Dalvik VM
• Não é JME
• Não é Java (??)
• Aplicações são escritas em Java, são compiladas para
bytecode Java, mas traduzidas para uma representação
similar, porém diferente, chamada “arquivos dex”
• Logicamente equivalentes a bytecodes java, mas permite a
aplicações Android rodar em sua própria VM (livre de direitos)
• Do ponto de vista do programador, Android é Java
• Mas o runtime não é estritamente uma Java VM
• Código legado (bibliotecas, por exemplo) são quase
compatíveis em fonte (nearly souce compatible)
• Tente recompilar em Android, mas não espere resultados
corretos todo o tempo
Introdução a Android
• Palavras chave para o programador:
• Activity
• Intent *
• Resource *
• Service
• ContentProvider *
• BroadcastReceiver
Programação Android -
Intents
• Intents
• O que se quer fazer
• Buscar um registro
• Lançar um website
• Facilitam navegação de forma inovadora
• É uma declaração de necessidade
• Desejo de ação ou serviço
• IntentFilter
• Declaração de capacidade e interesse em oferecer
assistência para uma necessidade
• Pode ser genérico ou específico em relação a qual
Intent se oferece o serviço
Intents
• O atributo de ação de um Intent é tipicamente um
verbo
• VIEW, PICK, EDIT
• Várias ações de Intents existentes são definidos como
membros da classe Intent
• Programadores podem criar novas ações
• Para ver uma informação, o Intent seguinte é usado:
• android.content.Intent.ACTION_VIEW
• O componente de dados de um Intent é expresso na
forma de uma URI e pode ser qualquer informação
Intents – URIs comuns
• Contact lookup
• content://contacts/people
• Map lookup/search
• Gei:0,0?q=23+Route+206+Stanhope+NJ
• Website em navegador
• http://www.google.com
Intents
Intents - Exemplo
• Selecionar um registro em contatos
• Intent pickIntent = new
Intent(Intent.ACTION_PICK,
Uri.parse(“content://contacts/people”));
• startActivity(pickIntent);
• Este Intent será avaliado e passado para o
handler mais apropriado
• Provavelmente uma Activity do sistema chamada
com.google.android.phone.Dialer
• Mas pode ser qualquer outra Activity que receba
esse tipo de Intent
Intents
• IntentFilter
• Define a relação entre o Intent e a aplicação
• Quando Intent é lançado, o sistema avalia as
Activities, Services e BroadcastReceivers
disponíveis
• Envia o Intent para o receptor mais apropriado
• Ver registro de contatos e ligar, enviar um SMS, buscar um
endereço, ver um vídeo, ver um website, etc
• IntentFilters são definidos geralmente no
arquivo de manifesto
• AndroidManifest.xml
Componentes Android -
Activity
• É uma tela visível, relação quase de um para
um
• Controller do MVC
• Se uma aplicação precisar de uma interface,
terá ao menos uma Activity
• Aplicações Android geralmente contém mais de uma
• Cada Activity responde a eventos do usuário e
do sistema
• Emprega uma ou mais Views para apresentar os
elementos de UI para o usuário
• Classe herdada pelo programador
ARQUITETURA
Arquitetura
Aplicações

 Cliente de e-mail
 SMS
 Calendário
 Mapas
 Navegador
 Contatos e outros.
Framework

 Fornece uma plataforma de desenvolvimento


aberta, o que oferece aos desenvolvedores a
capacidade de construir aplicações ricas e
inovadoras
 Desenvolvedores tem pleno acesso às APIs
 A arquitetura do aplicativo é projetado para
simplificar a reutilização de componentes
Possui um conjunto de serviços e sistemas
 Conjunto de Views que podem ser usados para
construir uma aplicação
Views
Views (1/3)

Android → Arquitetura → Framework → View 41


Views (2/3)

Android → Arquitetura → Framework → View 42


Views (3/3)

Android → Arquitetura → Framework → View 43

Você também pode gostar