apresentação trabalho de conclusão de curso - ciência da computação

54
Trabalho de Conclusão de Curso Acadêmico: Thiago Marinho de Oliveira Thiago Marinho de Oliveira Orientador: Carlos Eduardo Cayres Carlos Eduardo Cayres Uniderp - 2012

Upload: thiago-marinho

Post on 18-Nov-2014

946 views

Category:

Technology


0 download

DESCRIPTION

DESENVOLVIMENTO DE APLICATIVO PARA DISPOSITIVO MÓVEL COM FINALIDADE DE REALIZAR O MONITORAMENTO EM TEMPO REAL DO ÔNIBUS DE TRANSPORTE COLETIVO URBANO UTILIZANDO A PLATAFORMA JAVA E SISTEMA OPERACIONAL ANDROID

TRANSCRIPT

Page 1: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Trabalho de Conclusão de Curso

Acadêmico: Thiago Marinho de OliveiraThiago Marinho de OliveiraOrientador: Carlos Eduardo CayresCarlos Eduardo Cayres

Uniderp - 2012

Page 2: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Tema

DESENVOLVIMENTO DE APLICATIVO PARA DISPOSITIVO MÓVEL COM FINALIDADE DE REALIZAR O MONITORAMENTO EM TEMPO REAL DO ÔNIBUS DE

TRANSPORTE COLETIVO URBANO UTILIZANDO A PLATAFORMA JAVA E SISTEMA OPERACIONAL

ANDROID

Page 3: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

O objetivo deste estudo foi desenvolver um aplicativo que pudesse exibir na tela do smartphone a localização exata e em tempo real do ônibus de transporte coletivo urbano. Para desenvolver esse projeto foi necessário a utilização da linguagem de programação Java, IDE eclipse, SDK Android, API do Google Maps para exibir o mapa e o ponto geográfico da localização do ônibus. Foram necessários o desenvolvimento de três sistemas, sendo que dois foram desenvolvidos para executarem no smartphone e um para executar em uma máquina servidor, esses três sistemas formaram uma estrutura, onde o aplicativo BusCg é o cliente, BusCgSender é o fornecedor, e o ServerBus é o WebService e servidor de banco de dados, o qual armazena os dados enviados pelo BusCgSender e fornece ao BusCg quando solicitado pelo mesmo. Ao final do projeto, o BusCgSender enviou sua coordenada geográfica para o ServerBus e o aplicativo BusCg consumiu essas informações renderizando na tela do smarphone o mapa, a rota e o ponto de latitude e longitude do ônibus que foi pesquisado, foi observado em testes que posição geográfica foi exibida corretamente e o tempo foi próximo do tempo instantaneo. Portanto esse projeto além de ter provado a viabilidade de implementação, pode comprovar a possibilidade de implantação bem como de melhorias futuras como por exemplo interface com usuário, serviços e outras funcionalidades que bem atende a população.

TRANSCRICÃO DO RESUMO

Page 4: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Introdução● A plataforma a linguagem Java consolidada no mercado.

● Google com seus parceiros da Open Handset Alliance (OHA) desenvolveram o Android

● O sistema operacional Android, está presente em vários modelos de aparelhos celulares, é um dos

sistemas operacionais mais vendidos no mercado, pois várias empresas tem em seus dispositivos

móveis o Android como sistema operacional

● Recursos como mapas do Google Maps

● Atualmente os usuários de transporte coletivo urbano tem apenas uma informação estática da hora que

o ônibus está previsto a passar no bairro e no centro da cidade

● Grandes capitais do Brasil, tem alguma solução para isso, por exemplo a capital de São Paulo-SP

● O objetivo deste trabalho é mostrar a possibilidade de fazer uso das tecnologias atuais, para o

monitoramento em tempo real, pelos usuários, dos ônibus de transporte coletivo urbano que circulam na

cidade, através de dispositivos móveis.

● Com este trabalho a sociedade campograndense pode ter uma solução para obter informações precisas

da localidade do ônibus que irá pegar. Os acadêmicos terão como base um sistema complexo, atual e

interessante para estudar, a comunidade de desenvolvimento pode utilizar, adaptar e melhorar o projeto,

ou até mesmo a partir deste desenvolver outros.

Page 5: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

ABORDAGEM CONCEITUAL

&

TÉCNICA DE TECNOLOGIAS ADOTADAS

Page 6: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

