Seminário: Plataformas de Desenvolvimento para Dispositivos Móveis

Slides:



Advertisements
Apresentações semelhantes
DESENVOLVIMENTO DE SISTEMAS PARA INTERNET
Advertisements

Noções de Sistemas Operacionais
Programação para dispositivos móveis
Programação para dispositivos móveis 2º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula.
Programação para dispositivos móveis 2º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula.
Iniciando na plataforma Eclipse
Infra-Estrutura de TI: Hardware e Software
Introdução à Informática
1.
Introdução à organização de computadores e sistemas operacionais
JADE Java Agent DEvelopment Framework
09/03/10 20:13 Claudio de Oliveira – 1/21.
FUNDAMENTOS DE SOFTWARE
Soccer Fan Autores: Ales Oliveira de Carvalho Elzo dos Santos Sousa
Sistemas Embarcados com Linux
Soccer Fan Autores: Ales Oliveira de Carvalho Elzo dos Santos Sousa
Introdução a Programação Orientada a Objetos
O Portal do Estudante de Computação
Seminários Avançados 3 Conceitos Java EE Servidor de aplicação Tomcat
Linguagem de Programação JAVA
ANDROID E A REALIDADE VIRTUAL
Marcelo Korjenioski. Venda crescente de dispositivos com sistema operacional Android em 2011 favorecem o desenvolvimento para a plataforma. Jogos casuais.
Vitor Avancini Pedro Henrique Mognon Douglas Kazumi Germano Stefani
JAVA FX “O próximo passo na evolução do Java como plataforma de desenvolvimento de aplicações clientes ricas.” - Oracle. Alexandre Cechinel Beatriz.
Filipe Ghisi Morgana Leite Thiago Campos Matheus Porto
Luiz Augusto da Silva Alves Professo Luís Henrique Maciel Kosmalski Costa Professor Otto Carlos Muniz Bandeira Duarte Redes 2 Novembro 2010.
ANDROID E A REALIDADE VIRTUAL
Munif Gebara Junior 26/10/2011
Gerencia de Redes Redes de Computadores II
Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento
Padrão DASE para TV Digital ATSC
S ISTEMAS O PERACIONAIS Prof. André Aparecido da Silva.
3/4/2015 Prof. Msc George Cabral Bacharelado em Sistema de Informação Ambientes de Desenvolvimento de Software.
SISTEMAS OPERACIONAIS I
JOSÉ DE ALENCAR IRACEMA
MINI CURSO J2ME Vinícius Maran SEMINÁRIO REGIONAL DE INFORMÁTICA 2008.
Serviço Nacional de Aprendizagem Comercial do Rio Grande do Sul Informação e Comunicação Habilitação Técnica de Nível Médio Técnico em Informática Prof.
Por quê Vocês estão aqui? Por quê? Porque? Porquê? ?
Iracema José de Alencar.
@2011 Éfren L. Souza1 Plataforma Android Uma Visão Geral para Desenvolvedores.
Programação Java em Android
Virtualização de Máquinas Uma visão geral e informal.
PROGRAMAÇÃO DE DISPOSITIVO ANDROID Arte Digital – – ECO/UFRJ.
Programação Orientada a Objetos 2
Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas.
1 MSc Geraldo C. Nhadumbuque (Computação Movel) AULA 04 Mobile OS and Android.
Introdução a Programação Orientada a Objetos
Java Disciplina: Programação II Professora: Mai-Ly Vanessa.
Mini Curso.
DISPOSITIVOS MÓVEIS PARA MARKETING DINÂMICO
Introdução aos Sistemas Operacionais
Elementos de Informática
Colégio Agrícola “José Bonifácio” Redes – Componentes de uma rede Prof. Carlos Eduardo Caraski.
Ambientação de Jogos Plataformas / Sistemas. Suporte ao jogos, seja através do hardware ou do sistema operacional. Resumindo: Plataforma: aparelho físico.
Ciência da Computação I
AMAZON WEB SERVICES AULA DEMONSTRATIVA. AMAZON WEB SERVICES Começou a atuar no ramo de computação em nuvem em Provê serviços de infraestrutura de.
Computação em Nuvem Felipe Carvalho UFES 2009/2 Windows Azure.
Tecnologias para Mobilidade
JBuilder Daniel Almeida, Dayene Mendes, Gustavo Ribeiro, Thiago Dias.
VIRTUALIZAÇÃO - INTRODUÇÃO Na área de TI; O que é sistema legado? É o termo utilizado em referência aos sistemas computacionais de uma organização que,
Engenharia de Sistemas (Lato Sensu) Victor Costa de Alemão Cisneiros Hudson Ramos Aracaju/SE COMPARAÇÃO ENTRE SERVIDORES WEB APACHE HTTP SERVER E NGINX.
Android – uma visão informal José Antonio Borges Inst. Tércio Pacitti da UFRJ.
Android é o sistema operacional de telefone celular que é lançado pela Google. Este sistema operacional é usado por.
GNU/Linux LEONARDO ESTRELA, Nº20, 10ºITM Índice Introdução História Software Livre Download Kernel Linux Ubuntu Unix Conclusão Interface do GNOME, uma.
Capítulo 4 Estrutura do Sistema Operacional
OpenCL Eliane Siegert. Estrutura – Princípio Geral de Funcionamento – Exemplos de Aplicações – Modelo de Programação – Linguagens Suportadas – Exemplos.
INTRODUÇÃO A PROGRAMAÇÃO ANDROID MATEUS MALAQUIAS.
Curso Superior de Tecnologia em Redes de Computadores Projeto Integrador II 1° Seminário de Andamento SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL FACULDADE.
Felipe Andrade Diretor de Tecnologia e Inovação Caso de Estudo: Mobile Linux com Android.
Transcrição da apresentação:

Seminário: Plataformas de Desenvolvimento para Dispositivos Móveis Aluna: Juliana França Santos Aquino juliana@lac.inf.puc-rio.br Departamento de Informática/PUC-Rio INF 2541: Introdução à Computação Móvel Prof. Markus Endler endler@inf.puc-rio.br Rio de Janeiro, 03 de dezembro de 2007.

Roteiro Introdução Plataformas Comparação entre as Plataformas Android Qtopia OpenMoko GPE Phone Edtion Comparação entre as Plataformas Considerações Finais Esse é o roteiro da apresentação: Vou fazer uma introdução sobre redes de sensores sem fio, qual a motivação do trabalho e o objetivo que se pretende alcançar. A seguir, vou apresentar o protocolo Data Funneling para RSSF, que usamos como base para fazer a incorporação do algoritmo de codificação diferenciada. Na seção 4, vou explicar em detalhes o algoritmo de codificação diferenciada e as mudanças necessárias no protocolo Data Funneling para a adição do algoritmo proposto neste trabalho. Finalmente, vou apresentar os resultados experimentais para o algoritmo de codificação diferenciada e Vou apresentar as conclusões e as limitações do algoritmo, bem como fazer sugestões de trabalhos futuros. Introdução Redes de Sensores Sem Fio (RSSF) Motivação Objetivo Algoritmo de Codificação Diferenciada Resultados Experimentais Cenários de Testes Configuração dos Experimentos Testes Considerações Finais Conclusões Limitações Trabalhos Futuros

Introdução Vou apresentar agora uma introdução sobre o tema deste trabalho.

Android Para utilizar o algoritmo de codificação diferenciada que nós propomos, nós precisamos incorporar um algoritmo de roteamento também para que os nós possam fornecer e distribuir o resultado do sensoriamento para os nós da rede. Decidimos por utilizar o protocolo Data Funneling, um protocolo para redes de sensores sem fio. Esse protocolo possui, além de um algoritmo de roteamento, um algoritmo de codificação por ordenação. Nós alteramos esse protolo para incorporarmos o algoritmo de codificação diferenciada.

