SlideShare uma empresa Scribd logo
1 de 54
Baixar para ler offline
Trabalho de Conclusão de Curso
Acadêmico: Thiago Marinho de OliveiraThiago Marinho de Oliveira
Orientador: Carlos Eduardo CayresCarlos Eduardo Cayres
Uniderp - 2012
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
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
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.
ABORDAGEM CONCEITUAL
&
TÉCNICA DE TECNOLOGIAS ADOTADAS
ABORDAGEM CONCEITUAL E TÉCNICA
● Sistema Operacional
● Android
● GPS
● Banco de Dados
● Linguagem de programação Java
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]
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
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.
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
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.
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.
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).
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/
Arquitetura do Android
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.
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.
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.
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]
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].
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.
FERRAMENTAS DE DESENVOLVIMENTO, ESTRUTURA
BÁSICA DO PROJETO, FRAMEWORK, CLASSES E
INTERFACES DO SDK ANDROID, OBTENDO A
LOCALIZAÇÃO DO SMARTPHONE.
FERRAMENTAS DE DESENVOLVIMENTO
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.
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
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
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.
Classes do Android
Ciclo de VidaCiclo de Vida
ActivityActivity
Ciclo de Vida Activity
http://developer.android.com/training/basics/activity-lifecycle/starting.html#lifecycle-states
Classes do Android
import 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
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.
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.
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).
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.
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.
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.
ESTRUTURA E ANÁLISE DO PROJETO
ESTRUTURA
Três aplicações:
1)Cliente para Servidor
2)Disponibilizador para Servidor
3)Servidor Web/BD
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.
TOPOLOGIA
Satélite
BusCgSender
BusCg
ServerBus
ANÁLISE
Caso de Uso - BusCgSenderCaso de Uso - BusCgSender
Link da imagem abaixo: http://yuml.me/196949ba.jpg
ANÁLISE
Link da imagem abaixo: http://yuml.me/06a8909d.jpg
Caso de Uso - BusCgCaso de Uso - BusCg
Diagrama de Atividade
BusCgSenderBusCgSender
Link da imagem abaixo: http://yuml.me/ab339ff5.jpg
Diagrama de Atividade
Link da imagem abaixo: http://yuml.me/09b6a311.jpg
BusCgBusCg
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.
BusServer
● Aqui o servidor web está apto a receber requisições,
conforme mostra a figura abaixo:
Telas dos Aplicativos
✔
BusCgSenderBusCgSender
✔
BusCgBusCg
App - BusCgSender
1°
2°
3°
4°
App - BusCg
1°
2°
3°
4°
App - BusCg
5° 6°
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
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.
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.
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://
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
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.

Mais conteúdo relacionado

Mais procurados

Aula 01 fundamentos da informática
Aula 01   fundamentos da informáticaAula 01   fundamentos da informática
Aula 01 fundamentos da informáticaGilberto Campos
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosElaine Cecília Gatto
 
Usabilidade, IHC - Definições
Usabilidade, IHC - DefiniçõesUsabilidade, IHC - Definições
Usabilidade, IHC - DefiniçõesLuiz Agner
 
Informatica Na Educacao
Informatica Na EducacaoInformatica Na Educacao
Informatica Na EducacaoCarlos Castro
 
Apostila parte 1 informatica basica pdf
Apostila parte 1   informatica basica pdfApostila parte 1   informatica basica pdf
Apostila parte 1 informatica basica pdfJohnAguiar11
 
Sistemas digitais e analógicos
Sistemas digitais e analógicosSistemas digitais e analógicos
Sistemas digitais e analógicosCarlos Pereira
 
Tecnologias na sala de aula
Tecnologias na sala de aulaTecnologias na sala de aula
Tecnologias na sala de aulaNaira Delazari
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 
E book pericia forense computacional
E book pericia forense computacionalE book pericia forense computacional
E book pericia forense computacionalGustavo Lima
 