ABORDAGEM CONCEITUAL E TÉCNICA

● Sistema Operacional

● Android

● GPS

● Banco de Dados

● Linguagem de programação Java

Page 7: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

SISTEMA OPERACIONAL

Sistema operacional é um programa que atua como intermediário entre o usuário e o hardware de um computador. O propósito de um sistema operacional é fornecer um ambiente no qual o usuário possa executar programas. O principal objetivo de um sistema operacional é portanto tornar o uso do sistema de computação conveniente. Uma meta secundário é usar o hardware do computador de forma eficiente. [1]

Page 8: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Sistema Operacional Android

● Surgimento do Android

● Afinal de contas o que é Android?

● Open Handset Alliance

● Características do Android

● Versões

● Diagrama de Arquitetura

● Considerações finais sobre o SO Android

Page 9: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Surgimento do Android

Em julho de 2005 a Google adquiriu a Android Inc, uma pequena empresa em Palo Alto, California, USA. No tempo da Google conduzido por Andy Rubin, foi desenvolvida uma plataforma de telefone móvel baseado em Linux, com o objetivo de ser uma plataforma flexível, aberta e de fácil migração para os fabricantes.

Page 10: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

O que é Android

Android é um sistema operacional móvel que roda sobre o núcleo Linux, embora por enquanto a sua versão do núcleo Linux divirja da versão oficial. Foi inicialmente desenvolvido pelo Google e posteriormente pela Open Handset Alliance, mas a Google é a responsável pela gerência do produto e engenharia de processos. O Android permite aos desenvolvedores escreverem software na linguagem de programação Java controlando o dispositivo via bibliotecas desenvolvidas pela Google. Em Janeiro de 2012, existiam mais de 400 mil aplicações disponíveis para Android

Page 11: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Open Handset Alliance

http://www.openhandsetalliance.com/oha_members.html

Open Handset Alliance (OHA) é uma aliança de diversas empresas em diversos ramos da tecnologia com a intenção de criar padrões abertos para telefonia móvel. Entre as empresas participantes estão Google como a líder, HTC, Dell, Intel, Motorola, Qualcomm, Texas Instruments, Samsung, LG, T-Mobile e Nvidia.

Page 12: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Características do Android

a) Handset layouts

A plataforma é adaptada tanto para dispositivos VGA maiores, gráficos 2D, bibliotecas gráficas 3D baseadas em OpenGL ES especificação 2.0 e os layouts mais tradicionais de smartphones.

b) Armazenamento

O SGBD SQLite é utilizado para armazenamento de dados.

c) Mensagens

Tanto SMS quanto MMS são formas disponíveis de envio de mensagens.

d) Navegador

O navegador disponível no sistema é baseado no framework de Código aberto conhecido como WebKit.

Page 13: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Características do Android

e) Máquina virtual Dalvik

Aplicações escritas em Java são compiladas em bytecodes Dalvik e executadas usando a máquina virtual Dalvik, que é uma máquina virtual especializada desenvolvida para uso em dispositivos móveis, o que permite que programas sejam distribuídos em formato binário (bytecode) e possam ser executados em qualquer dispositivo Android, independentemente do processador utilizado. Apesar das aplicações Android serem escritas na linguagem Java, ela não é uma máquina virtual Java, já que não executa bytecode JVM.

f) Multimídia

O sistema irá suportar formatos de áudio e vídeo como: MPEG-4, H.264, MP3, e AAC.

g) Suporte Adicional de Hardware

O Android é totalmente capaz de fazer uso de câmeras de vídeo, tela sensível ao toque, GPS, acelerômetros, e aceleração de gráficos 3D.

h) Ambiente de desenvolvimento (SDK)

Inclui um emulador, ferramentas para debugging, memória e análise de performance. O Eclipse (IDE) (atualmente 3.4 ou 3.5) poderá ser utilizado através do plugin Android Develpment Tools (ADT).

Page 14: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Versões

● As diferentes versões de Android têm desde a versão 1.5, nomes de sobremesas ou bolos (em inglês) e seguem uma lógica alfabética:

1.5: Cupcake (Abril de 2009, com a última revisão oficial a maio de 2010)

1.6: Donut (Setembro de 2009, com a ultima revisão oficial a maio de 2010)

2.1: Eclair (Janeiro de 2010, com a última revisão oficial a maio de 2010)

2.2: FroYo (Frozen Yogourt - Maio de 2010, com a última revisão oficial a julho de 2011)

