computaÇÃo mÓvel - iníciobacala/android/1-introducao.pdf · • a mobilidade é a principal...

43
COMPUTAÇÃO MÓVEL Prof. M.Sc Sílvio Bacalá Jr www.facom.ufu.br/~bacala/ANDROID

Upload: dodien

Post on 11-Nov-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

COMPUTAÇÃO MÓVEL

Prof. M.Sc Sílvio Bacalá Jr

www.facom.ufu.br/~bacala/ANDROID

Page 2: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

O que é computação Móvel

• Acesso à informação a qualquer lugar, a qualquer momento.

Page 3: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

O que é computação Móvel

• Tecnicamente:

• Processamento

• Mobilidade

• Comunicação sem fio

Page 4: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

Dispositivos móveis

• O tamanho é importante

Page 5: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

Dispositivos

Page 6: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

Outros Dispositivos

Page 7: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

Características comuns

• Interface limitada

• Processamento

• Comunicação

• Energia

Page 8: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

Mobilidade

Page 9: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

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.

Page 10: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

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.

Page 11: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

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).

Page 12: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

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.

Page 13: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

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)

Page 14: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

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.

Page 15: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

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.

Page 16: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

Desenvolvimento de aplicativos para dispositivos móveis

usando Android

Page 17: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

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

Page 18: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

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

Page 19: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

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).

Page 20: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

Características

Desenvolvido para tirar o maior proveito do que os dispositivos podem oferecer

Construído em Java

Suporta um Subset da linguagem Java

Page 21: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

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

Page 22: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

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

Características

Page 23: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

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

Page 24: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

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

Page 25: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

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;

Page 26: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

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

Page 27: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

Introdução a Android

• Palavras chave para o programador:

• Activity

• Intent *

• Resource *

• Service

• ContentProvider *

• BroadcastReceiver

Page 28: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

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

Page 29: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, nã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

Page 30: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, nã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

Page 31: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

Intents

Page 32: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

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

Page 33: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

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

Page 34: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

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

Page 35: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

ARQUITETURA

Page 36: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

Arquitetura

Page 37: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

Cliente de e-mail

SMS

Calendário

Mapas

Navegador

Contatos e outros.

Aplicações

Page 38: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

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

Framework

Page 39: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

Conjunto de Views que podem ser usados para construir uma aplicação

Possui um conjunto de serviços e sistemas

Page 40: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

Views

Page 41: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

41 Android → Arquitetura → Framework → View

Views (1/3)

Page 42: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

42 Android → Arquitetura → Framework → View

Views (2/3)

Page 43: COMPUTAÇÃO MÓVEL - Iníciobacala/ANDROID/1-Introducao.pdf · • A Mobilidade é a principal característica das Redes Móveis. Ela traz problemas e desafios que até então, não

43 Android → Arquitetura → Framework → View

Views (3/3)