Metodologia de Projeto - Design Conceitos - 1.0.BAI430
Metodologia de Projeto - Design Conceitos - 1.0.BAI430Metodologia de Projeto - Design Conceitos - 1.0.BAI430
Metodologia de Projeto - Design Conceitos - 1.0.BAI430Valdir Soares
 

Mais procurados (20)

Aula 01 fundamentos da informática
Aula 01   fundamentos da informáticaAula 01   fundamentos da informática
Aula 01 fundamentos da informática
 
Aula 02 evolução do computador
Aula 02   evolução do computadorAula 02   evolução do computador
Aula 02 evolução do computador
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de Algoritmos
 
Software educacionais tipos
Software educacionais   tiposSoftware educacionais   tipos
Software educacionais tipos
 
Computação Gráfica
Computação GráficaComputação Gráfica
Computação Gráfica
 
Editores de texto
Editores de textoEditores de texto
Editores de texto
 
Usabilidade, IHC - Definições
Usabilidade, IHC - DefiniçõesUsabilidade, IHC - Definições
Usabilidade, IHC - Definições
 
Informatica Na Educacao
Informatica Na EducacaoInformatica Na Educacao
Informatica Na Educacao
 
Robotica
RoboticaRobotica
Robotica
 
Apostila parte 1 informatica basica pdf
Apostila parte 1   informatica basica pdfApostila parte 1   informatica basica pdf
Apostila parte 1 informatica basica pdf
 
Sistemas digitais e analógicos
Sistemas digitais e analógicosSistemas digitais e analógicos
Sistemas digitais e analógicos
 
Informatica basica
Informatica basicaInformatica basica
Informatica basica
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
A história do computador
A história do computadorA história do computador
A história do computador
 
Tecnologias na sala de aula
Tecnologias na sala de aulaTecnologias na sala de aula
Tecnologias na sala de aula
 
Inteligencia artificial
Inteligencia artificialInteligencia artificial
Inteligencia artificial
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
E book pericia forense computacional
E book pericia forense computacionalE book pericia forense computacional
E book pericia forense computacional
 
Introducao informatica
Introducao informaticaIntroducao informatica
Introducao informatica
 
Metodologia de Projeto - Design Conceitos - 1.0.BAI430
Metodologia de Projeto - Design Conceitos - 1.0.BAI430Metodologia de Projeto - Design Conceitos - 1.0.BAI430
Metodologia de Projeto - Design Conceitos - 1.0.BAI430
 

Destaque

O trabalho flexível na fruticultura irrigada do nordeste
O trabalho flexível na fruticultura irrigada do nordesteO trabalho flexível na fruticultura irrigada do nordeste
O trabalho flexível na fruticultura irrigada do nordesteSandra Bara
 
Apresentação Tcc Android Homaut
Apresentação Tcc Android HomautApresentação Tcc Android Homaut
Apresentação Tcc Android Homautdouglasdcc
 
PEC-EJA: Sociologia do Trabalho (Módulo 2)
PEC-EJA: Sociologia do Trabalho (Módulo 2)PEC-EJA: Sociologia do Trabalho (Módulo 2)
PEC-EJA: Sociologia do Trabalho (Módulo 2)ejaes
 
A história do surgimento da plataforma móvel Android.
A história do surgimento da plataforma móvel Android.A história do surgimento da plataforma móvel Android.
A história do surgimento da plataforma móvel Android.Suelen Carvalho
 
Apresentação do SCAD, Sistema Académico do DIEE
Apresentação do SCAD, Sistema Académico do DIEEApresentação do SCAD, Sistema Académico do DIEE
Apresentação do SCAD, Sistema Académico do DIEEalexculpado
 
Engenharia informatica
Engenharia informaticaEngenharia informatica
Engenharia informaticaTurma9bejsm
 
Engenharia Informática vs Sistemas de Informação-II seminario do DEI-UAN-alex...
Engenharia Informática vs Sistemas de Informação-II seminario do DEI-UAN-alex...Engenharia Informática vs Sistemas de Informação-II seminario do DEI-UAN-alex...
Engenharia Informática vs Sistemas de Informação-II seminario do DEI-UAN-alex...alexculpado
 