2.3-2.4: Gingerbread (versão atual lançada a 6 de dezembro de 2010)

3.0-3.2: Honeycomb (Lançada especialmente para tablets em Janeiro de 2011)

4.0: Ice Cream Sandwich (Anunciada oficialmente em 19 de outubro de 2011).

+ Nova versão: Jelly Bean (Android 4.2) - http://www.android.com/whatsnew/

Page 15: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Arquitetura do Android

Page 16: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Considerações finais sobre o SO Android

Android é baseado no kernel (núcleo) do Linux, portanto esse sistema operacional

denominado Android é livre, grátis, de código aberto, a Google junto com outras

empresas da OHA desenvolveram o sistema operacional. Quando usamos o

smartphone ou o tablet com Android estamos usando um dispostivo móvel

inteligente, multitarefa, que tem uma interface gráfica rica (cheias de efeito e muito

bonita). SO Android gerência os recursos como memória, CPU, placa de vídeo, som,

3G, receptor gps, wireless, touch screen (toque na tela).

Dispositivo móvel com Android é consagrado no mercado, pois, é barato,

customizável, com uma excelente aparência, de fácil utilização, excelente suporte na

comunindade Android através de rede sociais, fóruns e grupos de discussão e

grandes empresas como Samsung, Sony Ericcson, Motorola vendem seus aparelhos

com esse sistema operacional e fornecem suporte.

Page 17: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

GPS (Global Positioning System)

GPS é uma sigla para Global Positioning System, em portugues Sistema Global de Posicionamento.

Quando as pessoas falam sobre "um GPS", estão normalmente se referindo a um Receptor GPS. O Sistema de Posicionamento Global (GPS) é uma verdadeira constelação de 27 satélites em órbita ao redor da Terra (24 em operação e 3 extras caso haja falha nos outros). O exército americano desenvolveu e implementou essa rede de satélites como um sistema de navegação militar, mas logo a disponibilizou às demais pessoas.

Page 18: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Como funciona o GPS

Trilateração

É um modelo que pode ser utilizado quando são conhecidas as posições de três referências e as distâncias destas referências até o ponto que se deseja estimar. As referências são representadas graficamente por círculos centrados nas respectivas posições e com raio igual à distância até o ponto que se deseja calcular. O resultado está na intersecção de três círculos.

Page 19: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

BANCO DE DADOS

“É uma coleção de dados inter-relacionados, representando informações sobre

um domínio específico. Exemplos: Lista Telefônica, Fichas do acervo de uma

biblioteca” [5].

2.4.2 O que é um sistema de banco de dados?

“Consiste em uma coleção de dados, inter-relacionados e uma coleção de

programas para prover o acesso a esses dados. O objetivo principal de um sistema

de banco de dados é possibilitar um ambiente que seja adequado e eficiente para

uso na recuperação e armazenamento de informações”. [6]

Page 20: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

JAVA

● Java além de uma linguagem de programação é considerado uma plataforma de

desenvolvimento de software.

● A plataforma Java, foi desenvolvida pela Sun Microsystems, que recentemente foi

comprada pela Oracle. Java possui mais de 6,5 milhões de desenvolvedores de software.

É utilizado em todos os principais segmentos da indústria, estando presente em muitos

dispositivos, como computador, TV, redes, celulares. [3 – traduzido e adaptado]

● Java é versátil, eficiente, portável, seguro, é uma tecnologia que está em todo o lugar,

projetada originalmente para Internet, é onde o java encontra-se presente. A tecnologia

Java está presente em 4,5 bilhões de dispositivos, incluindo Mais de 800 milhões de PCs,

2,1 bilhões de telefones celulares, 3,5 bilhões de cartões inteligentes, além de

impressoras, jogos, webcams, GPS, dispositivos médicos, guichês de pagamentos, entre

outros [3 – traduzido e adaptado].

Page 21: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

JAVA

O que podemos fazer com Java?

- Criar um software em uma plataforma e executá-lo em praticamente qualquer outra.

- Criar programas para execução em navegadores e serviços da Web

- Desenvolver aplicativos no lado do servidor usados tanto em fóruns, lojas e pesquisas on-line,

como no processamento de formulários HTML, e muito mais.

- Combinar aplicativos ou serviços usando a linguagem Java para criar aplicativos ou serviços

altamente personalizados.