Histórico do Android Open Handset Alliance > 30 companhias Força do projeto se baseia no conceito de colaboração Associação de um grupo bastante heterogêneo de empresas De operadoras a fabricantes de celulares - Android → Histórico

O que é Android? Máquina virtual: Pilha de softwares para dispositivos móveis: Um sistema operacional Um middleware Conjunto de aplicações Android SDK: Projetos Ferramentas de desenvolvimento Emulador Conjunto de bibliotecas Linguagem de programação: Java Máquina virtual: Dalvik (Kernel GNU/Linux) A plataforma Android é uma pilha de softwares para dispositivos móveis que inclui: Um sistema operacional Um middleware Aplicações Os desenvolvedores podem criar aplicações para a plataforma usando o Android SDK As aplicações são escritas usando a linguagem de programação Java que executam sobre o Dalvik Dalvik é uma é uma máquina virtual customizada projetada para uso embutido que executa no topo de um kernel Linux. Ele inclui: Alguns projetos com código fonte Ferramentas de desenvolvimento Um emulador Conjunto de bibliotecas necessárias para desenvolver uma aplicação Android Android → Definição

Características Framewok: Máquina virtual Dalvik: Permite o reuso e a substituição de componentes Máquina virtual Dalvik: Otimizada para dispositivos móveis Um navegador integrado: Baseado no projeto WebKit (código aberto) Gráficos otimizados: Bibliotecas gráficas 2D Gráficos 3D baseado na especificação OpenGL 1.0 SQLite: Para armazenamento de dados estruturados Suporte para mídias: Aúdio, vídeo, formatos de imagens (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG e GIF) Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE Android → Características

Características Questões dependentes do hardware: Telefonia GSM Bluetooth EDGE 3G WiFi Câmera GPS Compass Acelerômetro Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE Android → Características

Arquitetura

Arquitetura Android → Arquitetura O seguinte diagrama mostra os principais componente do sistema operacional Android. Vou descrever cada um desses componentes nos próximos slides. Android → Arquitetura

Aplicações Cliente de email Programa SMS Calendário Mapas Navegador Contatos Entre outros. Android fornece um conjunto de aplicações que incluem: Um cliente de email Um programa SMS Um calendário Mapas Navegador Contatos Entre outros. Todas as aplicações são escritas usando a linguagem de programação Java. Android → Arquitetura → Aplicações

Framework View Context Providers Resource Manager Notification Manager Ativity Manager Os desenvolvedores tem acesso completo às mesmas APIs do framework usado pelas aplicações core. A arquitetura das aplicações é projetada para simplificar o reuso dos componentes. Qualquer componente pode publicar suas capacidades e quaisquer outras podem então fazer uso daquelas capacidades (sujeito às restrições de segurança reforçadas pelo framework). Este mesmo mecanismo permite aos componentes serem substituídos pelo usuário. O fundamento de todas as aplicações é um conjunto de serviços e sistemas, incluindo: Visões: Um conjunto rico e extensível de Visões que podem ser usadas para construir uma aplicação, incluindo listas, grids, caixas de texto, botões, etc. Provedores de conteúdo: que permitem que as aplicações acessem os dados de outras aplicações (como contatos) ou compartilham seus próprios dados. Gerenciador de recursos: que fornece acesso aos recursos non-code como strings localizadas, gráficos e arquivos de layout. Gerenciador de notificações: que permite que todas as aplicações exibam alertas na barra de status. Gerenciador de atividade: que gerencia o ciclo de vida das aplicações e fornece um common navigation backstack . Android → Arquitetura → Framework

Views (1/3) Android → Arquitetura → Framework → View Aqui pode-se ver exemplos de controles e layouts das aplicações demos distribuídas juntas com o SDK do Android. Android → Arquitetura → Framework → View

Views (2/3) Android → Arquitetura → Framework → View Aqui pode-se ver exemplos de controles e layouts das aplicações demos distribuídas juntas com o SDK do Android. Android → Arquitetura → Framework → View

Views (3/3) Android → Arquitetura → Framework → View Aqui pode-se ver exemplos de controles e layouts das aplicações demos distribuídas juntas com o SDK do Android. Android → Arquitetura → Framework → View