Software Aplicativo
Software AplicativoSoftware Aplicativo
Software AplicativoSergioSouza
 
Trabalho de Conclusão de Curso de Graduação
Trabalho de Conclusão de Curso de GraduaçãoTrabalho de Conclusão de Curso de Graduação
Trabalho de Conclusão de Curso de GraduaçãoDaniel Fernando Pigatto
 
Trabalho e sociedade fordismo e toyotismo
Trabalho e sociedade   fordismo e toyotismoTrabalho e sociedade   fordismo e toyotismo
Trabalho e sociedade fordismo e toyotismoroberto mosca junior
 
Figura de Linguagem: Pensamento
Figura de Linguagem: PensamentoFigura de Linguagem: Pensamento
Figura de Linguagem: PensamentoWilliam Santos
 
Tecnologias Emergentes
Tecnologias EmergentesTecnologias Emergentes
Tecnologias EmergentesTuAmigaVeleny
 

Destaque (20)

O trabalho flexível na fruticultura irrigada do nordeste
O trabalho flexível na fruticultura irrigada do nordesteO trabalho flexível na fruticultura irrigada do nordeste
O trabalho flexível na fruticultura irrigada do nordeste
 
1 introdução
1 introdução1 introdução
1 introdução
 
Apresentação Tcc Android Homaut
Apresentação Tcc Android HomautApresentação Tcc Android Homaut
Apresentação Tcc Android Homaut
 
Ppj lula
Ppj lulaPpj lula
Ppj lula
 
1º encontro esev
1º encontro  esev1º encontro  esev
1º encontro esev
 
PEC-EJA: Sociologia do Trabalho (Módulo 2)
PEC-EJA: Sociologia do Trabalho (Módulo 2)PEC-EJA: Sociologia do Trabalho (Módulo 2)
PEC-EJA: Sociologia do Trabalho (Módulo 2)
 
Android
Android Android
Android
 
A história do surgimento da plataforma móvel Android.
A história do surgimento da plataforma móvel Android.A história do surgimento da plataforma móvel Android.
A história do surgimento da plataforma móvel Android.
 
Apresentação do SCAD, Sistema Académico do DIEE
Apresentação do SCAD, Sistema Académico do DIEEApresentação do SCAD, Sistema Académico do DIEE
Apresentação do SCAD, Sistema Académico do DIEE
 
Artigo home office
Artigo home officeArtigo home office
Artigo home office
 
Trabalho de inglês
Trabalho de inglêsTrabalho de inglês
Trabalho de inglês
 
Engenharia informatica
Engenharia informaticaEngenharia informatica
Engenharia informatica
 
Engenharia Informática vs Sistemas de Informação-II seminario do DEI-UAN-alex...
Engenharia Informática vs Sistemas de Informação-II seminario do DEI-UAN-alex...Engenharia Informática vs Sistemas de Informação-II seminario do DEI-UAN-alex...
Engenharia Informática vs Sistemas de Informação-II seminario do DEI-UAN-alex...
 
Android ppt
 Android ppt Android ppt
Android ppt
 
Software Aplicativo
Software AplicativoSoftware Aplicativo
Software Aplicativo
 
Trabalho de Conclusão de Curso de Graduação
Trabalho de Conclusão de Curso de GraduaçãoTrabalho de Conclusão de Curso de Graduação
Trabalho de Conclusão de Curso de Graduação
 
Trabalho e sociedade fordismo e toyotismo
Trabalho e sociedade   fordismo e toyotismoTrabalho e sociedade   fordismo e toyotismo
Trabalho e sociedade fordismo e toyotismo
 
Figura de Linguagem: Pensamento
Figura de Linguagem: PensamentoFigura de Linguagem: Pensamento
Figura de Linguagem: Pensamento
 
Trabalho e sociedade
Trabalho e sociedadeTrabalho e sociedade
Trabalho e sociedade
 
