Post on 22-Apr-2015
description
114/09/11 ENUCOMP - 2011
Apresentação
2
Cândido Sales •Estudante do IFPI;•Membro do LIMS;
@candidosalescandidosg@gmail.com
Lucas Aquiles•Estudante do IFPI;
@lucas_aquileslucasaquiles@gmail.com
Apresentação
14/09/11 ENUCOMP - 2011
Introdução a Computação móvelIntrodução a Computação móvel
314/09/11 ENUCOMP - 2011
4
Computação MóvelRealizada em dispositivos portáteis que sejam
capazes de acessar uma rede sem fio.
Por usuários móveis (com diferentes velocidades)
Acesso à informação a qualquer lugar, a qualquer momento
Termos relacionados:
– Computação Pervasiva
– Computação Ubíqua
14/09/11 ENUCOMP - 2011
Dos Mainsframes à computação móvel
14/09/11 ENUCOMP - 2011
Computação Pervasiva
Computação Pervasiva: acesso conveniente a informações relevantes e a habilidade de realizar ações sobre as mesmas quando e onde for necessário (IBM).
“Espalhada por todos os lugares”
14/09/11 ENUCOMP - 2011
Computação Pervasiva
Projeto Everywhere Display (IBM)
– Qualquer superfície pode se tornar em uma projeção do tipo “touch screen”
14/09/11 ENUCOMP - 2011
Computação Ubíqua
Computação Ubíqua:
– onipresença da informática no cotidiano das pessoas (Wikipédia)
– ... tornam-se parte da nossa vida de forma que não os percebemos mais (Mark Weiser)
– Baseia-se na detecção de gestos, movimentos, fala, movimentação dos olhos...
14/09/11 ENUCOMP - 2011
Computação Ubíqua
Ex: Casa do “futuro”:
• Sistema automático de iluminação
• Sistemas de extinção e prevenção de incêndios
• Monitoramento de saúde dos ocupantes da casa
• Geladeira que perceba variações de estoque e validade dos produtos
• Celular que envia dados de “coletados” a uma central médica
14/09/11 ENUCOMP - 2011
14/09/11 ENUCOMP - 2011
Computação Ubíqua
Juntando tudo
14/09/11 ENUCOMP - 2011
Princípios da Computação Móvel
Descentralização
Diversificação
Conectividade
Simplicidade
14/09/11 ENUCOMP - 2011
Princípio da Descentralização
Um passo além da descentralização dos sistemas distribuídos;
Uma grande variedade de pequenos dispositivos cooperam estabelecendo uma rede dinâmica de relacionamentos;
A habilidade de utilizar aplicações e informações em dispositivos móveis gera a necessidade de sincronização de atualizações de dados com sistemas servidores e outros dispositivos.
14/09/11 ENUCOMP - 2011
Princípio da Diversificação
Mesma informação em diferentes “modelos”
14/09/11 ENUCOMP - 2011
Princípio da Conectividade
Uma grande variedade de tecnologias deve ser atendida:
– redes celulares, WLANs, Bluetooth, IrDA, WiMax, comunicação via satélite, etc. . .
Não basta apenas conectar os dispositivos:
– Troca de dados
– Descoberta de serviços
– Delegação de tarefas
14/09/11 ENUCOMP - 2011
Princípio da Simplicidade
Computadores de uso geral: configuração complexa
“Computadores” móveis: mais específicos e mais simples em configuração
Simples não significa primitivo:– telas touch-screen,– reconhecimento de escrita,– reconhecimento de voz– etc
14/09/11 ENUCOMP - 2011
Requisitos de Aplicação• Infra-estrutura:
- Cobertura(indoor, outdoor, acesso a alta/baixa velocidade)
- Qualidade da comunicação
- Confiabilidade e estabilidade da comunicação
- Segurança
• Dispositivo Móvel
– Forma de interação (grafico, textual, voz)
– Capacidade de identificar localização
– Capacidade de processamento e armazenamento locais
• Serviços Middleware
– Suporte à criptografia e autenticação
– QoS (Quality of Service)
– Descoberta e adaptação a novos serviços e recursos
14/09/11 ENUCOMP - 2011
Aceitação das Tecnologias
Tempo para atingir 1 milhão de usuários:
– TV preto-banco: 20 anos
– TV em cores: 9 anos
– VCR: 8 anos
– PC: 6 anos
– Celular: 2 anos e meio
Dos 128 milhões 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 móveis ultrapassou os acessos convencionais (PC e Browser) desde meados de 2002.
14/09/11 ENUCOMP - 2011
Algumas aplicações de computação móvel
Négocios diversos: m-commerce e m-business
• Acesso à Internet por viajantes: transferência de arquivos, Web, acesso remoto…;
• Comércio: vendedores ambulantes;
• Tratamento Médico emergencial: transmissão do prontuário de/para ambulância (ou local do acidente);
• Segurança: consulta e obtenção de ficha criminal;
• Seguradoras: avaliação de sinistro;
• Serviços de resgate: coordenação das atividades de resgate;
• Aplicações Militares: coordenação de ações;
Gerenciamento de frota e Gerenciamento de bens;
14/09/11 ENUCOMP - 2011
Serviços baseados em localização
Serviços de emergência: usuários entram em contato com uma central (E911) e é localizado;
• Informações de tráfego;
• Navegação: Como ir do ponto A ao ponto B?
• Gerenciamento de frota;
• Gerenciamento de bens;
• Publicidade sem fio: usuários podem subscrever serviços que os notifiquem a respeito de certos produtos quando adentrarem uma dada região;
• Serviços de busca: restaurantes, postos de gasolina, hotéis próximos;
• Localização automática de veículos;
• Mapas;
• Informações de trânsito;
• Jogos.
14/09/11 ENUCOMP - 2011
Impacto da Computação MóvelRepresenta um novo paradigma computacional,ampliando os
conceitos da computação distribuída
– Áreas com diversas implicações:
Redes de Computadores
Sistemas Operacionais
Banco de Dados
Ambientes de Programação
etc. . .
Mudanças sociais?
14/09/11 ENUCOMP - 2011
Difusão da Tecnologia celular
14/09/11 ENUCOMP - 2011
14/09/11 ENUCOMP - 2011
Difusão da Tecnologia celular
Difusão da Tecnologia celular
14/09/11 ENUCOMP - 2011
14/09/11 ENUCOMP - 2011
Difusão da Tecnologia celular
Difusão da Tecnologia celular
14/09/11 ENUCOMP - 2011
14/09/11 ENUCOMP - 2011
Difusão da Tecnologia celular
14/09/11 ENUCOMP - 2011
Difusão da Tecnologia celular
14/09/11 ENUCOMP - 2011
Difusão da Tecnologia celular
14/09/11 ENUCOMP - 2011
Difusão da Tecnologia celular
14/09/11 ENUCOMP - 2011
Difusão da Tecnologia celular
Visão GeralVisão Geral
III SACIC - 2011 3214/09/11 ENUCOMP - 2011
Roteiro
1. Mundo mobile
2. O que é o Android;
3. Open Handset Alliance;
4. Android e os competidores;
5. Por que Linux no Android?;
6. Dalvik Virtual Machine;
7. Instalando as ferramentas do Android;
8. Projeto “Meu HelloWord”
9. Componentes;
14/09/11 ENUCOMP - 2011
Mundo mobile
Mercado de celulares
Usuários querem mais recursos em seus dispositivos
Aplicações móveis no mundo coorporativo
Necessidade de plataformas mais modernas para desenvolvimento de aplicações no auxilio de seus negócios e lucros.
14/09/11 ENUCOMP - 2011
O que é Android?
Sistema operacional baseado no kernel do Linux;
Possui uma implementação da JVM – Dalvik;
Código aberto e livre;Plataforma flexível e poderosíssima de
desenvolvimentoCustomizavel
14/09/11 ENUCOMP - 2011
Android e os competidores
IPhone
JME
Symbiam
BlackBerry
WindowsMobile
14/09/11 ENUCOMP - 2011
Porque Linux no android?
Construída sob o kernel 2.6 do Linux
Gerencia memória e processos
Abstração de hardware
Usuários não vêem o Linux e seus programas não fazem chamas diretas a ele.
Suporte a gráficos 3D, especificação 1.0 da OpenGL ES, possível criar jogso com ótima qualidade.
14/09/11 ENUCOMP - 2011
Open Handset Alliance
União entre grandes da telefonia liderados pelo Google (OHA – Open Handset Alliance)
Definir uma plataforma única e abertaPlataforma moderna e flexível para
desenvolvimento de aplicaçõesFabricantes, Usuários e
Desenvolvedores se beneficiam com o grupo
14/09/11 ENUCOMP - 2011
Dalvik Virtual Machine
JVM ótimizada para execução de dispositivos móveis – Dalvik
Bytecodes (arquivo .class) são convertidos em arquivo .dex (Dalvik Executable) – Aplicação android compilada
Compactação dos arquivos .dex e recursos como imagens em arquivos .apk (Android Package File) – Aplicação Final
14/09/11 ENUCOMP - 2011
Instalando as ferramentas do Android
Requisitos1.Java SDK2.Android SDK3.Eclipse IDE4.Plugin ADT
14/09/11 ENUCOMP - 2011
Configuração do ambiente
1. Escolher a versãodo JDK
2.Aceite os termos
3.Escolher a versãopara seu S.O
14/09/11 ENUCOMP - 2011
Configuração do ambiente
Instalação do JDK no Linux (Ubuntu)Com o comando apt-get:sudo apt-get install openjdk-6-jdk && sudo apt-get
install sun-java6-jdk
Após a instalação entre via console e digite: java –v
A saída deve ser a versão do java instalado.
14/09/11 ENUCOMP - 2011
Instalação do Android SDK
1. no site www.android.com escolher a opção developers
14/09/11 ENUCOMP - 2011
Instalação do Android SDK
2. Escolha a opção SDK
3. Baixe o android SDK de acordo com o seu S.O
A versão atual é a 3.2 (para tablet) e 2.3.3 (para smartphone)14/09/11 ENUCOMP - 2011
Instalação 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
Instalação do Android SDK
irá aparacer o Android SDK e o AVD (android vitual device) Manager.
14/09/11 ENUCOMP - 2011
Instalação do Android SDK
Vá em “Available Packages”, marque a opção “AndroidRepository” e clique em “Install Selected”
14/09/11 ENUCOMP - 2011
Instalação do Android SDK
Uma lista com todos os componentes disponíveis, incluindo documentação, plataformas, add-on, bibliotecas será exibida.
14/09/11 ENUCOMP - 2011
Instalação do Android SDK
Caso ocorra algum erro de HTTPS SSL, vá em "settings“, marque a opção "Force https:// sources to be fetched using http://" e clique em "Save & Apply".
14/09/11 ENUCOMP - 2011
Instalação do Android SDK
Aceite todos e clique em “install”
14/09/11 ENUCOMP - 2011
Instalação e Configuração do Eclipse IDE
1. Acesse o site www.eclipse.org e vá na sessão “Downlods”
2. Escolha a versão do Eclipse IDE for Java Developers
14/09/11 ENUCOMP - 2011
Instalação e Configuração do Eclipse IDE
Faça o download
14/09/11 ENUCOMP - 2011
Instalação e Configuração do Eclipse IDE
Após o download localize o arquivo , descompacte-o e execute o arquivo “eclipse.exe”
No ubunto é apenas “eclipse”
14/09/11 ENUCOMP - 2011
Instalação do plugin ADT
Inicie o eclipse e vá em “help”, “install new software”
14/09/11 ENUCOMP - 2011
Instalação 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
Instalação do plugin ADT
Selecione “ADT Plugin” na lista de sites, marque a opção “Developers Tools” e clique em “next”.
14/09/11 ENUCOMP - 2011
Instalação do plugin ADT
Irá aparecer uma lista com todos os item a serem instalados.
Clique em "Next" novamente. Na próxima tela, escolha a opção "I accept the the terms of the licence agreements" e clique em 'Finish'.
Após o processo de instação do plugin o Eclipse irá reiniciar.
14/09/11 ENUCOMP - 2011
Instalação do plugin ADT
Quando o Eclipse IDE iniciar uma mensagem de erro irá aparecer, porque a IDE não 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 informações 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 também 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 aplicação 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 diretórios como a mostrada abaixo será criada
14/09/11 ENUCOMP - 2011
Projeto “Meu HelloWord”
Para executar clique com o botão direito em cima do projeto e escolha “run as” > “android application”
14/09/11 ENUCOMP - 2011
Projeto “Meu HelloWord”
14/09/11 ENUCOMP - 2011
ActivityActivity
III SACIC - 2011 6714/09/11 ENUCOMP - 2011
ActivityUma 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 aplicação
– Composta por vários componentes representados pela classe andoid.view.View (botões, checkboxes, imagens)
– Controla a passagem de parâmetros para outra tela
– Define métodos para tratar eventos dos componentes
14/09/11 ENUCOMP - 2011
Activity
14/09/11 ENUCOMP - 2011
View
São componentes simples (botões, checkboxes, imagens) ou componentes compostos
– Atuam como gerenciadores de layout
– Podem conter várias views filhas (outro componentes)
O arquivo main.xml é um arquivo de layout padrão
Vários layouts podemser definidos
14/09/11 ENUCOMP - 2011
Setando a View Principal
O médoto setContentView faz a ligação entre a activity e a view
A view passada como parâmetro 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 aplicação e semelhante ao web.xml de aplicações WEB
14/09/11 ENUCOMP - 2011
AndroidManifest.xml
As Activities devem ser definidas no arquivo
Para que o usuário possa interagir, pelo menosuma Activity deve ser definida no arquivo
A configuração de uma Activity como ponto de partida para a aplicação é ilustrada abaixo:
14/09/11 ENUCOMP - 2011
Criação de interface via Java
Pode-se definir uma interface visual via codificação java
14/09/11 ENUCOMP - 2011
Referenciando componentes
Sempre que possível, atribua um ID aos componentes
14/09/11 ENUCOMP - 2011
Referenciando componentes
Adicionar IDs aos componentes permitem acesso via codificação
14/09/11 ENUCOMP - 2011
Tratando o clique de um botão
Para tratar eventos de um botão, deve-se:
– Obter o componente pelo ID
– Instanciar um listener
– Setar o listener no botão
– Implementar o método 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 métodos estáticos:
14/09/11 ENUCOMP - 2011
ComponentesComponentes
III SACIC - 2011 8214/09/11 ENUCOMP - 2011
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 eventos11.Apresentação de exemplos
14/09/11 ENUCOMP - 2011
ScrollView
A classe android.widget.ScrollView deve ser utilizada para telas que contêm muitos elementos e nas quais seja necessário fazer a rolagem da tela.Exemplo
exemplo_scrollview.xml ExemploScrollView
14/09/11 ENUCOMP - 2011
MapView
Para visualização de mapas;Para utilizar um MapView, basta definir a tag
<com.google.android.maps.MapView> e informar no atributo android:apiKey uma chave de autenticação válida 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 necessário.Necessita da classe android.app.ListActivity,
uma acitivy especial para exibir uma lista de itens na vertical.
Exemplo Prático! Pág. 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 aplicação.Exemplo
Pág 253
14/09/11 ENUCOMP - 2011
Autocomplete
Um recurso muito usado em aplicações web
São campos de texto que podem completar automaticamente o texto que o usuário está digitando.
Para usar o AutoCompleteTextView é necessário chamar o método setAdapter(adaptador) e informar sua implementação de ListAdapter.
Exemplo Pág 221
14/09/11 ENUCOMP - 2011
Tabs
• Conceitos1. TabHost – Componente que agrupa os
butões e o contéudo
1. TabWidget – Grupa em linha os butões que possuem labels e ícones (opcional)
1. FrameLayout – Agrupa o conteúdo 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 método 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 início da aplicação
14/09/11 ENUCOMP - 2011
Buttons
As classes android.widget.Button e android.widget.ImageButton são utilizadas para criar um botão na tela.A diferença é que a classe ImageButton
permite usar uma imagem para desenhar no botão.
Exemplo Pág 223
14/09/11 ENUCOMP - 2011
“CSS”
Podemos utilizar os arquivos XML como extensões de estilos que podem ser reutilizados em vários layouts, sem necessitar a repetição de código.Exemplo
Guia Turistico
14/09/11 ENUCOMP - 2011
Ciclo de vidaCiclo de vida
III SACIC - 2011 10114/09/11 ENUCOMP - 2011
17/05/11 III SACIC - 2011
Ciclo de vida de uma activity
14/09/11 ENUCOMP - 2011
17/05/11 III SACIC - 2011
onCreate:
– Obrigatório e chamado uma única vez.
– Deve-se setar a view
• onStart: é chamado quando uma activity está ficando visível e já tem uma view definida
• onRestart: chamado quando uma activity foi parada temporariamente e está retornando à execução
• onResume:
– Quando uma activity está executando.
– Pode ser chamada também para recuperação de dados quando foi interrompida e volta a execução
Ciclo de vida de uma activity
14/09/11 ENUCOMP - 2011
17/05/11 III SACIC - 2011
onPause: chamado quando a activity está sendo tirada do topo da execução. Usado para salvar o estado da aplicação
onStop:
– A aplicação não está mais visível 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 execução
onDestroy: encerra literalmente a activity
Ciclo de vida de uma activity
14/09/11 ENUCOMP - 2011
Activities x IntentsActivities x Intents
III SACIC - 2011 10514/09/11 ENUCOMP - 2011
Activities x Intents
Activities são as "telas"Uma aplicação pode ter várias activities:– geralmente independentes,– contudo elas podem precisar se cooperar e
trocar dados entre siNuma aplicação tradicional, uma activity deve
ser definida como "main" e será executada ao rodar a aplicação
Indo de uma activity para outra é possível 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 aplicação para o S.O.
• Solicita que algo seja realizado e serve para integrar aplicações
• Ex:
– Chamar outra tela (já visto)
– Solicitar que o S.O. ligue para um número;
– Abrir o browser em um determinado endereço
– Exibir algum endereço, localização ou rota num mapa
– Executar processamento em segundo plano
– Enviar mensagem para outras aplicações realizarem tarefas específicas
14/09/11 ENUCOMP - 2011
Intents
São chamadas pelos métodos:
startActivity(intent) = Executa uma activity
starActivityForResult(intent) = Executa uma activity quepode retornar valores
startService(intent) or bindService(intent, …) = Inicia ou se comunica comum serviço de segundo plano
sendBroadcast(intent) = Envia uma intent que podeser "capturada" por serviçosespecíficos
14/09/11 ENUCOMP - 2011
Alguns tipos de Intents pré-definidos
14/09/11 ENUCOMP - 2011
Permissões
Algumas intents necessitam de permissão explicita para executar
Deve-se adicionar as permissões no arquivo AndroidManifest.xml
14/09/11 ENUCOMP - 2011
Usando Intents pré-definidas
14/09/11 ENUCOMP - 2011
Algumas permissões
Permissão para executar navegação: INTERNET
Ligações telefônicas: 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);
...
É necessária a permissão INTERNET
14/09/11 ENUCOMP - 2011