Bibliotecas System C Library Media Libraries Surface Manager LibWebCore SGL 3D Libraries FreeType SQLite Android inclue um conjunto de bibliotecas C/C++ usados pelos vários componentes do sistema Android. Essas capacidades são expostas através do framework do Android. Algumas das bibliotecas do core são listadas abaixo: System C library – uma implementação do libc derivada pelo BSD Media Libraries – baeada em PacketVideo's OpenCORE; as bibliotecas suportam playback e gravação de muitos formatos de audio e de vídeo populares: bem como imagens estáticas incluindo MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG Surface Manager – gerencia o acesso ao subsistema de display e seamlessly composites 2D and 3D graphic layers from multiple applications LibWebCore – que fornece o browser Android browser e uma visão de web embutida SGL - the underlying 2D graphics engine 3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer FreeType - bitmap and vector font rendering SQLite - a powerful and lightweight relational database engine available to all applications Android → Arquitetura → Bibliotecas

Android Runtime Aplicação Android: Próprio processo Própria instância da máquina vitual Dalvik Executa arquivos .dex (ferramenta dx) Toda aplicação Android executa em seu próprio processo, com sua própria instância da máquina virtual Dalvik. Dalvik foi escrito de forma que um dispositivo possa executar múltiplas VMs eficientemente. A máquina virtual Dalvik executa arquivos executa arquivos no formato executável .dex que é otimizado para um mínimo de memória footprint. A máquina virtual é baseada em registro e executa classes compiladas por um compilador da linguagem Java que tem sido transformada no formato .dex pela ferramenta incluída dx. A máquina virtual Dalvik conta com o kernel do Linux para a funcionalidade base como threading e gerenciamento de memória de baixo nível. Android → Arquitetura → Android Runtime

Linux Kernel Serviços: Versão do kernel: 2.6 Segurança O kernel atua como uma camada de abstração entre o hardware e o resto da pilha de software Serviços: Segurança Gerenciamento de memória Gerenciamento de processos Pilha de protocolos de rede Modelo de drives Android → Arquitetura → Linux Kernel

Android SDK Iremos apresentar agora os resultados experimentais para o algoritmo de codificação diferenciada.

Sistemas Operacionais Versão: m3-rc22a (16 de novembro de 2007) Platform Package Size Windows android_sdk_windows_m3-rc22a.zip 59MB Mac OS X (intel) android_sdk_darwin_m3-rc22a.zip 55MB Linux (i386) android_sdk_linux_m3-rc22a.zip A plataforma Android é uma pilha de softwares para dispositivos móveis que inclui: Um sistema operacional Um middleware Aplicações Os desenvolvedores podem criar aplicações para a plataforma usando o Android SDK As aplicações são escritas usando a linguagem de programação Java que executam sobre o Dalvik Dalvik é uma é uma máquina virtual customizada projetada para uso embutido que executa no topo de um kernel Linux. Ele inclui: Alguns projetos com código fonte Ferramentas de desenvolvimento Um emulador Conjunto de bibliotecas necessárias para desenvolver uma aplicação Android Link para instalação: http://code.google.com/android/download.html Android → SDK

Ambientes de Desenvolvimento Eclipse IDE Eclipse 3.2, 3.3 (Europa) Eclipse JDT Plugin (included in most Eclipse IDE packages) JDK 5 ou JDK 6 (JRE sozinho não é suficiente) Não é compatível com o Gnu Compiler for Java (gcj) Android Development Tools plugin (opcional) https://dl-ssl.google.com/android/eclipse/ Outros ambientes de desenvolvimento ou IDEs Apache Ant 1.6.5 ou superiores para Linux e Mac, 1.7 ou superiores para Windows O protocolo Data Funneling possui três fases principais. Configuração: Na fase de configuração, ocorre uma etapa de inundação localizada para encontrar todas as rotas da origem ao destino, ou seja, dos nós sensores ao nó controlador. Essas rotas são calculadas baseada na energia remanescente dos nó sensores. Comunicação dos dados: Na fase de comunicação dos dados, os dados são enviados dos nós sensores em direção ao nó controlador. As rotas escolhidas para a propagação dos daos são escolhidas probabilisticamente de acordo com os custos de energia calculados na fase de configuração. Manutenção: Na fase de manutenção, inundação localizada é realizada do destino às origens para manter todas as rotas consistentes. Iremos apresentar cada uma dessas fases e apontar quais foram as mudanças necessárias para a incorporação do algoritmo de codificação diferenciada. Data Funneling → Fases