Tecnologias Emergentes
Tecnologias EmergentesTecnologias Emergentes
Tecnologias Emergentes
 

Semelhante a Monitoramento Ônibus Tempo Real

LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISLIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISOs Fantasmas !
 
Android Palestra
Android PalestraAndroid Palestra
Android PalestraRenato
 
E tertulia paol-rq
E tertulia paol-rqE tertulia paol-rq
E tertulia paol-rqKMILT
 
Palestra sobre Android - Faculdade Hélio Rocha
Palestra sobre Android  - Faculdade Hélio RochaPalestra sobre Android  - Faculdade Hélio Rocha
Palestra sobre Android - Faculdade Hélio RochaUbiracy Santos
 
Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Jose Berardo
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - BásicoHugoDalevedove
 
Introdução à plataforma android.
Introdução à plataforma android.Introdução à plataforma android.
Introdução à plataforma android.Everton Dewes
 
Aula01 mobilidade android
Aula01 mobilidade androidAula01 mobilidade android
Aula01 mobilidade androidRoberson Alves
 
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional AndroidLucas Damasceno
 
Curso Android - 01 Introdução ao Android
Curso Android - 01 Introdução ao AndroidCurso Android - 01 Introdução ao Android
Curso Android - 01 Introdução ao AndroidRonildo Oliveira
 

Semelhante a Monitoramento Ônibus Tempo Real (20)

LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISLIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
 
Android Palestra
Android PalestraAndroid Palestra
Android Palestra
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
Semanaupecaruaru2013 android passo a passo
Semanaupecaruaru2013 android passo a passoSemanaupecaruaru2013 android passo a passo
Semanaupecaruaru2013 android passo a passo
 
E tertulia paol-rq
E tertulia paol-rqE tertulia paol-rq
E tertulia paol-rq
 
Palestra sobre Android - Faculdade Hélio Rocha
Palestra sobre Android  - Faculdade Hélio RochaPalestra sobre Android  - Faculdade Hélio Rocha
Palestra sobre Android - Faculdade Hélio Rocha
 
Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Curso de Google Android - Aula 1
Curso de Google Android - Aula 1
 
Android - Notas de aula
Android - Notas de aulaAndroid - Notas de aula
Android - Notas de aula
 
Ciclo de palestras da JFRJ - Aplicativos Móveis
Ciclo de palestras da JFRJ - Aplicativos MóveisCiclo de palestras da JFRJ - Aplicativos Móveis
Ciclo de palestras da JFRJ - Aplicativos Móveis
 
Android
AndroidAndroid
Android
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - Básico
 
Android
AndroidAndroid
Android
 
Introdução à plataforma android.
Introdução à plataforma android.Introdução à plataforma android.
Introdução à plataforma android.
 
Trabalho do Semestre da Faculdade
Trabalho do Semestre da FaculdadeTrabalho do Semestre da Faculdade
Trabalho do Semestre da Faculdade
 
Android
AndroidAndroid
Android
 
Aula01 mobilidade android
Aula01 mobilidade androidAula01 mobilidade android
Aula01 mobilidade android
 
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional Android
 
Introdução intel XDK
Introdução intel XDKIntrodução intel XDK
Introdução intel XDK
 
Curso Android - 01 Introdução ao Android
Curso Android - 01 Introdução ao AndroidCurso Android - 01 Introdução ao Android
Curso Android - 01 Introdução ao Android
 
Phonegap
PhonegapPhonegap
Phonegap
 

Mais de Thiago Marinho

Aula de revisão sistemas multimidia ead ufgd lic. computação
Aula de revisão sistemas multimidia ead ufgd lic. computaçãoAula de revisão sistemas multimidia ead ufgd lic. computação
Aula de revisão sistemas multimidia ead ufgd lic. computaçãoThiago Marinho
 
Agentes Inteligentes - IA
Agentes Inteligentes - IAAgentes Inteligentes - IA
Agentes Inteligentes - IAThiago Marinho
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 
Barramento Assíncrono
Barramento AssíncronoBarramento Assíncrono
Barramento AssíncronoThiago Marinho
 