- Criar aplicativos potentes e eficazes para telefones celulares, processadores remotos, produtos

de consumo de baixo custo e praticamente qualquer outro dispositivo com tecnologia digital.

- Desenvolver aplicativos para Android e hospedá-los no Google Play (com um custo para o

desenvolvedor), onde o usuário do dispositivo móvel com Android pode efetuar o download de forma

simples e utilizar o aplicativo.

Page 22: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

FERRAMENTAS DE DESENVOLVIMENTO, ESTRUTURA

BÁSICA DO PROJETO, FRAMEWORK, CLASSES E

INTERFACES DO SDK ANDROID, OBTENDO A

LOCALIZAÇÃO DO SMARTPHONE.

FERRAMENTAS DE DESENVOLVIMENTO

Page 23: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Principais Ferramentas Utilizadas

Para desenvolver o projeto foram utilizados as seguintes ferramentas:

a. IDE (Ambiente Integrado para o Desenvolvimento de Software) chamado Eclipse versão

3.7.2 (Indigo) (http://www.eclipse.org).

b. JDK (Kit de desenvolvimento Java) e JRE (Ambiente de execução Java) na versão 6

http://www.oracle.com/br/technologies/java/index.html

c. SDK (Kit de desenvolvimento de software) do Android, disponível em

http://developer.android.com/sdk/index.html

d. Plugin ADT (Android Development Tools) para Eclipse

http://developer.android.com/sdk/eclipse-adt.html.

Page 24: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Conceitos e Classes importantes do Android

Toda documentação oficial das classes e interfaces

que foram utilizadas no projeto encontram-se em inglês

no site: http://developer.android.com/index.html

Page 25: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Classes do Android

Action (Ação)

Action ou Ação em português é a descrição de algo que uma Intent

(Intenção) quer que seja feito. Uma action é representada por uma string,

que tem um valor definido pelo sitema Android ou por quaisquer aplicações.

Exemplo de Action: android.intent.action.VIEW para acesar uma

URL da Web ou com.example.rumbler.SHAKE_PHONE para fazer com

que o celular vibre. Action é uma cadeia de caracteres (String) que

representa uma Intent. Action é Intent disparada

Page 26: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Classes do Android

Activity (Atividade)

É uma simples tela da aplicação, com suporte a código

Java, é uma classe derivada de Activity. Conceitualmente, uma

Activity é representada visualmente em uma janela de tela

cheia, que pode receber e manipular eventos com a Interface

do Usuário (UI) e executar tarefas complexas.

Page 27: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Classes do Android

Ciclo de Vida Ciclo de Vida ActivityActivity

Page 28: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Ciclo de Vida Activity

http://developer.android.com/training/basics/activity-lifecycle/starting.html#lifecycle-states

Page 29: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Classes do Androidimport android.app.Activity;import android.app.Activity;import android.os.Bundle;import android.os.Bundle;

public class TelaApp extends Activity {public class TelaApp extends Activity { /** Chamado quando a activity é criada pela primeira vez *//** Chamado quando a activity é criada pela primeira vez */ @Override@Override public void onCreate(Bundle savedInstanceState) {public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);super.onCreate(savedInstanceState); setContentView(R.layout.main);setContentView(R.layout.main); }} @Override@Override protected void onStart() {protected void onStart() { super.onStart();super.onStart(); }} @Override@Override protected void onResume() {protected void onResume() { super.onResume();super.onResume(); }} @Override@Override protected void onPause() {protected void onPause() { super.onPause();super.onPause(); }} @Override@Override protected void onStop() {protected void onStop() { super.onStop();super.onStop(); }} @Override@Override protected void onRestart() {protected void onRestart() { super.onRestart();super.onRestart(); }} @Override@Override protected void onDestroy() {protected void onDestroy() { super.onDestroy();super.onDestroy(); }}}}

Estrutura da Activity Código do

Ciclo de vida

Page 30: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Classes do Android

Intent (Intenção)

Intent é um recurso muito interessante para o SO

Android, imagina-se que deseja executar um aplicativo

ou Activity mas o SO verifica que não tem memória

disponível, logo a sua intenção (Intent) de executar tal

aplicativo ou Activity será negada pelo gerenciador de

memória do sistema operacional Android.

Page 31: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Classes do Android

View (Visão)

View é um objeto para desenhar telas em uma área

retangular e manipula clique, entre outros eventos. Uma View