Instalação do SDK Após realizar o download do SDK, descompactar o arquivo .zip Por exemplo, android_sdk_windows_m3-rc22a.zip Instalando o plugin para Eclipse (ADT) https://dl-ssl.google.com/android/eclipse/ Data Funneling → Fases

Desafio do Desenvolvedor Android Desafio da Google 10 milhões em prêmios http://code.google.com/android/adc.html Submissões de trabalhos: 02/01/2008 a 03/03/2008 50 melhores trabalhos: $ 25.000,00 Aplicações: Rede social Gerenciamento, edição ou compartilhamento de mídias (fotos) Produtividade e colaboração Jogo Notícias e informações Novas interfaces de usuário Uso de serviços baseados em localização Benefícios humanitários Aplicações em serviço de desenvolvimento econômico global

Para saber mais... Grupos de discussão: http://code.google.com/android/groups.html Licença da Apache Software Foundation http://www.apache.org/licenses/LICENSE-2.0

Considerações Finais

Conclusões Considerações Finais → Conclusões Este trabalho apresenta um algoritmo de codificação diferenciada para redes de sensores sem fio. Em redes com grande quantidade de nós sensoriando o mesmo ambiente, há muitas leituras iguais ou bastante semelhantes, por isso, aproveitando-se do fato da alta redundância de dados, pode-se tentar eliminar essa redundância através do envio de leituras diferenciadas para uma base comum de dados. A vantagem da codificação diferenciada é que esse algoritmo permite a compressão lógica dos dados ainda na fonte, permitindo a concatenação de várias leituras diferenciadas ao longo do caminho em direção ao nó controlador nos pontos de agregação. Os resultados de simulação mostraram que o algoritmo de codificação diferenciada apresentou boas economias de energia para monitorar regiões onde os nós sensores apresentavam leituras similares. Assim, pode-se concluir que, para um bom desempenho do algoritmo de codificação diferenciada, é importante que o algoritmo de roteamento utilize informações das leituras reportadas pelos nós sensores para dividir a área a ser monitorada em regiões que agrupam nós sensores com leituras similares. O algoritmo também permite diferentes taxas de compressão para os nós sensores de uma mesma região. Em cenários onde a região possui nós sensores reportando diferentes leituras, o desempenho do algoritmo de codificação diferenciada diminui, em virtude da base comum tentar contemplar as diferentes leituras dos nós sensores. A aplicação pode disparar um evento para tentar a redefinição dos agrupamentos de nós sensores em outras regiões que agrupem nós com leituras similares. Em regiões com leituras similares, onde o desvio-padrão das leituras é pequeno, o algoritmo mostrou-se eficiente. O algoritmo de codificação diferenciada também pode ser usado em combinação com outras técnicas para redução de dados e a reconstrução da leitura de um nó sensor pode ser realizada em qualquer ponto de agregação, e não somente pelos nós bordas e controladores. Considerações Finais → Conclusões

Obrigada!!! Ponte Metálica, Fortaleza/CE “Verdes mares bravios de minha terra natal, onde canta a jandaia nas frondes da carnaúba; verdes mares, que brilhais como líquida esmeralda aos raios do sol nascente, perlongando as alvas praias ensombradas de coqueiros. Serenai, verdes mares e alisai docemente a vaga impetuosa, para que o barco do aventureiro manso resvale à flor das águas. ” (Trecho do romance Iracema do escritor cearense José de Alencar, 1865). Obrigada!!!