Mais de Thiago Marinho (7)

Aula de revisão sistemas multimidia ead ufgd lic. computação
Aula de revisão sistemas multimidia ead ufgd lic. computaçãoAula de revisão sistemas multimidia ead ufgd lic. computação
Aula de revisão sistemas multimidia ead ufgd lic. computação
 
Agentes Inteligentes - IA
Agentes Inteligentes - IAAgentes Inteligentes - IA
Agentes Inteligentes - IA
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
Barramento Assíncrono
Barramento AssíncronoBarramento Assíncrono
Barramento Assíncrono
 
Algoritmos Genéticos
Algoritmos GenéticosAlgoritmos Genéticos
Algoritmos Genéticos
 
Algoritmos Genéticos
Algoritmos GenéticosAlgoritmos Genéticos
Algoritmos Genéticos
 
Barbeiro Sonolento
Barbeiro SonolentoBarbeiro Sonolento
Barbeiro Sonolento
 

Monitoramento Ônibus Tempo Real

  • 1. Trabalho de Conclusão de Curso Acadêmico: Thiago Marinho de OliveiraThiago Marinho de Oliveira Orientador: Carlos Eduardo CayresCarlos Eduardo Cayres Uniderp - 2012
  • 2. 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
  • 3. 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
  • 4. 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.
  • 5. ABORDAGEM CONCEITUAL & TÉCNICA DE TECNOLOGIAS ADOTADAS
  • 6. ABORDAGEM CONCEITUAL E TÉCNICA ● Sistema Operacional ● Android ● GPS ● Banco de Dados ● Linguagem de programação Java
  • 7. 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]
  • 8. 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
  • 9. 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.
  • 10. 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
  • 11. 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.
  • 12. 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.
  • 13. 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).
  • 14. 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/
  • 16. 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.
  • 17. 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.
  • 18. 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.
  • 19. 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]
  • 20. 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].
  • 21. 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.
  • 22. FERRAMENTAS DE DESENVOLVIMENTO, ESTRUTURA BÁSICA DO PROJETO, FRAMEWORK, CLASSES E INTERFACES DO SDK ANDROID, OBTENDO A LOCALIZAÇÃO DO SMARTPHONE. FERRAMENTAS DE DESENVOLVIMENTO
  • 23. 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.
  • 24. 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
  • 25. 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
  • 26. 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.
  • 27. Classes do Android Ciclo de VidaCiclo de Vida ActivityActivity
  • 28. Ciclo de Vida Activity http://developer.android.com/training/basics/activity-lifecycle/starting.html#lifecycle-states
  • 29. Classes do Android import 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
  • 30. 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.
  • 31. 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.
  • 32. 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).
  • 33. 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.
  • 34. 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.
  • 35. 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.
  • 36. ESTRUTURA E ANÁLISE DO PROJETO ESTRUTURA Três aplicações: 1)Cliente para Servidor 2)Disponibilizador para Servidor 3)Servidor Web/BD
  • 37. 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.
  • 39. ANÁLISE Caso de Uso - BusCgSenderCaso de Uso - BusCgSender Link da imagem abaixo: http://yuml.me/196949ba.jpg
  • 40. ANÁLISE Link da imagem abaixo: http://yuml.me/06a8909d.jpg Caso de Uso - BusCgCaso de Uso - BusCg
  • 41. Diagrama de Atividade BusCgSenderBusCgSender Link da imagem abaixo: http://yuml.me/ab339ff5.jpg
  • 42. Diagrama de Atividade Link da imagem abaixo: http://yuml.me/09b6a311.jpg BusCgBusCg
  • 43. 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.
  • 44. BusServer ● Aqui o servidor web está apto a receber requisições, conforme mostra a figura abaixo:
  • 49. 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
  • 50. 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.
  • 51. 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.
  • 52. 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://
  • 53. 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
  • 54. 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.