é uma classe base da maioria dos componentes de layout de

uma Activity ou tela de diálogo (caixa de texto, janelas, e

assim por diante). Em outras palavras Views são os

componentes de tela.

Page 32: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Classes do Android

LocationManager (Gerenciador de Localização)

Essa classe fornece acesso aos serviços do sistema de localização. Estes

serviços permitem que aplicações recebam periodicamente atualizações da

localização geográfica de um dispostivo ou dispara uma Intent para aplicação

especifica que quando o dispostivo aproximar de uma determinada localização

geográfica a mesma seja executada.

A classe LocationManager não deve ser instanciada diretamente, em vez

disso, recuperamos uma instância através do código

Context.getSystemService(Context.LOCATION_SERVICE).

Page 33: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Classes do Android

LocationProvider (Provedor de Localização)

É uma superclasse abstrata para os provedores de localização. Um provedor de

localização fornece feedback periódicos sobre a localização geográfica do dispositivo.

Cada provedor tem um conjunto de critérios que pode ser usado, por exemplo, alguns

provedores requerem um hardware de GPS, que seja vísivel para um número de x de satélites;

outros requerem o uso de uma rede de celular (Estação Rádio Base), ou acesso para uma rede

de um transmissor específico, ou Internet. Eles também podem ter características diferentes

para o consumo de baterias ou custos monetários para o usuário.

Page 34: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

FRAMEWORK, BIBLIOTECA EXTERNA DO GOOGLE MAPS

Para tornar mais fácil, fazer um bom trabalho com mapas e adicionar recursos

poderosos na aplicação o Google dispõe uma biblioteca externa de Mapas que

incluem o pacote com.google.android.maps. A classe do com.android.maps tem

incorporado recursos para fazer o processamento, caching (armazenamento) dos

mapas em pequenas proporções quando é feito a navegação, e oferece uma

variedade de opções de exibição e controles dos mapas.

A classe chave dos Mapas é a com.google.android.maps.MapView, é uma

sublicasse de ViewGroup. A MapView mostra o mapa com os dados obtidos do

serviço do Google Maps. Quando o MapView (Visualização do Mapa) tem o foco, ele

vai capturar as teclas pressionadas e os gestos de toque feitos na tela para mexer e

aumentar/dimunuir o zoom no mapa automaticamente, incluindo o tratamento de

requisições na rede feitas pelos toques na tela. A classe View fornece também todos

os componentes UI necessários para trabalhar o controle do mapa. O aplicativo

também pode usar métodos da classe MapView para controloar o MapView através de

programação, inclusive mudar as camadas do mapa.

Page 35: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Utilização da Lib GoogleMaps

Declarando a biblioteca Maps no arquivo Manifesto da aplicação.

Para usar a classe Maps da biblioteca externa da aplicação, deve-se referenciar a

biblioteca no arquivo de manifesto AndroidManifest.xml. Utilizando a tag <uses-library>

que é filha da <application>, com o atríbuto “android:name” que recebe um valor

com.google.android.maps que é a classe a ser utilizada.

Page 36: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

ESTRUTURA E ANÁLISE DO PROJETO

ESTRUTURA

Três aplicações:

1)Cliente para Servidor

2)Disponibilizador para Servidor

3)Servidor Web/BD

Page 37: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

ESTRUTURA E ANÁLISE DO PROJETO

Descrição da estrutura do projeto:

Cliente para Servidor: É o aplicativo cliente, BusCg, que envia uma requisição HTTP, via WebService, enviando

o ID do ônibus, com a instrução SQL SELECT, para obter um objeto ônibus e pegar dele a informação de Latitude e

Longitude, e renderizar na tela do smartphone o mapa (MapView) da localização do ônibus e a rota que ele faz.

Disponibilizador para Servidor: É o aplicativo servidor, BusCgSender, obtém a coordenada geográfica (latitude

e longitude) do smartphone Android, através do GPS, e envia para o servidor web/banco de dados que armazena

através de um UPDATE a última localização (latitude e longitude) do ônibus do ID (número identificador único)

informado.

Servidor Web/BD: É um sistema web (webservice) rodando em um container web chamado Apache TomCat 7,

que recebe os dados das duas aplicações supracitadas, o servidor web se conecta ao SGBD MySql que faz a

persistência e seleção de dados no banco de dados.

Page 38: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

TOPOLOGIA

Satélite

BusCgSenderBusCg

ServerBus

Page 39: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

ANÁLISECaso de Uso - BusCgSenderCaso de Uso - BusCgSender

Link da imagem abaixo: http://yuml.me/196949ba.jpg

Page 40: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

ANÁLISE

Link da imagem abaixo: http://yuml.me/06a8909d.jpg

Caso de Uso - BusCgCaso de Uso - BusCg

Page 41: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Diagrama de Atividade

BusCgSenderBusCgSender

Link da imagem abaixo: http://yuml.me/ab339ff5.jpg

Page 42: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Diagrama de Atividade

Link da imagem abaixo: http://yuml.me/09b6a311.jpg

BusCgBusCg

Page 43: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

BusServer

WebService que recebe requisições HTTP, requisições chegam em formato JSON, o sistema web recebe requisição e devolve uma resposta, essa requisição pode ser uma instrução SQL select ou update, que faz select é o BusCg e quem faz o update é o BusCgSender.

Page 44: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

BusServer● Aqui o servidor web está apto a receber requisições,

conforme mostra a figura abaixo:

Page 45: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Telas dos Aplicativos

✔ BusCgSenderBusCgSender

✔ BusCgBusCg

Page 46: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

App - BusCgSender

Page 47: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

App - BusCg

Page 48: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

App - BusCg

5° 6°

Page 49: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Conclusão

● A plataforma e linguagem de programação Java, bem como o sitema operacional e SDK Android

foram suficientes para desenvolver a aplicação proposta.

● Foram desenvolvidos três sistemas, ServerBus, BusCgSender e BusCg

● Foram realizado testes, e o resultado obitido foi que tanto a aplicação BusCgSender quanto BusCg

em alguns momentos por causa da conexão com a Internet via 3G e falha no GPS deixou a desejar

● A aplicação é executada em tempo real, pois o BusCgSender envia a coordenada, o ServerBus

armazena no banco de dados, e o BusCg busca no ServerBus, e essas operações são feitas em poucos

segundos, o usuário obtém a informação assim que solicita, e as coordenadas do ônibus são plotados no

mapa instantaneamente

● Para desenvolver esse sistema não tive muitas dificuldades tecnológicas, toda tecnologia

necessária esteve ao meu alcance através da API e ferramentas oferecidas pelo Google e pela plataforma

Java

Page 50: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Conclusão O óbice encontrado foi na hora de efetuar os testes das aplicações, pois foi necessário que eu

estivesse com meu smartphone conectado a Internet 3G, executando a aplicação BusCgSender dentro do

carro para simular o ônibus, e com uma outra pessoa em casa observando o notebook com conexão com

Internet, e onde estava configurado o webservice BusServer e rodando aplicação BusCg no emulador

(dispositivo móvel virtual) que vem no SDK do Android. Para fidelizar o teste realizado, eu efetuei uma ligação

para pessoa que estava em casa verificando os resultados no notebook, pedia para que ela me informasse

onde eu estava no mapa, e ela afirmava corretamente a minha posição, de forma que a aplicação serviu como

um localizador. Outro ponto que deu trabalho extra foi para obter as coordenadas das rotas que o ônibus faz,

primeiro precisei saber qual a rota (ruas que ele passa) que um determinado ônibus executa, e desenhar a

rota do ônibus utilizando a ferramenta disponível no Google Earth, a rota desenhada gerou um arquivo XML

com todas as coordenadas geográficas, peguei o arquivo e adaptei em um arquivo de texto (.txt) onde a

aplicação pudesse ler e o algoritmo de desenho de rota ler cada coordenada e criar uma sobreposição no

mapa, gerando assim a rota do ônibus.

O desenvolvimento desse projeto pode ser continuado por outros trabalhos acadêmicos, fica um

desafio para otimização de consumo da bateria do smartphone, uma implementação que otimize o tráfego de

dados, o estudo sobre a nova maneira para armazenar dados, através do conceito BigData e NoSQL. As telas

do aplicativo podem ser rendezenhadas para ter uma melhor a usabilidade e deixar a GUI (Interface Gráfica do

Usuário) mais rica. Pode-se adicionar Overlays representado os pontos de ônibus da cidade. Pode ser feito

um trabalho com teoria dos grafos para exibir o ônibus que chega mais rápido no destino desejado.

Page 51: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Referências Bibliográficas

[1] Lecheta, Ricardo R, Introdução ao Android. Google Android: aprenda a criar aplicações para dispositvos

móveis com Android SDK / Ricardo R. Lecheta, 2. Ed. Rev, e ampl. São Paulo, Novatec Editora, 2010.

[2] Silberschatz, A., Galvin, P., and Gagne, G. (2001). Sistemas Operacionais – Conceitos e Aplicações.

Campus.

[3] Sobre o Java. Disponível em 17 de Abril de 2012 <http://www.java.com/pt_BR/about/> . Acesso em 17 de

Abril de 2012.

[4] Ferramenta YUML para desenhar caso de uso. Online em <http://yuml.me/>.

[5] Documentação do Android. Disponível em 01 de Dezembro de 2012 <

http://developer.android.com/index.html>. Acesso em 01 de Dezembro de 2012.

[6] Ricardo Reghelin. TCC. Um Algoritmo Descentralizado de Localização para Rede de Sensores Sem Fio

Usando Calibragem Cooperativa e Heurísticas . Florianópolis . 2007 . Online em <

http://www.tede.ufsc.br/teses/PGCC0807-D.pdf> . Acesso em 13 de Maio de 2012.

Page 52: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Imagens utilizadas

REFERÊNCIAS DAS IMAGENS

Figura 1 - http://pt.wikipedia.org/wiki/Ficheiro:Diagram_android.png

Figura 2 - http://static.hsw.com.br/gif/gps-3.jpg

Figura 3 - http://static.hsw.com.br/gif/satellite-navstar.jpg

Figura 4 - Criação própria

Figura 5 - Criação própria

Figura 6 - Capturei a tela do eclipse, criação própria

Figura 7 - http://tgmarinho.files.wordpress.com/2012/03/gsm_call_phonenumber.png

Figura 8 - http://developer.android.com/images/activity_lifecycle.png

Imagens utilizadas para fazer a estrutura do projeto:

http://phenom16.webnode.com.br/album/fotos-de-onibus/onibus-t11-jpg/

http://mundorealista.com/tecnologia/2012/07/17/curso-de-redes-parte-2-topologia-de-redes/

http://www.assuntosgerais.com/wp-content/uploads/2010/01/apache_display.png

http://www.infoescola.com/wp-content/uploads/2011/01/mysql.jpg

http://www.productwiki.com/upload/images/ibm_x3400.gif

http://images04.olx.com.br/ui/11/29/04/1339796962_400672504_1-Fotos-de--CELULAR-ANDROID-S5000-FRETE-GRaTIS.jpg

Imagens para o aplicativo:

Tela de splash feita pelo autor no Corel Draw

Ícones e outras imagens extraída do site: http://

Page 53: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Obrigado!

Thiago Marinho de Oliveira, Apresentação à banca do Trabalho de Conclusão de Curso (TCC) para o curso de Ciência da Computação, Uniderp, Dezembro de 2012.

@tgmarinho

Campo Grande - MS

Page 54: Apresentação Trabalho de Conclusão de Curso - Ciência da Computação

Glossário

Activity = Classe especial do Android, tradução livre: Atividade

Android = Sistema operacional de dispositivo móvel

BD = Banco de Dados

BusCg = Aplicativo para dispositivo mobile, desenvolvido pelo autor.

BusCgSender = Aplicativo para dispositivo, mobile desenvolvidor pelo autor.

BusSender = WebService desenvolvido pelo autor

CRUD = Create Retrieve Update Delete (Criar Buscar (recuperar) Atualizar Deletar)

DAO = Data Access Object (Acesso Direto a Objeto)

GPS = Global Positioning System (Sistema de Posicionamento Global)

HTTP = Hypertext Transfer Protocol

ID = Número ou palavra única indetificadora, exemplo é o CPF, RG, etc.

Java = Linguagem de programação

JSON = JavaScript Object Notation (http://www.json.org/)

Plugin = Pequeno programa que apoia o desenvolvimento de outros programas

SQL = Structured Query Language (Linguagem Estruturada de Consulta)

Request = Requisição

Response = Resposta

SDK = Software Development Kit

SGBD = Sistema Gerenciador de Banco de Dados

Smartphone = Aparalho celular inteligente

SO = Sistema Operacional

Software = Programa de computador

URL = Uniform Resource Locator (Localizador padrão de recursos)

WEB = refere-se a World Wide Web ou sistemas que utilizam a Internet como um meio de tráfego de dados.