UNIVERSIDADE FEDERAL DA BAHIA
INSTITUTO DE MATEMÁTICA
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
Alexandre Araújo e Silva
Um Aplicativo Android para o
Wiki Disciplinas do DCC/UFBA
Salvador
2011
Alexandre Araújo e Silva
UM APLICATIVO ANDROID PARA O
WIKI DISCIPLINAS DO DCC/UFBA
Monografia apresentada ao Curso de
Graduação de Ciência da Computação,
Departamento de Ciência da Computação,
Instituto de Matemática, Universidade
Federal da Bahia, como requisito para a
obtenção do grau de Bacharel em Ciência
da Computação.
Orientador:
Prof.
Schwarzmuller
Salvador
2011
Anna
Friedericka
Dedico este estudo a minha mãe, Dona Nara, minha maior incentivadora, meu maior
exemplo e maior responsável por todas minhas realizações e conquistas.
Gostaria de agradecer, primeiramente a Deus, e a todos que contribuíram para a
realização deste trabalho, especialmente professora Frieda, pela orientação e por
acreditar no sucesso do trabalho.
RESUMO
Este trabalho apresenta o protótipo de uma aplicação móvel que traz os benefícios
da mobilidade, para que docentes e discentes do Departamento de Ciências da
Computação da Universidade Federal da Bahia (DCC/UFBA) tenham acesso às
informações do wiki de disciplinas através de um dispositivo móvel com a plataforma
Android. O wiki de disciplinas do DCC/UFBA é uma ferramenta de colaboração,
utilizada por alunos e professores para acessar informações sobre as disciplinas do
departamento, projetada para o ambiente web. O Android é um sistema operacional
para dispositivos móveis desenvolvido pela Google e outras grandes empresas de
telefonia celular. Devido à necessidade de disponibilizar o conteúdo do wiki a todos
em qualquer lugar onde estiverem, de uma maneira prática e fácil de visualizar,
através de um dispositivo móvel, foi projetado e desenvolvido um protótipo de
aplicativo móvel para acessar estas informações.
Palavras-chave: Android, computação móvel, dispositivos móveis, wiki.
ABSTRACT
This paper presents the prototype of a mobile application that brings the benefits of
mobility, so that teachers and students of Department of Computer Science of
Federal University of Bahia (DCC/UFBA) have access to wiki disciplines information
through a mobile device with Android platform. The wiki DCC/UFBA disciplines is a
collaboration tool, used by students and teachers to access information about the
department disciplines, designed for web environment. Android is an operating
system for mobile devices developed by Google and other major cell phone
companies. Because of the need to provide the wiki content to all everywhere they
are, in a practical and easy to view through a mobile device, was designed and
developed a mobile application prototype to access this information.
Key words: Android, mobile computing, mobile devices, wiki
Índice de Figuras
Figura 1 - Logo do Android ........................................................................................ 31
Figura 2 - Arquitetura do Android .............................................................................. 34
Figura 3 - Emulador do Android ................................................................................ 39
Figura 4 - Versões do Android................................................................................... 40
Figura 5 - Ciclo de vida de uma activity ..................................................................... 42
Figura 6 - Exemplo de Activity ................................................................................... 44
Figura 7 - Exemplo BroadcastReceiver ..................................................................... 45
Figura 8 - Hierarquia de nós View e ViewGroup na interface gráfica ........................ 46
Figura 9 - Arquivo XML de layout .............................................................................. 47
Figura 10 – Exemplo de permissão ........................................................................... 49
Figura 11 - Estrutura do AndroidManifest.xml ........................................................... 50
Figura 12 - Tela inicial do Android Market ................................................................. 52
Figura 13 - Tela de instalação de um aplicativo ........................................................ 53
Figura 14 - Disciplinas.dcc.ufba.br ............................................................................ 57
Figura 15 - Diagrama de Casos de Uso .................................................................... 58
Figura 16 - Diagrama de sequência Buscar Disciplina .............................................. 59
Figura 17 - Diagrama de sequência Listar Disciplinas .............................................. 60
Figura 18 - Arquitetura da aplicação ......................................................................... 61
Figura 19 – Conexão com a página do wiki .............................................................. 61
Figura 20 - IDE Eclipse ............................................................................................. 62
Figura 21 - Tela de edição do XML Layout ............................................................... 63
Figura 22 - Tela inicial do aplicativo .......................................................................... 63
Figura 23 - XML de layout da Activity principal.......................................................... 64
Figura 24 - Parte do código da Activity Principal DisciplinasDCC ............................ 65
Figura 25 - Tela de Pesquisa por Disciplinas ............................................................ 65
Figura 26 - Tela Lista de Disciplinas ......................................................................... 66
Figura 27 - Tela de Seleção de Disciplinas ............................................................... 66
Figura 28 - Tela de exibição da disciplina ................................................................. 67
Figura 29 - Opções da Tela de Disciplinas ................................................................ 68
Figura 30 - Wiki acessado pelo aplicativo ................................................................. 68
SIGLAS E SÍMBOLOS
3G
4G
AAC
ADT
API
BSD
CDMA
CSS
DCC
DDMS
GPS
GSM
HTML
IDE
IOS
J2ME
JVM
MMS
MP3
OHA
PC
PDAs
RIM
SDK
SMS
TDMA
UID
UFBA
WAP
WMA
XML
Terceira Geração de Celulares
Quarta Geração de Celulares
Advanced Audio Coding
Android Development Tools
Interface de Programação de Aplicações
Berkeley Software Distribution
Acesso Múltiplo por Divisão de Código
Cascading Style Sheets
Departamento de Ciências da Computação
Dalvik Debug Monitor Service
Sistema de Posicionamento Global
Sistema Global para Comunicações Móveis
HyperText Markup Language
Integrated Development Environments
Iphone Operating System
Java 2 Micro Edition
Máquina Virtual Java
Serviço de Mensagens Multimídia
MPEG-1/2 Audio Layer 3
Open Headset Alliance
Computador Pessoal
Personal Digital Assistants
Research In Motion
Software Development Kit
Serviço de Mensagens Curtas
Acesso Múltiplo por Divisão de Tempo
Unix User Identification
Universidade Federal da Bahia
Protocolo para Aplicações Sem Fio
Windows Media Audio
Extensible Markup Language
SUMÁRIO
1
INTRODUÇÃO ................................................................................................... 10
2
DISPOSITIVOS E APLICAÇÕES MÓVEIS ....................................................... 13
2.1
2.2
2.3
2.4
2.5
2.6
3
A PLATAFORMA ANDROID ............................................................................. 31
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
4
ARQUITETURA DO ANDROID ................................................................... 34
MÁQUINA VIRTUAL DALVIK ...................................................................... 38
ANDROID SDK ........................................................................................... 38
VERSÕES DO ANDROID ........................................................................... 39
COMPONENTES DA APLICAÇÃO ............................................................. 40
INTERFACE GRÁFICA ............................................................................... 46
SEGURANÇA E PERMISSÕES .................................................................. 48
ANDROID MANIFEST................................................................................. 49
COMUNICAÇÃO COM UM SERVIDOR ...................................................... 51
ANDROID MARKET .................................................................................... 52
TRABALHO DESENVOLVIDO .......................................................................... 54
4.1
4.2
4.3
4.4
5
COMPUTAÇÃO MÓVEL ............................................................................. 14
DISPOSITIVOS MÓVEIS ............................................................................ 19
PLATAFORMAS E LINGUAGENS .............................................................. 23
APLICATIVOS MÓVEIS .............................................................................. 26
MOBILIDADE, USABILIDADE E EFICIÊNCIA ............................................ 27
SEGURANÇA ............................................................................................. 29
QUESTIONÁRIO DE PESQUISA ................................................................ 54
WIKI DISCIPLINAS DO DCC....................................................................... 55
O PROJETO DA APLICAÇÃO .................................................................... 57
PROTÓTIPO DA APLICAÇÃO .................................................................... 61
CONCLUSÃO .................................................................................................... 70
REFERÊNCIAS ......................................................................................................... 72
APÊNDICE 1 - QUESTIONÁRIO .............................................................................. 75
10
1 INTRODUÇÃO
Num mundo em que o fluxo de informações cresce de forma acelerada, manter-se
atualizado é uma necessidade para todos. Estar o tempo todo conectado e ter
sempre à sua disposição todos os recursos e informações necessárias à realização
de suas tarefas são formas de alcançar este objetivo.
O avanço da tecnologia tornou isso perfeitamente possível. A computação
móvel trouxe a proliferação dos dispositivos móveis de diferentes formatos e
capacidades que, aliados ao aperfeiçoamento das redes sem fio e telefonia celular,
garantem a mobilidade aos seus usuários (INTEL, 2007).
Não existe invenção que tenha avançado tanto no mundo quanto o celular. O
aparelho passou por um processo de evolução, e deixou de ter apenas a função de
servir como comunicador de voz, adquirindo ao longo do tempo novas
funcionalidades e recursos, e originando novos dispositivos que chegam a possuir a
capacidade de um computador pessoal. Hoje o número de aparelhos celulares já
passou dos 5 bilhões, próximo de atingir a incrível média de um aparelho para cada
habitante do planeta.
Os usuários têm a necessidade de ter recursos como Sistema de
Posicionamento Global (GPS), câmera, músicas, acesso à Internet, entre outros. A
evolução dos dispositivos trouxe tudo isso e mais um pouco. Os principais recursos
dos dispositivos móveis são as aplicações móveis, ou aplicativos, que vão desde
simples ferramentas de produção pessoal até sistemas de contas de banco.
Existem diversas plataformas móveis, cada uma com particularidades,
vantagens e desvantagens. O objetivo principal das empresas desenvolvedoras é
construir plataformas modernas e ágeis, que deixem seus usuários satisfeitos.
Grandes empresas têm travado uma enorme disputa para se manter a frente do
mercado consumidor.
Visando este mercado em expansão, a Google, gigante da internet,
juntamente com um grupo de grandes empresas de telefonia móvel, chamado Open
Headset Alliance (OHA), criou o Android, uma plataforma de desenvolvimento para
11
aplicativos móveis, baseada no sistema operacional Linux. A plataforma apresenta
uma interface visual rica, GPS, diversas aplicações já instaladas e ainda um
ambiente de desenvolvimento bastante poderoso, inovador e flexível (LECHETA,
2010). Além disso, o Android é uma plataforma de código aberto e bastante flexível
em relação a mudanças desejadas pelos desenvolvedores.
O wiki Disciplinas do Departamento de Ciências da Computação da
Universidade Federal da Bahia (DCC/UFBA) é uma ferramenta de colaboração
coletiva onde alunos e professores do departamento compartilham informações
sobre as disciplinas através de uma página web.
No wiki é possível encontrar diversas informações sobre as disciplinas, como
conteúdo programático, notas de aula, exercícios, assim como dados do semestre
atual, como calendário com datas de provas e trabalhos, metodologia e notas dos
trabalhos, entre outros. Dessa forma, alunos e professores se mantém sempre
atualizados do que acontece nas disciplinas.
Por isso, existe a necessidade de deixar estas informações disponíveis a
todos em qualquer lugar que estiverem, de uma maneira prática e fácil de visualizar,
através de um dispositivo móvel.
Este trabalho tem como objetivo apresentar um protótipo de aplicativo móvel
que traz os benefícios da mobilidade, aliado às facilidades de desenvolvimento
oferecidas pela plataforma Android, para que docentes e discentes tenham acesso
às informações do wiki de disciplinas.
O tema e o objetivo do trabalho foram definidos devido ao desejo do autor de
aprender novas tecnologias, que apresentassem uma tendência de crescimento no
mercado tecnológico, e de desenvolver uma ferramenta útil para docentes e
discentes do DCC. A escolha de desenvolver um aplicativo pra o Android se deu
por conta da flexibilidade e das facilidades oferecidas por esta plataforma de
desenvolvimento.
Primeiramente, foi realizada uma pesquisa online com alunos e professores
do DCC, cujo objetivo era medir a utilização de dispositivos móveis e do wiki de
disciplinas, e o impacto que um aplicativo móvel para acessar as informações do wiki
iria causar e se seria utilizado.
12
Os resultados da pesquisa mostraram a grande utilização de dispositivos
móveis dentro do departamento e a tendência do número de adoções aumentar.
Além disso, a maioria dos respondentes afirmou que utilizaria o aplicativo móvel
para acessar o wiki de disciplinas.
Como o resultado da pesquisa se mostrou positivo para o desenvolvimento do
aplicativo, foi elaborado um projeto, onde os requisitos foram levantados e as
funcionalidades da aplicação apresentadas. Após o projeto, foi construído um
protótipo da aplicação, que simula o funcionamento do aplicativo real.
Este trabalho está estruturado da seguinte maneira: introdução ao conteúdo
abordado no texto, que é este primeiro capítulo.
O segundo capítulo aborda os conceitos de dispositivos e aplicações móveis,
traçando um histórico da computação móvel, descrevendo as principais plataformas
e destacando as principais características desta tecnologia.
No terceiro capítulo é descrita a plataforma Android, seu funcionamento e
suas características.
O trabalho desenvolvido é apresentado no quarto capítulo, dividido em três
etapas: uma pesquisa entre alunos e professores do DCC/UFBA para avaliar a
importância do aplicativo móvel a ser desenvolvido dentro do departamento; o
projeto da aplicação, onde é descrito o funcionamento do aplicativo e, por último, o
protótipo da aplicação, com detalhes sobre sua implementação.
No quinto e último capítulo, são apresentadas as conclusões sobre o trabalho
e os futuros trabalhos a serem desenvolvidos baseados neste estudo.
13
2 DISPOSITIVOS E APLICAÇÕES MÓVEIS
O mercado de celulares e dispositivos móveis vem crescendo cada vez mais. De
acordo com estudos, hoje existem mais de cinco bilhões de celulares no mundo, o
que corresponde a quase um aparelho para cada pessoa da população.
Os usuários modernos buscam cada vez mais celulares que possuam
diversos recursos como câmeras, músicas, bluetooth, ótima interface visual, jogos,
GPS, acesso a internet e e-mails, televisão digital, etc. O mercado corporativo
também vê oportunidade nesse segmento, ao incorporar aplicações móveis no seu
dia-a-dia trazendo mais agilidade para seus negócios e integrando-as com seus
sistemas de back-end. Assim, como as empresas buscam lucros e mais lucros,
celulares e smartphones podem se encaixar perfeitamente num espaço onde
“mobilidade” é uma palavra cada vez com mais evidência. (LECHETA, 2010)
A mobilidade remete os softwares de volta à arquitetura baseada em clienteservidor. Esta arquitetura era dominante há alguns anos atrás, antes que os
aplicativos web, baseados em um cliente central (o navegador web), tomassem
conta do mercado devido à explosão da internet. É a constante transformação do
mundo tecnológico (NUNES, 2011).
Nunes
(2011)
diz
que
o
mundo
móvel
é
muito
mais
híbrido
e
“despadronizado” que o mundo web, no qual a diferença se localiza basicamente
nos navegadores, onde Internet Explorer e Firefox exercem certo domínio, e
apresentam apenas pequenas diferenças na exibição de sistemas web. No mundo
móvel, existe uma grande variedade de fabricantes de aparelhos e sistemas
operacionais.
Além disso, dispositivos móveis exigem que suas aplicações apresentem uma
experiência de usuário muito mais simplificada que aquelas projetadas para
ambiente web, exibidas em computadores pessoais (PCs). O motivo disto é que
existe uma enorme diferença entre o tamanho de tela e a resolução de um
14
smartphone comum e o menor monitor de PC com resolução de 1024 por 768 pixels.
Ou seja, não é muito provável que uma interface projetada para web se
redimensione bem quando acessada em um dispositivo móvel.
(NILSEN et al.,
2007)
São diversas as plataformas móveis, Java Micro Edition (J2ME), Iphone,
Symbian, Blackberry, Android e Windows Mobile (agora Windows Phone), citando
apenas as principais, cada qual com suas particularidades. Cada aparelho também
tem suas características de hardware específicas, como câmera, GPS, tipo de
teclado, tamanho e resolução de tela.
Neste contexto, empresas e desenvolvedores buscam uma plataforma de
desenvolvimento que seja moderna e ágil. Já os usuários necessitam de celulares
com muitos recursos, que tenham visual elegante e moderno, e que sejam de fácil
navegação.
Grandes empresas têm disputado uma grande corrida para ter a preferência
dos usuários neste nicho de mercado. Para ocupar este espaço, a Google, junto
com grandes empresas do mercado de telefonia celular, formou a OHA, e criou o
Android, plataforma de desenvolvimento para aplicativos móveis baseada no
sistema operacional Linux, com diversas aplicações previamente instaladas e um
ambiente de desenvolvimento com muitos recursos (LECHETA, 2010).
2.1 COMPUTAÇÃO MÓVEL
Jhonson (2007) levanta um questionamento sobre o que se movimenta dentro do
conceito da Computação Móvel, o dispositivo (junto com o usuário) ou o código. De
acordo com o autor, “existe uma definição que diz que computação móvel permite
que usuários tenham acesso a serviços independente de sua localização”.
Para que este objetivo seja alcançado deve existir então uma infra-estrutura
de comunicações sem fio, além de suporte à mobilidade. Assim, usuário e
dispositivo se movimentam, o que não impede que o código também se movimente
(entre dispositivos e servidores), conceito conhecido como “código móvel”.
15
Existe uma gama de serviços que podem ser implementados para
computação móvel. Trocas de mensagens – Serviço de Mensagens Curtas (SMS) e
Serviço de Mensagens Multimídia (MMS), serviço de e-mail, chat, são apenas alguns
exemplos. Hoje em dia, o segmento que mais cresce nessa área são os aplicativos
móveis, que oferecem diversos serviços, desde consultas bancárias ou marcações
de consultas médicas até localização geográfica.
Tudo isso só é possível devido à disponibilidade de acesso à comunicação. A
utilização de serviços móveis só está disponível para o usuário por causa da
existência das redes de telefonia celular e das redes sem fio. Os principais padrões
de rede sem fio atualmente são as tecnologias bluetooth, WiFi, WiMax e 3G.
A história do celular se inicia através de uma atriz, a austríaca Hedwig Kiesler.
Kiesler era casada com um austríaco nazista fabricante de armas, e se mudou para
os Estados Unidos em ocasião da segunda guerra mundial. Lá, ficou sabendo que
alguns torpedos teleguiados da marinha americana haviam sido interceptados por
inimigos. Então, empenhou-se na criação de um sistema em que duas pessoas se
comunicassem mudando o canal, para que a conversa não fosse interceptada. Essa
foi a primeira concepção do celular, patenteada em 19401.
Em 1947, um grupo de engenheiros teve a idéia de criar um sistema que fosse
capaz de realizar a comunicação entre dois telefones sem fio. Então, começou a ser
desenvolvido no laboratório Bell, nos Estados Unidos, um sistema telefônico de alta
capacidade interligado por diversas antenas, sendo que cada antena era
considerada uma célula. Por isso o nome de celular. Inicialmente, as idéias não
passaram muito da teoria e pouco se pôs em prática (JORDÃO, 2009).
Entre 1947 e 1973, muitos fabricantes fizeram testes, mas o primeiro celular a ser
desenvolvido foi o Ericson MTA, da Ericson, que pesava cerca de 40 quilogramas e
seria instalado em porta-malas de carros (WIKIPEDIA, 2011).
Porém, tudo começou de verdade em 1973, quando foi efetuada a primeira
chamada de um telefone móvel para um telefone fixo. A partir deste fato pôde-se
1
Extraído de História de Tudo (História do Celular). Disponível em http://www.historiadetudo.com/celular.html
16
comprovar que o celular funcionaria perfeitamente e que a rede de telefonia
projetada em 1947 tinha sido idealizada corretamente.
Em 3 de abril de 1973, a Motorola se tornou a primeira empresa a mostrar um
aparelho em funcionamento. O aparelho se chamava Dynatac e era apenas um
protótipo, portanto não estava a venda ao público. Foi com ele que ocorreu a
primeira ligação de um aparelho celular. Ele tinha 25 centímetros de comprimento,
sete centímetros de largura e pesava cerca de um quilograma. Porém, o primeiro
modelo só foi liberado comercialmente nos Estados Unidos apenas em 1983. Outras
marcas já tinham iniciado suas operações no Japão e na Escandinávia, em 1979.
Os primeiros aparelhos não eram tão portáteis e chegavam a pesar em média um
quilograma e tinham quase 30 centímetros de altura. A maioria era desenvolvida
para ser instalada em carros, e seu preço era astronômico, portanto apenas uma
pequeníssima parte da população tinha acesso aos aparelhos.
No início, os assinantes tinham que pagar 20 mil dólares para possuir um
sistema telefônico deste tipo. Naquela época, consultorias contratadas para analisar
as perspectivas do celular para investidores, concluíram que os celulares não eram
um bom negócio e não vingariam, não alcançando mais do que 15% da população
dos Estados Unidos ao final de 20 anos. Na análise, portanto, não foram levados em
conta dois fatores essenciais: o impacto da miniaturização e a revolução da
digitalização nas telecomunicações e na eletrônica em geral. Trinta anos depois, os
consultores puderam comprovar o erro que cometeram em suas previsões.
Nas décadas de 70 e 80, Japão e Suécia efetivaram tecnologias próprias. No
final da década de 80, a tecnologia já estava desenvolvida em quase todos os
países. Só em 1990, o primeiro celular foi lançado no Brasil, no Rio de Janeiro, e em
seguida, em Uberlândia (WIKIPEDIA, 2011).
A segunda geração de celulares chegou logo no início dos anos 90 e, além de
novos aparelhos com tamanho e peso aceitáveis, também aderiu a novos padrões
de comunicação. Acesso Múltiplo por Divisão de Tempo (TDMA), Acesso Múltiplo
por Divisão de Código (CDMA) e Sistema Global para Comunicações Móveis (GSM)
eram as três tecnologias de comunicação que imperavam naquela época. Esta
geração perdurou até a virada do milênio e trouxe novidades como:
17
• O serviço de mensagem de texto (SMS): na época era pouco utilizado, pois
as mensagens eram limitadas a poucos caracteres e não permitiam o uso de
caracteres especiais. Além disso, era necessário que o celular do destinatário
fosse compatível com o do remetente. Geralmente, um teclado alfanumérico
estava presente nos celulares capazes de enviar mensagens de texto;
• Toques monofônicos e polifônicos: com o avanço da tecnologia, surgiram
para substituir as campanhias um tanto quanto irritantes dos celulares mais
antigos;
• Displays coloridos: os dispositivos monocromáticos não transmitiam tudo que
os olhos podiam perceber. Logo, as fabricantes introduziram visores com
escalas de cinza, recurso que permitia as pessoas distinguir imagens. Mas
ninguém estava muito satisfeito ainda, pois tudo parecia muito irreal. Foi um
grande susto quando surgiu o primeiro celular com quatro mil cores, uma
tecnologia incrível para um aparelho tão pequeno. A partir daí, surgiram os
aparelhos com 64 mil cores e, logo depois, com 256 mil cores – agora as
imagens já podiam ser vistas como no mundo real e não se percebia mais a
falta de cores. A evolução continuou e hoje os aparelhos possuem 16 milhões
de cores, recurso fundamental em aparelhos de alta resolução;
• Mensagens multimídia e Internet: com o advento das imagens coloridas, logo
veio um novo recurso que possibilitava a troca de imagens entre celulares.
Eram as mensagens multimídia, as famosas MMS. Com a evolução do
serviço, tornou-se possível também o envio de vídeos. Mas o que as pessoas
esperavam mesmo estava finalmente disponível nos celulares: a Internet.
Evidentemente, ela não se parecia nem um pouco com a que era acessada
através dos computadores pessoais. Havia a necessidade dos portais criarem
páginas personalizadas para celular (páginas WAP), com conteúdo reduzido
e poucos detalhes. Mas isso certamente iria evoluir muito em breve.
Novos serviços eram implantados pelas operadoras de telefonia móvel e novas
funções apareciam nos celulares. A geração 2,5G, não reconhecida oficialmente, foi
marcada pelo aumento significativo da velocidade de acesso à Internet, pelas novas
características dos aparelhos e por apresentar um novo conceito de celular aos
usuários.
18
A implementação da câmera nos celulares foi um fato revolucionário. Apesar
de até hoje a maioria dos celulares não possuir uma câmera de boa qualidade,
naquela época foi uma grande novidade para os usuários um aparelho cuja função
principal era a comunicação, trazer consigo este recurso.
Uma função que se tornou um dos grandes atrativos nos celulares foi o suporte
a reprodução de arquivos MPEG-1/2 Audio Layer 3 (MP3). O que hoje é comum, um
dia já foi um grande luxo. Mesmo antes da existência desses arquivos, as
fabricantes já cogitavam a idéia de reproduzir musicas no aparelho. O suporte a
reprodução não se restringiu apenas a MP3, mas também a outros arquivos de
áudio – como o Advanced Audio Coding (AAC) e o Windows Media Audio (WMA),
entre outros. Além disso, muitos fabricantes adicionaram equalizador, suporte a
listas de reprodução, visualizações, entre outros.
Hoje já não se fala muito em celular. O assunto predominante são os
smartphones, termo que foi adotado devido à utilização de um sistema operacional
nos celulares. Além do sistema operacional, estão incluídos nos smartphones redes
sem fio (WiFi), câmera de qualidade razoável, bluetooth, memória interna com muito
espaço – ou espaço para cartão externo -, funções aprimoradas, suporte a redes de
terceira geração (3G) e muito mais.
Assim, a terceira geração de celulares chegou e trouxe com ela vantagens
como videochamada, conexão de internet de alta velocidade, economia de energia
nos aparelhos e funcionalidade de internet sem a necessidade de um aparelho
celular (é possível utilizar a rede de internet 3G em Modems). Os dispositivos móveis
evoluíram e de aparelhos sem fio destinados a comunicação com voz, com
funcionalidades estáticas e codificadas em hardware, transformaram-se em
dispositivos extensíveis, capazes de se conectar a Internet, transmitir dados e utilizar
softwares avançados (MATTOS, 2005).
A evolução continua e já se discutem idéias de como será a quarta geração de
telefonia celular, apesar de que, como a 3G, ela demore algum tempo para chegar e
se estabelecer. A quarta geração de celulares (4G) deve continuar investindo no
avanço da transmissão de dados. É provável que os novos aparelhos comecem a
trabalhar com o protocolo IP e sejam compatíveis com as redes de computador,
tornando-se assim pequenos computadores.
19
2.2 DISPOSITIVOS MÓVEIS
Estima-se que em 2020 o mundo terá cerca de 55 bilhões de dispositivos móveis,
dentre os quais estarão celulares comuns, smartphones, Ipods, tablets e aqueles
dispositivos que farão a comunicação entre máquinas. Isto sugere que a mobilidade
irá superar largamente os limites atuais da telefonia celular móvel (SIQUEIRA,
2011).
Nenhuma outra invenção se expandiu e alcançou tanto as pessoas em tão
pouco tempo quanto o celular. O celular alcançou, em 30 anos, 5,3 bilhões de
pessoas, numa população que se aproxima de 6,9 bilhões de habitantes.
A previsão diz que, ao final de 2011, o mundo ultrapassará a marca dos seis
bilhões de celulares. Televisão, rádio, computador pessoal e Internet, juntos,
superam em apenas um bilhão a quantidade de usuários comparados aos de
celulares.
Quando se fala em dispositivo móvel, é comum pensar primeiramente em
smartphone. Ambos viraram sinônimos. Porém, a variedade de dispositivos não se
resume apenas aos smartphones. O número de novos dispositivos cresceu
largamente na última década, com os laptops e seus modems 3G, netbooks e,
ultimamente, os tablets. A tendência é que nos próximos dez anos estes dispositivos
se multipliquem, num cenário em que a comunicação máquina-máquina deverá
superar largamente a comunicação entre seres humanos.
Do lado do usuário, haverá uma grande expansão na utilização da
computação móvel, comercio móvel, videoconferência, televisão móvel e muitas
outras aplicações da internet de banda larga móvel. O elemento de desequilíbrio
deste cenário poderá ser o tablet, especialmente se for utilizado para recepção
móvel de televisão, filmes, shows, revistas e livros, além de todas as outras funções
hoje vistas nos smartphones.
De acordo com dados revelados pela Wireless Intelligence2, no Mobile World
Congress 2011, maior evento sobre dispositivos móveis do mundo, realizado em
2
http://www.wirelessintelligence.com/
20
Barcelona no início de 2011, já existem países em que o número de celulares
ultrapassa o número de habitantes. Na Europa, Itália (155), Portugal (140), Rússia
(132), Alemanha (131), Espanha (128), Reino Unido (123), Ucrânia (120), Finlândia
e todos os países escandinavos têm mais de 115 celulares por 100 habitantes.
Na Ásia, a grande surpresa é a liderança do Vietnã, com 144 celulares por
100 habitantes. Em 2º lugar, vem o Japão, com 94 celulares em cada 100 pessoas.
China e Índia são os dois maiores mercados do mundo. As estatísticas da China são
surpreendentes. Em 10 anos, o número de celulares pulou de seis milhões para
atuais 842 milhões. A China Mobile é a maior operadora do mundo, com mais de
600 milhões de assinantes.
Na América Latina, a Argentina tem densidade expressiva de 133 celulares
por 100 habitantes. No Brasil, a penetração já supera os 107%. Os países
emergentes ocupam uma posição de destaque na expansão do celular no mundo.
Nos países do BRIC (Brasil, Rússia, Índia e China) foram instalados 250 milhões dos
600 milhões de celulares postos em serviço no mundo inteiro em 2010.
Devido ao fato de ter sido o continente em que a comunicação móvel chegou
mais recentemente, a África apresenta o maior ritmo de crescimento. No Oriente
Médio, a maior utilização se dá na Arábia Saudita (140 celulares a cada 100
pessoas) e em Israel (128 celulares a cada 100 pessoas).
O Brasil disputa hoje com a Indonésia o quinto lugar entre os maiores
mercados de telefonia do mundo. A Tabela 1 mostra o ranking com os sete países
que lideram este mercado em número de celulares.
Tabela 1 - Maiores mercados de telefonia do mundo
País
Número de celulares
China
842
Índia
757
Estados Unidos
304
Rússia
220
Indonésia
209
Brasil
206
Japão
122
Fonte: SIQUEIRA, 2011
21
Como já se pode perceber, existem diversas categorias de dispositivos
móveis. Estes grupos estão divididos por características como capacidade
computacional, capacidade de armazenamento de dados, funcionalidades, recursos
e tamanho.
No primeiro grupo estão os laptops, notebooks e netbooks. Estes dispositivos
são computadores portáteis, leves, que foram desenvolvidos para serem
transportados e utilizados em qualquer lugar com facilidade. Possuem capacidade
computacional equivalente a um desktop.
No segundo grupo estão os Personal Digital Assistants (PDAs). Hoje já
defasados, os PDAs possuem telas pequenas, mas tem um poder de
processamento mais alto que o de telefones celulares, porém baixo se comparado à
capacidade dos notebooks. Os PDAs suportam aplicativos desenvolvidos em
linguagens de programação de alto nível, recursos multimídia, entre outros. Já foram
bastante úteis na realização de tarefas simples. Seus aplicativos se propunham a
gerenciar contatos, manejar despesas e organizar a agenda. Eram muito úteis na
época dos monitores de tubo. Começaram a entrar em decadência quando surgiram
os primeiros celulares com recursos parecidos. Hoje em dia, um aparelho que se
assemelha aos PDAs antigos é o Ipod Touch (INFOWORLD/EUA, 2010)
No terceiro grupo, estão os celulares e smartphones. Antes, estes aparelhos
possuíam telas minúsculas e quase nenhum recurso. Porém, aparelhos com estas
características já estão quase em desuso atualmente. Devido ao avanço
tecnológico, a capacidade de memória destes dispositivos foi expandida, assim
como o acesso a redes sem fio e o suporte a tecnologias avançadas, como o Java.
Estes avançados aparelhos, conhecidos como smartphones, agora detém a maior
fatia do mercado de celulares. Além de servir como telefone, estes aparelhos
possuem recursos equivalentes ou até mais avançados que os existentes nos PDAs.
São diversas marcas e modelos disponíveis, cada um com recursos, além de
sistema operacional e poder de computação próprios. Os smartphones, com seus
diversos recursos, colocaram em decadência pelo menos 10 gadgets que há algum
tempo atrás ocupavam posição de destaque no mercado. Entre eles pode-se citar
MP3 Players, consoles de videogame portátil, câmeras digitais, vídeo players,
22
gravador de voz, GPS, PDA, relógios de pulso, guia de ruas e televisores portáteis
(BERTOLUCCI, 2011).
No grupo mais recente, estão incluídos os leitores digitais, ou tablets.
Inicialmente criados apenas para servirem como leitores de livros digitais, hoje
funcionam como mini-computadores. Suas características se assemelham ao de
PDAs e smartphones, porém com telas maiores, e mais recursos disponíveis. O
tablet é um dispositivo móvel em forma de prancheta, que pode ser utilizado para
acessar a Internet, visualizar fotos, ler livros, jornais e revistas, além de possuir
recursos para organização pessoal e entretenimento com jogos de terceira
dimensão (3D). A tela de touchscreen é o principal dispositivo de entrada, e suas
funcionalidades podem ser acionadas pela ponta do dedo ou por uma caneta.
Possui diversas funcionalidades semelhantes às de computadores completos e
smartphones. Existem também os leitores de livros eletrônicos, que possuem
recursos mais limitados que os tablets, e como o próprio nome já diz, servem para a
leitura de livros em formato eletrônico.
Como existem vários dispositivos numa mesma categoria, com características
comuns e também diferentes, o desenvolvimento de aplicativos para dispositivos da
mesma categoria pode variar. A forma de desenvolver uma aplicação, assim como a
linguagem de programação utilizada irá depender do hardware e dos recursos
disponíveis em cada aparelho.
Durante o Mobile World Congress, o Iphone 4 foi escolhido o melhor dispositivo
móvel da atualidade. Concorrendo com modelos lançados em 2010, como o
Samsung Galaxy S, o HTC Desire e o LG Optimus 7, o aparelho foi escolhido pelo
júri devido a fatores como design, qualidade da tela e “ecossistema fenomenal”
(VEJA, 2011).
A HTC foi escolhida a melhor fabricante do mundo, sendo considerado o seu
rápido avanço no mercado, com um “ótimo” portfólio de produtos disponíveis em
diversas plataformas (ver seção 3.4) – como as desenvolvidas por Google e
Microsoft.
23
2.3 PLATAFORMAS E LINGUAGENS
Existem vários sistemas operacionais para dispositivos moveis. Todos eles possuem
plataformas para desenvolvimento e execução de seus aplicativos. Cada plataforma
possui suas particularidades tais como linguagens suportadas (uma plataforma pode
suportar mais de uma linguagem de programação, a exemplo do Symbian, que
suporta as linguagens J2ME, Symbian C++ e Python, entre outras), recursos
mínimos e aparelhos compatíveis. Isto significa que uma aplicação desenvolvida
para uma plataforma não funcionará em outro.
O primeiro sistema operacional para dispositivos móveis a se popularizar foi o
PalmOS (MENDONÇA, 2007). Desenvolvido há quase 10 anos, chegou a atingir
quase 90% do mercado mundial de palmtops nos tempos áureos. O sistema
realizava tarefas simples muito bem, mas deixava a desejar em questões mais
sofisticadas, como multitarefa ou recursos de segurança. Apesar de limitado, era
surpreendentemente rápido e responsível. O desenvolvimento do PalmOS parou já
há alguns anos, e foi substituído por uma nova plataforma, um sistema multitarefa
chamado WebOS, baseado em Linux, destinado a smartphones.
Além do Android, que será abordado logo mais, existem outras cinco plataformas
mais fortes no mercado atualmente. É provável que, em alguns anos, algumas delas
já não existam mais, com duas ou três dominando o mercado.
• Java 2 Micro Edition (J2ME): criada pela Sun e atualmente mantida pela
Oracle (após esta ter adquirido a Sun) é a plataforma Java voltada para
dispositivos com recursos de hardware e software ilimitados. Pelo fato de
necessitar-se apenas de uma máquina virtual (JVM – Java Virtual Machine)
para executar aplicativos na linguagem J2ME, é suportada por um grande
número de aparelhos. É uma plataforma gratuita, com diversas Integrated
Development Environments (IDEs) disponíveis, sendo a maior comunidade de
desenvolvedores móveis. Os sistemas operacionais que dão suporte a ela
são: Symbian (UIQ, S30, S40, S60, S80, S90), Palm Os, Linux, Brew,
BlackBerry e Microsoft Windows Mobile. A desvantagem do J2ME é estar
muito desatualizado. Mesmo sendo a plataforma mais popular e utilizada, sua
última especificação foi feita em 2002, quando os aparelhos ainda não
24
possuíam tantos recursos como os de hoje. Como conseqüência, o destino do
J2ME é perder espaço e entrar em desuso, devido à ascensão de plataformas
mais novas e atualizadas, como o Android e o Iphone. A linguagem Java é
também utilizada em outras plataformas, como o BlackBerry e o Android, que
veremos a seguir. É provável que, se não for lançada uma nova versão da
plataforma (3.0) brevemente, o J2ME deixe de ser adotado.
• Iphone Operating System (IOS): mantido pela Apple, possui sua própria
plataforma de desenvolvimento e suporta aplicativos desenvolvidos apenas
na linguagem Objective C através da ferramenta Iphone Software
Development Kit (SDK). O Iphone SDK possui versões para Linux e Windows,
por isso é necessário ter um computador com o sistema MAC OS instalado.
Apesar do alto custo para iniciar o desenvolvimento e do grande número de
aplicativos já existentes, a demanda por estes continua a crescer, sendo o
Iphone uma das plataformas com maior índice de crescimento.
• BlackBerry: os aparelhos são desenvolvidos pela Research in Motion (RIM) e
possuem sistema operacional próprio, o BlackBerry OS. Possui sua própria
linguagem de desenvolvimento, uma Interface de Programação de Aplicações
(API) Java criada pela RIM, que oferece diversos recursos para que o
desenvolvedor explore melhor o aparelho. O BlackBerry suporta também
aplicativos desenvolvidos em J2ME, porém sem acesso a recursos que a API
juntamente com a ferramenta BlackBerry JDE possibilitam a utilização. O
BlackBerry já foi líder no mercado de smartphones, mas nos últimos anos
perdeu algum espaço para Iphone e Android, porém continua entre os
dispositivos mais utilizados. A plataforma tem popularidade destacável
principalmente no mercado corporativo. Desenvolver para BlackBerry é difícil,
pois apesar de utilizar Java, sua API possui particularidades que dificultam o
processo e a base de conhecimento não é muito difundida. Somente agora,
após perder espaço no mercado, é que a RIM tem visado facilitar o
desenvolvimento, lançando novas versões da sua plataforma.
• Symbian: é o sistema operacional utilizado pela maioria dos aparelhos de
hoje, já foi mantido por um consórcio de diversos fabricantes, como Nokia,
Siemens, Samsung, Ericsson, Sony Ericsson e Panasonic. Atualmente
25
pertence à Nokia, que adquiriu quase a totalidade de suas ações no final de
2008. A grande preocupação do Symbian é evitar ao máximo o desperdício
dos recursos do celular, como bateria e memória. É um sistema totalmente
modular, o que permite cada empresa criar sua própria interface. Devido a
sua versatilidade, permite o desenvolvimento de aplicativos em diversas
linguagens, como Symbian C/C++, Java ME, FlashLite, HyperText Markup
Language (HTML) 5, Perl, Python, Ruby, Lua, Acelerômeter e QT. A Nokia
oferece uma IDE gratuita para desenvolvimento, a Carbide C++, baseada no
Eclipse. O Symbian é utilizado na Series 60, atualmente a maior plataforma
para smartphones, desenvolvida pela Nokia e utilizada também pela Ericsson
(WIKIPEDIA, 2011).
• Windows Mobile/Windows Phone: é o sistema operacional móvel da
Microsoft. Inicialmente conhecido como Pocket PC, ganhou o nome de
Windows Mobile quando passou para uma versão que servia tanto para
palmtops (Pocket PCs) quanto para celulares (smartphones) e também em
outros aparelhos de multimídia em geral. Assim, as aplicações rodavam em
ambos os dispositivos, sem alteração alguma. O Windows Mobile foi
projetado para realizar boa parte do que é possível na versão do Windows
para computadores pessoais, vindo com um conjunto de aplicações básicas
bastante conhecidas no mundo do PC, como o Word, Excel, PowerPoint e
Windows Media Player Pocket. O Windows Mobile foi sucedido pelo Windows
Phone 7, lançado no final de 2010. O Windows Phone 7 foi totalmente
reescrito, não sendo baseado nas versões anteriores do Windows Mobile,
apresentando uma interface gráfica totalmente nova, não permitindo a
personalização das interfaces e controlando rigorosamente todo o hardware
do sistema operacional (WIKIPEDIA, 2011).
Existem outras plataformas menos utilizados no mercado, como o Bada e o
MeeGo, ambos baseados em Linux e de código aberto. O primeiro foi projetado
exclusivamente para celulares Samsung. O segundo surgiu de uma parceria entre
Nokia e Intel, que tem como foco levar o MeeGo além dos celulares e expandi-lo
para netbooks,TVs, PDAs, GPS e tablets, realizando a integração entre todos os
dispositivos onde estiver instalado, facilitando a comunicação entre os usuários
desses aparelhos (CAMARGO, 2010).
26
2.4 APLICATIVOS MÓVEIS
Milhares de aplicações móveis surgem todos os dias e exploram as diversas
potencialidades das novas tecnologias de comunicação. Os aplicativos móveis são
programas
produzidos
para
dispositivos
móveis
como
celulares,
pagers,
smartphones, tablets e alguns tipos de netbooks. Hoje em dia, mesmo os celulares
mais simples possuem diversos aplicativos e ainda há a possibilidade de instalar
novos aplicativos.
Um estudo realizado pela Nokia, em parceria com um renomado professor da
universidade americana Cornell University, mostrou que 55% dos usuários de
smartphones acreditam que os aplicativos móveis influenciam beneficamente suas
vidas. (CONVERGÊNCIA DIGITAL, 2011)
Os smartphones, celulares com características que podem se comparar a
computadores pessoais, como capacidade e funcionalidades, abriram caminho para
o desenvolvimento do mercado de aplicativos móveis.
Existe uma grande diferença entre os aplicativos móveis e as aplicações
baseadas em web. Enquanto estas têm sua arquitetura baseada em um cliente
central, que é o navegador web, as aplicações móveis tem arquitetura baseada em
cliente-servidor, adotada pelos softwares que dominavam o mercado antes que a
Internet explodisse no mundo da tecnologia. Essa pequena diferença impacta
bastante no desempenho e na usabilidade das aplicações, o que será tratado na
seção posterior.
Os aplicativos podem ser utilizados com diferentes objetivos, tanto para
aplicações
pessoais
quanto
comerciais.
Inicialmente,
os
aplicativos
eram
simplesmente ferramentas de escritório, como agenda, calendário, entre outros.
Com o avanço dos recursos disponíveis nos dispositivos, abriu-se um leque de
oportunidades a serem exploradas pelos desenvolvedores.
27
Existem infinitas possibilidades para o mercado de aplicativos móveis:
informação, entretenimento ou serviço (PAPERCLIQ, 2009). De acordo com o
estudo da Nokia, a coleção de aplicativos que uma pessoa possui em seu dispositivo
demonstra suas necessidades, personalidade e interesses. Aplicativos de grande
sucesso hoje em dia são os que permitem acesso, mesmo que muitas vezes
limitado, a determinadas funcionalidades de redes sociais, mantendo o usuário
conectado a sua rede de contatos em qualquer lugar que estiver.
Cada plataforma possui um repositório próprio para que os desenvolvedores
disponibilizem suas aplicações. Cada uma possui um conjunto de regras próprio
para o compartilhamento dessas aplicações, assim como uma política de vendas e
downloads. Tais repositórios são conhecidos como lojas de aplicativos, e as mais
importantes são a Apple App Store, a Blackberry App World (RIM), a Ovi Store
(Nokia) e o Android Market.
A receita global das lojas virtuais de aplicativos para smartphones cresceu
160,2% em 2010, movimentando US$2,2 bilhões, mais que o dobro em relação aos
US$828 milhões registrados em 2009, segundo pesquisa da IHS iSuppli.
Líder absoluta do segmento, a Apple App Store respondeu por 82% do total
das vendas. Em segundo lugar, apareceu a loja de aplicativos do BlackBerry, da
RIM. O avanço mais expressivo se deu por parte da Android Market, da Google, que
pulou para 4,7% crescimento de 3,3% em relação a 2009, e se aproximou da Ovi
Store, loja de aplicativos da Nokia, atual terceira colocada. (TI INSIDE, 2011)
Em termos de número de downloads, a IDC prevê que ele cresça de 10,9
bilhões em 2010 para 76,9 bilhões em 2014. Assim, acredita-se que o faturamento
do setor ultrapasse US$35 bilhões até 2014. (IMASTERS, 2010)
2.5 MOBILIDADE, USABILIDADE E EFICIÊNCIA
Geralmente, o objetivo dos usuários ao acessar websites ou aplicativos móveis é
obter informações imediatas. Por isso, é de grande importância que a forma de
28
apresentação e a interface do dispositivo sejam adequadas para atender tais
necessidades.
O tipo de arquitetura utilizado pelas aplicações móveis pode causar grande
impacto no desempenho e na usabilidade do aplicativo. São dois os tipos de
arquitetura mais comuns, via web (HTML) ou com clientes específicos para cada
plataforma (cliente-servidor).
Nos aplicativos cliente, boa parte do conteúdo já está presente no aparelho:
camada visual, tabelas, imagens, textos-padrão, entre outros. O que trafega pela
rede são basicamente as informações necessárias para popular o aplicativo, que
geralmente são textos simples e trafegam rapidamente pela rede. Na abordagem
web, todo o conteúdo tem de ser carregado do servidor para o dispositivo, sendo
necessário fazer o download de tudo a cada requisição. Além de ser mais lento, sai
mais caro para o usuário, que precisa pagar pelo tráfego de dados.
Além disso, a usabilidade das aplicações web é limitada pelo conjunto de
recursos da linguagem HTML, mesmo que os navegadores móveis estejam
evoluindo. Ainda são poucos os elementos de interface disponíveis para
interatividade, como caixas de seleção e escolha, pop-ups, alertas, tabelas e alguns
outros.
Mesmo com as facilidades de acesso à Internet pelo celular, a experiência de
uso das interfaces ainda carece de melhorias. Pesquisas e estudos apontam alguns
problemas e motivos para a insatisfação dos usuários (AVELLAR E DUARTE, 2010):
• A velocidade das conexões impede que os sites carreguem mais rápido;
• Dificuldade de configuração dos serviços pelos usuários;
• Programas simples como uma agenda de manuseio complicado, devido ao
design inadequado do hardware;
• Informações e conteúdo aproveitados diretamente de websites planejados
para PCs, pouco adaptados para o ambiente móvel.
Uma aplicação deve ser projetada e planejada para que funcione sem
problemas no dispositivo móvel desejado. É necessário que o projeto tenha em vista
29
o tamanho reduzido das telas, para que a exibição do conteúdo não sofra nenhum
distúrbio.
Além disso, em termos de eficiência na utilização dos recursos, o ideal é usar
somente o necessário. Assim, evita-se o processamento exagerado no dispositivo e,
em conseqüência, o consumo alto de memória, o que poderia causar travamentos,
além de outros problemas.
A simplicidade e a facilidade de uso são extremamente importantes, pois
fazem com que o usuário realize as tarefas desejadas correta e rapidamente. Se o
usuário encontrar alguma dificuldade na primeira tentativa de uso, é provável que ele
não use mais o aplicativo (NUNES, 2011).
Projetar a aplicação para executar apenas tarefas simples ou em um servidor
remoto são alternativas para alcançar essa simplicidade. Planejar com cuidado a
aplicação é o ponto mais importante. O conserto de um aplicativo já pronto, para
caber na memória do dispositivo, por exemplo, pode dar muito mais trabalho do que
tomar precauções para que esses erros muito comuns sejam evitados.
2.6 SEGURANÇA
Os dispositivos móveis armazenam muitas informações importantes, como números
de telefone, endereços pessoais, oportunidades de negócios, senhas e documentos.
Além disso, estes aparelhos estão cada vez mais conectados à internet, seja através
de 3G ou Wifi, além de aplicações que permitem ao usuário visualizar e manipular
contas financeiras, cotações de leilão e contas de compras com cartão de crédito
estarem se tornando cada vez mais comuns.
Por isso, os dispositivos móveis também estão vulneráveis a ataques
maliciosos provocados por malware instalados nos mesmos. O número destes
ataques aumentou mais de 45% em 2010, e a falta de conhecimento sobre as
ameaças móveis por parte dos usuários e a falta de segurança dos dispositivos, faz
com que a vulnerabilidade aumente (KATKAR, 2011).
30
A maioria das pessoas desconhece que as mesmas práticas que as deixam
vulneráveis, como abrir links desconhecidos ou instalar programas pouco confiáveis,
ou as protegem, como utilizar um antivírus, em seus computadores pessoais
também são aplicados aos seus aparelhos portáteis.
Existem diversos motivos que deixam os dispositivos móveis suscetíveis a
ataques. Dentre eles está a distribuição de aplicativos através de lojas de terceiros,
onde não há regras de certificação de aplicações. O uso regular do e-mail e as
limitações atuais dos browsers móveis tornam mais difícil a identificação de
mensagens e sites fraudulentos.
Para melhorar este cenário, seria interessante adotar uma cultura de
segurança móvel. A primeira medida que o usuário deve tomar é utilizar sempre a
última versão do sistema disponível para o seu aparelho, estando sempre atento às
atualizações.
Outra postura que deve ser mantida é instalar apenas aplicativos
disponibilizados por alguém confiável, de preferência apenas aqueles que estão na
loja oficial do sistema.
Os antivírus também já fazem parte do cenário dos dispositivos móveis.
Mesmo mais leves que aqueles utilizados nos computadores, eles estão presentes
rodando em background e analisando todo arquivo que o usuário tente abrir (Tech
Dreams Brasil, 2011).
31
3 A PLATAFORMA ANDROID
Visando ocupar um lugar de destaque também neste nicho de mercado, a Google,
empresa que provocou uma grande revolução na internet nos últimos anos, juntouse a empresas do mercado de telefonia celular e criou um grupo chamado de Open
Handset Alliance (OHA), com o objetivo de criar uma plataforma única e aberta para
celulares que trouxesse maior satisfação dos consumidores para com o produto
final.
Fonte: SILVEIRA, 2010
Figura 1 - Logo do Android
A esta nova plataforma de desenvolvimento para aplicativos móveis foi dado o
nome de Android. Ela é baseada em um sistema operacional Linux, com diversas
aplicações já instaladas e ainda, um ambiente de desenvolvimento bastante
poderoso, ousado e flexível. Além disso, utiliza-se a linguagem Java para
desenvolver as aplicações, podendo ser usados todos os recursos que ela oferece
(LECHETA, 2010).
O anúncio do Android, no início de novembro de 2007, atraiu grande atenção,
pelo motivo de seu desenvolvimento estar sendo liderado pelo grande nome da
Internet atualmente, a Google e, além dele, grandes outras empresas como a HTC,
32
LG, Motorola, Samsung, Sony Ericsson, Toshiba, Sprint Nextel, China Mobile, TMobile, ASUS, Intel, Garmin e muitas outras3, que formam a OHA.
Antes do anúncio do Android, especulava-se que a Google iria lançar um
aparelho (hardware), como o Iphone, intitulado Gphone. Mas o que se viu foi o
lançamento de uma nova plataforma (software). Sendo um software, o Android está
ao alcance de todos, podendo rodar em qualquer aparelho móvel, não importando a
marca. É como o Microsoft Windows, que pode rodar em qualquer computador
pessoal (LIMA, 2007).
A vantagem do Android para os fabricantes de celulares é a existência de
uma plataforma única e consolidada e, além disso, livre e de código aberto4. Sua
licença flexível permite que cada fabricante realize modificações no código-fonte de
acordo com suas necessidades e objetivos, sem a necessidade de compartilhá-las e
sem precisar pagar nada pela utilização da plataforma.
Também pelo fato de ser de código aberto, o Android pode ser aperfeiçoado
por desenvolvedores de todo o mundo, que podem contribuir para seu código-fonte,
corrigindo falhas e criando novas funcionalidades.
Uma grande característica, se não a maior, do Android é possuir uma
arquitetura bastante flexível, focada na integração de aplicações. Não há diferença
entre uma aplicação nativa e outra desenvolvida por uma pessoa ou empresa. Isso
significa que aplicações nativas podem ser integradas com “novas” aplicações, ou
até mesmo substituídas pelas criadas. Isso é bastante interessante para operadoras
e fabricantes de celulares, que tem a possibilidade de trocar telas e funcionalidades
do celular de acordo com seu plano de marketing.
A Motorola, por exemplo, desenvolveu o MotoBlur, uma repaginação do
Android, que integra a plataforma com um conjunto de serviços que agrega redes
sociais, e-mail e outros serviços da nuvem (AURICCHIO, 2009).
3
A
lista
completa
dos
integrantes
do
http://www.openhandsetalliance.com/oha_members.html
4
grupo
pode
ser
O download do código-fonte do Android pode ser feito no site: http://source.android.com/
vista
em
33
Durante a operação do sistema operacional Android, mensagens são
disparadas o tempo todo para indicar a “intenção” do usuário de realizar
determinada tarefa. Para isso existe uma classe, chamada de Intent, que é o
coração do Android. De acordo com o conteúdo da mensagem, qualquer aplicação
interessada neste pode interceptá-la e executar a tarefa necessária. Por exemplo, se
existe a intenção de abrir uma aplicação nativa, como o browser, ou abrir uma nova
tela de uma aplicação, basta criar um novo objeto Intent e configurar o conteúdo de
sua mensagem para que possa ser reconhecido pelo sistema operacional.
Outro ponto forte do Android é o sistema operacional baseado em Linux, onde
ele mesmo é o encarregado de gerenciar a memória e os processos. Assim,
diversas aplicações podem ser executadas ao mesmo tempo, sendo que aplicações
que executam em segundo plano não são percebidas pelo usuário enquanto este
acessa a internet ou atende uma ligação, por exemplo.
Entre os demais recursos do Android pode-se citar: o Framework de
Aplicação, que permite a incorporação, a reutilização e a substituição de recursos
dos componentes; a Máquina Virtual Davik, máquina virtual otimizada para
dispositivos móveis; Navegador Web Integrado, baseado na engine open source
WebKit; Gráficos Otimizados, com gráficos e tratamento de imagens através de uma
biblioteca 2D e gráficos 3D baseados na especificação OpenGL ES 1.0, que tornam
possível a criação de jogos excelente qualidade de resolução; SQLite, gerenciador
de banco de dados embutido; Suporte Multimídia a diversos formatos de som, vídeo
e imagens, nativamente; Telefonia GSM, mesmo apresentando limitações
dependentes de hardware, integração facilitada a tecnologias GSM; protocolos de
comunicação Wireless, também com as limitações da telefonia GSM, suporta a
tecnologia Bluetooth EDGE, 3G e Wi-Fi; Câmera, GPS, bússola e acelerômetro:
integra-se facilmente a hardwares para câmeras embutidas e localização via GPS,
como bússola e acelerômetro, ambos dependentes das limitações do hardware;
Poderoso Ambiente de Desenvolvimento, com emulador de dispositivo, ferramenta
para depuração, analisador de memória e performance e um plugin para a IDE
Eclipse, o Android Development Tools (ADT) (PEREIRA, et al., 2009).
34
Além disso, existem também os recursos visuais e funcionalidades que
impressionam o usuário comum. Através da navegação de telas por meio de touch
screen, o usuário tem uma ótima experiência na utilização do aparelho.
A plataforma Android já tem atingido, além dos celulares e tablets, netbooks,
máquinas digitais, televisão e até mesmo carros, fazendo com que ela atinja
mercados onde outras plataformas, como o Java ME, não conseguiram grande
penetração (SILVEIRA, 2010).
Com uma visão de futuro, o Android pode ser um potencial sistema
operacional para desktops. Indício disso é que muito já se falou sobre o possível
GoogleOS, existindo a possibilidade do Android ser o futuro GoogleOS camuflado,
onde suas experiências podem ser de uma certa maneira transportadas para o
desktop (LIMA, 2007).
3.1 ARQUITETURA DO ANDROID
Já foi visto que o Android possui uma arquitetura bastante flexível. Ela é estruturada
em cinco camadas, cada uma com uma funcionalidade específica, como pode ser
visto na Figura 2 e descritas abaixo (GOOGLE, 2011):
Fonte: GOOGLE, 2011
Figura 2 - Arquitetura do Android
35
• Aplicações
Na camada superior (Applications), localizam-se as aplicações fundamentais
do Android, como cliente de e-mail, mapas, navegadores, calendários,
programas de SMS, agenda, gerenciadores de contatos, entre outros.
• Framework
Nesta camada localizam-se todas as APIs e os recursos necessários para os
aplicativos, como classes visuais, que incluem listas, grandes, caixas de texto,
botões e até um navegador web embutido, View system (componentes que
constroem aplicativos), provedor de conteúdo (Content Provider), que possibilita
o acesso a informações de uma aplicação por outra, ou o compartilhamento de
informações, que possibilita a troca de informações entre aplicativos e
gerenciadores de recursos, gerenciador de localização, gerenciador de
notificação, de pacotes e de atividade, que controla o ciclo de vida da aplicação e
o acesso e navegação entre as aplicações (AQUINO, 2007).
Os principais elementos dessa camada são:
o Activity Manager – gerencia o ciclo de vida das activities, no início e
no final de sua execução, possibilitando o deslocamento de uma
activity para outra e assim por diante.
o Package Manager – utilizada pelo Activity Manager para ler as
informações dos Pacotes de arquivos do Android (APK’s). O package
manager se comunica com o resto do sistema e verifica os pacotes que
estão sendo utilizados pelo sistema e suas capacidades.
o Window Manager – gerencia as apresentações de janela, indicando
aquela que está ativa e assim por diante.
o Content Providers – possibilita a troca de informações entre os
aplicativos, através do compartilhamento de dados.
o View System – disponibiliza todo o tratamento gráfico para a
aplicação, como botões, layouts e frames.
36
Nesta camada também se localizam outros elementos, como Location
Service, Bluetooth Service, Wi-Fi Service, USB Service, e Sensor Service.
Todos os componentes disponíveis no Android têm acesso pleno às APIs
utilizadas pelo núcleo da plataforma. A reutilização de componentes é
simplificada, possibilitando que qualquer aplicação publique suas capacidades e
que estas possam ser reutilizadas por outra aplicação, dependendo apenas de
restrições de segurança.
• Bibliotecas
O Android possui um conjunto de bibliotecas desenvolvidas em C/C++, que
são utilizadas por vários recursos do sistema. Estas bibliotecas são acessadas
pelos frameworks disponibilzados aos desenvolvedores. Dentre as principais
bibliotecas estão:
o Freetype – utilizada para renderizar fontes e bitmaps;
o System C library – sua implementação deriva da biblioteca C padrão
sistema (libc) do Berkeley Software Distribution (BSD);
o Webkit – baseia-se no código aberto do browser webkit, um
renderizador de páginas para navegadores, com suporte a Cascading
Style Sheets (CSS), Javascript, Doom e Ajax;
o SQLite – engine de banco de dados relacional, implementada em C,
leve e embutida.
o SGL – responsável pela composição de gráficos 2D;
o Surface Manager – controla e gerencia o acesso aos subsistemas de
exibição, como as camadas de aplicações 2D e 3D;
o Media Libraries – suportam diversos formatos de áudio e vídeo, bem
como imagens estáticas, e hardware e software de plug-ins de codec;
o LibWebCore – utilizada para exibições web e no Android Browser;
o 3D libraries – baseadas nas API’s do OpenGL ES 1.0.
37
• Android Runtime
Pequena camada do ambiente de execução, que é instanciada a cada
execução de uma aplicação no Android. O Dalvik foi projetado de forma que
várias máquinas virtuais possam executar concorrentemente de maneira
eficiente.
As classes compiladas por um compilador Java (arquivos .class) são
convertidas para a máquina virtual através da ferramenta DX, distribuída com o
Android SDK, gerando um arquivo .DEX (Dalvik Executable), que é executado
pelo Dalvik.
O Dalvik baseia-se no kernel do Linux para prover a funcionalidade de
múltiplas threads e a gestão de baixo nível de memória.
O Core Librarie fornece a maioria das funcionalidades disponíveis nas
principais bibliotecas do Java, através de um grupo de bibliotecas. Estruturas de
dados, acesso a arquivos e acesso a redes e gráficos são algumas dessas
funcionalidades.
• Linux Kernel
A versão 2.6 do kernel do Linux é utilizada pela arquitetura do Android. O
kernel funciona como uma camada de abstração entre o hardware e o resto da
pilha de software, além de servir para os serviços centrais do sistema, como
segurança, gestão de memória, gestão de processos, pilha de protocolos de rede
e modelos de drivers.
Além disso, nesta camada também existe um poderoso gerenciador de
energia, onde um aplicativo solicita o gerenciamento de energia e o driver de
energia do kernel passa a checar periodicamente a utilização de todos os
dispositivos, desligando aqueles que não estão sendo utilizados.
38
3.2 MÁQUINA VIRTUAL DALVIK
A linguagem Java é utilizada para a construção de aplicações para o Android. Nesta
abordagem, existe uma máquina virtual otimizada para execução em dispositivos
móveis, chamada Dalvik.
As aplicações do Android são desenvolvidas normalmente com o Java,
utilizando-se todos os seus recursos, porém após o bytecod (.class) ter sido
compilado, ele é convertido para o formato .dex (Dalvik Executable), que é a
aplicação do Android compilada.
Após isso, os arquivos .dex e outros recursos como imagens são
compactados em um arquivo com extensão .apk (Android Package File), que é a
aplicação final, pronta para ser distribuída e instalada.
3.3 ANDROID SDK
O Android SDK5 é o software usado no desenvolvimento de aplicações no Android.
Ele contém um emulador que simula o celular, ferramentas utilitárias e uma API
completa para a linguagem Java, com todas as classes necessárias para
desenvolver as aplicações.
O Android SDK pode rodar em uma IDE como o Eclipse, Intellije e Netbeans.
Pode ser desenvolvido também utilizando a linha de comando. A IDE Eclipse é a
mais utilizada pelos desenvolvedores. Ela possui um plugin customizado, chamado
Android Development Tool (ADT), que fornece suporte à edição de vários tipos de
arquivos.
O emulador contido no SDK pode simular diversos tipos de hardware. Ele
representa perfeitamente o funcionamento de um celular com o Android. Tudo que
executa num celular, pode ser executado no emulador. Um exemplo de emulador
pode ser visto na Figura 3.
5
O Android SDK pode ser baixado em http://developer.android.com/sdk/
39
Fonte: GOOGLE, 2011
Figura 3 - Emulador do Android
Outro componente incluso no SDK é o Dalvik Debug Monitor Service (DDMS),
que possibilita o acompanhamento de todos os processos que executam no
hardware durante a aplicação, podendo simular inclusive o envio e recebimento de
ligações e mensagens de texto.
3.4 VERSÕES DO ANDROID
Existem diversas versões do sistema operacional do Android, e cada celular possui
uma versão diferente. O primeiro celular Android, o HTC G1, possuía a versão 1.1
(LECHETA, 2010) e, obviamente, os mais novos dispositivos saem com versões
mais recentes.
No Android, uma versão do sistema operacional é conhecida como
plataforma. Cada plataforma tem um código identificador, conhecido como API
Level. A Figura 4 mostra as plataformas existentes até o momento da escrita deste
trabalho, e as versões correspondentes do Android.
40
Fonte: GOOGLE, 2011
Figura 4 - Versões do Android
As primeiras versões, até o Android 2.3, são utilizadas em smartphones. Já as
versões mais novas, Android 3.0 e Android 3.1 são utilizadas pelos tablets,
possuindo novos recursos disponíveis apenas para esses dispositivos.
Para o futuro, a Google já anunciou uma nova versão, que se chamará Ice
Cream Sandwich e tem como objetivo integrar smartphones e tablets, colocando
todos os aparelhos móveis na mesma página, através de um sistema operacional
modular (PC WORLD, 2011).
3.5 COMPONENTES DA APLICAÇÃO
No Android, existe um grupo de quatro componentes essenciais, que o sistema pode
instalar e executar sempre que necessário. Toda aplicação deve utilizar ao menos
um desses componentes, não sendo necessária, entretanto, a utilização de todos
eles ao mesmo tempo. Sempre que forem utilizados por uma aplicação, estes
elementos devem ser declarados num arquivo Extensible Markup Language (XML),
chamado AndroidManifest.xml. Neste arquivo estão contidos todos os componentes
da aplicação, além das capacidades e requerimentos para tais (LECHETA, 2010).
Os quatro componentes principais são:
• Activities;
• Intent Receivers ou Broadcast Receivers;
• Services;
41
• Content Providers.
A Activity (Atividade) é o componente mais comumente utilizado. Na maioria das
vezes, é representado por uma tela na aplicação. Uma activity é sempre
implementada como uma classe que extende da classe base Activity. Sua interface
é composta por Views, que consistem em várias telas que respondem a eventos
previamente programados.
Cada activity possui um ciclo de vida específico, que é definido através dos
seguintes métodos:
• onCreate(): chamado na criação inicial da atividade;
• onStart(): chamado quando a aplicação se torna visível para o usuário;
• onResume(): chamado quando a aplicação inicia a interação com o usuário,
ficando no topo da pilha de atividade;
• onPause(): chamado quando uma outra atividade está prestes a começar.
Geralmente as informações que ainda não foram salvas são gravadas neste
momento;
• onStop(): chamado quando a atividade não está mais em uso e perdeu foco
para outra atividade;
• onDestroy(): chamado quando a atividade termina, ou quando o sistema
precisa liberar recursos, finalizando a atividade.
42
Fonte: adaptado de LECHETA, 2010
Figura 5 - Ciclo de vida de uma activity
O ciclo de vida de uma activity, mostrado na Figura 5, funciona da seguinte
maneira: quando uma atividade é iniciada, esta é colocada no topo da “pilha de
atividades” e se torna a atividade em execução. Se existir alguma activity anterior,
esta permanece na posição logo abaixo, e só passa para o estado “Executando”
quando a activity acima for finalizada.
Uma activity pode se encontrar em quatro estados:
• Executando: a atividade está ativa no dispositivo;
• Parada: a atividade perdeu foco para outra, mas mantém todas as suas
informações de estado, mesmo sem interagir com o usuário. Pode ser
finalizada se o sistema estiver com baixo nível de memoria disponível;
43
• Interrompida: a atividade não está sendo utilizada pelo usuário, mas mantém
suas informações de estado. Geralmente é finalizada quando uma
recuperação de memória é necessária e assim perde suas informações;
• Finalizada: a atividade pode ser removida, caso esteja parada ou
interrompida temporariamente. Nesse caso, o estado anterior só pode ser
restaurado se o desenvolvedor tiver implementado os métodos.
Existem basicamente três ciclos numa atividade:
• Ciclo completo: começa no onCreate(), quando toda configuração é
realizada, e termina no onDestroy(), com a liberação de todos os recursos
utilizados pela atividade;
• Ciclo de vida visível: começa no onStart(), quando a atividade fica disponível
e visível para o usuário, mesmo não havendo interação. Termina com a
chamada a onStop(), quando o usuário não visualiza mais a atividade;
• Primeiro ciclo da atividade: começa no onResume() e termina no
onPause(). É quando a atividade está visível e em interação com o usuário,
no topo da pilha de atividades. O código neste período deve ser leve, devido
a iminente troca dos estados onPause() e onResume().
O movimento entre as atividades é dado através da Intent, que representa a
intenção de cada activity, ou seja, ela define o que deve ser feito caso seja
acionada. A classe Intent Filter descreve todas as ações (Intents) que uma atividade
pode acionar. Assim, quando uma Intent é acionada, o sistema busca os filtros de
intenção de todas as atividades e escolhe aquela mais adequada com aquela Intent.
Então, a nova activity é informada do interesse, carregando uma nova tela.
Cada activity deve ser configurada no arquivo AndroidManifest.xml, utilizando a
tag <activity>, como no exemplo da Figura 6, em que a activity ExemploActivity1 é a
activity principal da aplicação.
44
Fonte: Adaptado de LECHETA, 2010
Figura 6 - Exemplo de Activity
Os Services são códigos sem interface de usuário, que rodam em background e
não são interrompidos pela troca de atividade pelo usuário. Diferentemente das
activities que possuem ciclo de vida próprio e vida curta, os services mantém o
serviço ativo até que seja recebida outra ordem. Através de uma interface de serviço
a aplicação pode se conectar com um serviço conectado.
Um serviço geralmente consome muitos recursos, além de memória e CPU. Não
precisa de interface gráfica, pois não há necessidade de interação com o usuário.
Um processo da classe Service pertence ao ciclo de vida controlado pelo sistema
operacional do Android e é mantido em execução até que seja necessário encerrar
alguns processos para liberar memória e recursos.
O uso da classe Service poderia ser substituído pela utilização de uma thread
simples, porém isto não é recomendado pois o Android conhece a classe Service e
pode gerenciar o seu ciclo de vida junto com os outros processos do sistema
operacional. Ou seja, se uma thread for utilizada ela pode ser eliminada pois não faz
parte do ciclo de vida conhecido do Android. Por outro lado, existe um controle sobre
o ciclo de vida da classe Service, que tem prioridade máxima sobre qualquer outro
processo executando em segundo plano e somente será encerrado em condições
críticas de memória (LECHETA, 2010).
Mesmo que um Service seja encerrado, o Android posteriorimente tentará iniciálo para que o processo continue assim que as condições de memória e os recursos
usados estejam normais. Assim, o serviço deve ser codificado de uma forma que
seja possível recuperar o seu estado no momento de seu encerramento.
Geralmente, um Service é iniciado por um Broadcast Receiver.
45
O Broadcast Receiver ou Intent Receiver é o componente responsável por tratar
a reação ao evento recebido através de uma intenção. Ele não possui uma interface
com o usuário, mas pode interagir com o usuário através de um gerenciador de
notificações (Notification Manager), um mecanismo que alerta o usuário sobre a
ocorrência de algum evento de interesse.
A classe BroadcastReceiver sempre é executada em segundo plano durante
pouco tempo e não há interface gráfica. Seu objetivo é receber uma mensagem
(Intent) e processá-la sem o usuário perceber.
O BroadcastReceiver é configurado no arquivo AndroidManifest.xml, utilizando a
tag <receiver> em conjunto com a tag <intent-filter>, definindo uma ação e uma
categoria.
Na
Figura
ExemploReceiver1
que
7
podemos
pode
visualizar
interceptar
uma
a
configuração
mensagem
da
com
classe
a
ação
FAZER_ALGO.
Fonte: Adaptado de LECHETA, 2010
Figura 7 - Exemplo BroadcastReceiver
O último componente é o Content Provider, ou provedor de conteúdo, utilizado
quando existe a necessidade de compartilhar dados da aplicação com outras
aplicações. Através dele, um repositório utilizado por ambas as aplicações permite o
armazenamento e a recuperação de dados.
Utilizando a classe ContentProvider, uma aplicação pode consultar, inserir,
alterar e excluir informações de uma outra aplicação. O Android tem uma série de
provedores de conteúdos nativos, como por exemplo, consultar os contatos da
agenda, visualizar os arquivos, imagens e vídeos.
Há um padrão na forma de comunicação da aplicação com um provedor de
conteúdo, independetemente de ter sido criado pelo desenvolvedor ou ser nativo do
Android.
46
3.6 INTERFACE GRÁFICA
A interface gráfica de uma aplicação Android é construída utilizando-se objetos das
classes View e ViewGroup. Existem diversos tipos de objetos e todos eles são
descendentes da classe View (GOOGLE, 2011).
A classe View serve como base para subclasses chamadas widgets, que
oferecem objetos de interface completamente implementados, como botões e
campos de texto. A classe ViewGroup serve como base para subclasses chamadas
layouts, que oferecem diversos tipos de arquitetura de layout, como linear, tabular e
relativa.
A interface de uma Activity é declarada utilizando-se uma hierarquia de nós
de View e ViewGroup, como visto na Figura 8. A árvore hierárquica pode ser simples
ou complexa, dependendo da necessidade da aplicação e pode ser construída
utilizando-se widgets e layouts pré-definidos ou com Views criadas pelo próprio
desenvolvedor.
Fonte: GOOGLE, 2011
Figura 8 - Hierarquia de nós View e ViewGroup na interface gráfica
A activity deve chamar o método setContentView(), passando como referência
o nó raiz da árvore de hierarquia, para que esta seja anexada à tela.
A forma mais comum de se definir o layout da aplicação e expressar sua
árvore é utilizando um arquivo XML. O XML oferece uma estrutura de fácil
entendimento para o layout, como o HTML. Cada elemento XML é um objeto View
47
ou ViewGroup (ou descendente destes). Objetos View são as folhas da árvore,
enquanto os objetos ViewGroup são os ramos.
O nome de um elemento XML corresponde à classe Java que ele representa.
Assim, um elemento <TextView> cria um objeto TextView na interface, e um objeto
<LinearLayout> cria um objeto LinearLayout.
Fonte: Adaptado de GOOGLE, 2011
Figura 9 - Arquivo XML de layout
A Figura 9 mostra um exemplo simples de arquivo XML de layout vertical com
um campo de texto e um botão. Pode-se notar que o elemento LinearLayout contém
os elementos TextView e Button. É possível aninhar vários LinearLayout (ou outros
tipos de view group), para construir layouts mais complexos.
É possível também construir objetos View e ViewGroup no próprio código
Java, utilizando o método addView(View) para inserir dinamicamente estes novos
objetos.
Um widget é um objeto View que serve como interface de interação com o
usuário. O Android provê uma variedade de widgets, como botões, checkboxes e
caixas de texto, permitindo rápida criação da interface. Existem também widgets
mais complexos, como relógio e controle de zoom. Além disso, o desenvolvedor
pode criar seus próprios elementos, definindo suas próprias classes ou extendendo
e combinando widgets já existentes.
48
3.7 SEGURANÇA E PERMISSÕES
O Android não apresenta um framework que gerencie e implemente políticas de
segurança para o download de aplicativos. O gerenciamento é feito pelo próprio
usuário, cabendo a este definir se determinada aplicação pode realizar determinada
operação.
O conceito de Unix User Identification (UID) implementado no Android é
diferente daquele dos PCs, onde cada usuário tem um único UID e todas as
aplicações que rodam para ele possuem o mesmo UID. No Android, um UID é
alocado a uma aplicação e não a uma pessoa. As aplicações ficam separadas umas
das outras, sendo cada uma um processo separado com UID único e com
permissões de uso distintas.
A arquitetura do Android foi desenhada de forma que nenhuma aplicação
tenha permissão para realizar qualquer operação que impacte negativamente o
funcionamento de outras aplicações, do sistema operacional ou do usuário. Isso
inclui leitura ou gravação de dados particulares do usuário (como contatos e emails), ler ou escrever arquivos de outro aplicativo, acessar a rede, manter o
dispositivo acordado, entre outros.
O kernel do Android mantém as aplicações dentro de uma sandbox, que
define os seus limites de utilização de recursos. Por conta disto, todos os recursos e
dados devem ser compartilhados explicitamente. As permissões são declaradas
pelas aplicações estaticamente e, no momento da instalação do aplicativo, o sistema
solicita o consentimento do usuário. Não existe um mecanismo de concessão de
permissões dinâmica, pois isso prejudicaria a experiência do usuário em detrimento
da segurança.
As aplicações Android (arquivos .apk) devem ser assinadas com um
certificado cuja chave primária é mantida por seus desenvolvedores. Este certificado
não precisa ser assinado por uma entidade de certificação. O objetivo dos
certificados é identificar os autores de cada aplicação, permitindo que o sistema
gerencie o acesso das aplicações a determinados recursos.
49
O Android tenta minimizar o impacto de uma aplicação em pertubar a
experiência de uso do usuário fazendo com que a permissão de uso de
determinadas funções, como discar um número, tenha que ser explicitamente
solicitada (TAURION, 2010).
Uma aplicação básica do Android não possui permissões associadas a ela, ou
seja, ela não pode fazer nada que impacte na experiência do usuário ou em
qualquer dado do dispositivo. Para usar qualquer recurso protegido do dispositivo,
uma declaração deve ser incluída no AndroidManifest.xml, utilizando-se a tag <usespermission>. Na Figura 10, o exemplo de uma aplicação que precisa controlar o
recebimento de SMS.
Fonte: Adaptado de GOOGLE, 2011
Figura 10 – Exemplo de permissão
3.8 ANDROID MANIFEST
Toda aplicação Android deve possuir um arquivo, conhecido como manifesto, o
AndroidManifest.xml. Este arquivo deste conter todas as informações essenciais
sobre o aplicativo que o sistema Android deve ter antes que ele possa executar
qualquer código da aplicação. O manifesto inclui, entre outros:
• A declaração do nome do pacote Java da aplicação, que serve como um
identificador exclusivo para o aplicativo;
• A descrição dos componentes da aplicação: activities, servers, broadcast
receivers e content providers que compõem a aplicação;
• A declaração das classes que implementam cada um dos componentes e a
publicação de suas capacidades. Isto permite que o Android saiba o que os
componentes são e em que condições eles podem ser iniciados;
50
• Processos que irão hospedar os componentes da aplicação;
• Permissões que o aplicativo deve ter para acessar partes protegidas da API e
interagir com outras aplicações;
• Permissões que outras aplicações devem ter para interagir com componentes
do aplicativo;
• Nível mínimo da API do Android que o aplicativo requer;
• Bibliotecas que devem ser ligadas à aplicação.
A estrutura do arquivo AndroidManifest.xml pode ser vista na Figura 11.
Fonte: GOOGLE, 2011
Figura 11 - Estrutura do AndroidManifest.xml
51
3.9 COMUNICAÇÃO COM UM SERVIDOR
Existem aplicações que necessitam se comunicar com algum servidor web, para
realizar o sincronismo das informações. No Android, pode-se utilizar o protocolo
HTTP, sockets ou web services para realizar esta comunicação (LECHETA, 2010).
Uma aplicação pode utilizar um banco de dados no Android, porém muitas
vezes este banco já existe em algum lugar. Por questões de segurança e também
da grande quantidade de informações que necessitam ser armazenadas, é
recomendado que este banco esteja em um servidor convencional, e não no celular.
Daí surge a necessidade da aplicação executando no celular se comunicar
com o servidor do banco de dados para obter as informações necessárias. As
aplicações de mobilidade estão se tornando cada vez mais “on-line”, acessando e
atualizando as informações em tempo real. Hoje as operadoras fornecem serviços
de internet com planos cada vez mais acessíveis, além da conexão 3G, que
aumenta a velocidade da conexão.
Dessa forma, é necessário desenvolver aplicações que se comuniquem com
outras já existentes na internet.
A primeira forma de comunicação é através de um socket, disponível em um
determinado endereço e com uma porta devidamente aberta, aguardando a
conexão. Utiliza-se o pacote java.net e a classe java.net.Socket, da mesma forma
que uma aplicação Java normal.
Outra forma de comunicação é através do protocolo HTTP, no qual um
servidor web na internet é utilizado para receber as requisições e enviar a resposta
para o celular. Nesse caso, o celular vira o cliente do servidor web, como se fosse
um browser.
A última maneira é acessando um web service, uma das tecnologias mais
utilizadas para integrar aplicações atualmente. O Android não possui nenhuma API
nativa para acessar um web service, porém qualquer outra biblioteca pode ser
utilizada e incorporada a um projeto. No entanto, a biblioteca escolhida deve ser leve
52
e compacta, pois a aplicação irá executar num dispositivo móvel, que não tem a
mesma capacidade de processamento de um computador normal.
3.10 ANDROID MARKET
O Android Market6 é um repositório central dos aplicativos desenvolvidos para o
Android. Nele, os desenvolvedores podem disponibilizar suas aplicações, de
maneira semelhante ao Youtube7, bastando cadastrar e enviar o aplicativo.
Ao publicar uma aplicação, o desenvolvedor tem que pagar uma taxa e
concordar com os termos de uso. Depois disso, o aplicativo já pode ser baixado e
instalado pelos usuários. Existem aplicativos gratuitos e outros pagos. Quem
constrói os aplicativos tem direito a 70% dos seus lucros.
Para os usuários utilizarem o Android Market basta acessar o site pelo celular e
baixar o aplicativo desejado. Existe um ranking de melhores aplicativos, de acordo
com a classificação e os comentários deixados pelos usuários.
Fonte: EIRAS, 2011
Figura 12 - Tela inicial do Android Market
A Figura 12 mostra a tela inicial do Android Market acessado pelo dispositivo, e a
Figura 13 mostra a tela de instalação de um aplicativo.
6
Site para download de aplicativos do Android: http://market.android.com/
7
Site de compartilhamento de vídeos: http://www.youtube.com/
53
Fonte: EIRAS, 2011
Figura 13 - Tela de instalação de um aplicativo
A Google possui uma estratégia para evitar a fragmentação da plataforma,
mantendo controle sobre o acesso ao Android Market e sobre os aplicativos que
permitem acesso aos serviços dA Google (Gmail, Maps, etc). Assim, há a
possibilidade da Google pressionar os fabricantes e desenvolvedores a seguirem
padrões de desenvolvimento que permitam que os softwares rodem em diversos
dispositivos, evitando a expansão de aparelhos limitados, que rodem em apenas um
ou poucos modelos (MORIMOTO, 2010).
Além do Android Market, existem também outras lojas menores como o
http://andappstore.com e http://slideme.org/. Elas servem como alternativas para
desenvolvedores que tiveram seus aplicativos rejeitados no Android Market ou não
querem pagar alguma comissão para vender seus aplicativos.
Existe a possibilidade também de instalar os aplicativos localmente através do
comando “adb install”, disponível no SDK.
54
4 TRABALHO DESENVOLVIDO
O wiki Disciplinas do DCC hoje é acessado pela web. Nesse modelo, os alunos têm
dificuldade em acessar informações sobre a disciplina se estiverem em um lugar
remoto, sem acesso à internet através de um computador pessoal.
Para melhorar este cenário, uma solução encontrada foi o desenvolvimento
de uma ferramenta que disponibilize estes dados em qualquer lugar que o usuário
se localize, atentando à tendência de expansão dos aplicativos móveis. O acesso a
esta ferramenta será dado através de um dispositivo móvel com o sistema
operacional Android, sendo aproveitadas as facilidades de desenvolvimentos
providas por esta plataforma.
O estudo foi iniciado com uma pesquisa entre online entre alunos e
professores do Departamento de Ciências da Computação da UFBA, que
responderam sobre a utilização de dispositivos móveis e do wiki de disciplinas.
A partir dos resultados do questionário, concluiu-se que o aplicativo
desenvolvido na plataforma Android seria útil e viável, dado o número considerável
de adeptos do sistema operacional da Google, e a quantidade de pessoas que
declararam a intenção de utilizar o aplicativo.
O trabalho cobriu as etapas do processo de desenvolvimento de software de
Análise de Requisitos, Especificação, Arquitetura de Software e Prototipação. As
três primeiras fases são descritas na seção 4.3, e a última na seção 4.4.
4.1 QUESTIONÁRIO DE PESQUISA
Para iniciar o trabalho foi realizada uma pesquisa entre alunos e professores do
departamento com de medir a utilização de dispositivos móveis, a adoção da
55
plataforma da plataforma Android, do wiki de disciplinas, e o impacto que o aplicativo
iria causar.
O questionário constava de 10 perguntas e foi feito através da plataforma
Google Docs, sendo enviado para as listas de discussão do departamento que todos
os alunos e professores tem acesso. No total, 81 pessoas responderam ao
questionário, o que corresponde a cerca de 20% do total de alunos e professores do
departamento.
Com base no resultado da pesquisa pode-se concluir que há uma ampla
utilização de dispositivos móveis e também do wiki de disciplinas. Além disso, foi
possível também medir a relevância de um aplicativo para acesso às informações
presentes no wiki, sendo que a maioria dos respondentes declarou que utilizaria a
ferramenta.
As perguntas do questionário, assim como as respostas e os respectivos
gráficos encontram-se no APÊNDICE 1 - QUESTIONÁRIO.
4.2 WIKI DISCIPLINAS DO DCC
Um wiki é uma plataforma para compartilhamento coletivo de conteúdo. Nesta
ferramenta, o usuário além de acessar o conteúdo, pode editá-lo. Todas as
modificações são armazenadas em um lugar visível a todos, podendo ser desfeitas a
qualquer momento com a mesma facilidade que foram feitas.
Existem diversas ferramentas para criação e armazenamento de um wiki. O
acesso ao conteúdo geralmente é disponibilizado a todos, porém sua edição é na
maioria das vezes permitida apenas para usuários cadastrados.
O wiki Disciplinas do DCC/UFBA8 utiliza a ferramenta Foswiki, e o seu acesso
é público e gratuito. Entretanto, o acesso a modificações é restrito a alunos e
professores do Departamento de Ciências da Computação da UFBA. Para
acrescentar, alterar ou excluir qualquer conteúdo, basta utilizar os mesmos login e
senha utilizados no laboratório do DCC.
8
http://disciplinas.dcc.ufba.br
56
O sistema disponibiliza o conteúdo das disciplinas, que são divididas em
quatro grupos: Graduação, Mestrado, Doutorado e Currículo Antigo. Para cada
disciplina, o sistema disponibiliza quatro opções: Página da Disciplina, SVN, Lista de
Discussão e Pasta da Disciplina.
A opção Página da Disciplina, que possui o conteúdo que será extraído e
exibido no aplicativo móvel, está dividida da seguinte maneira:
• A Disciplina: apresenta a visão geral da disciplina, os pré-requisitos,
ementa, objetivos e metodologia.
• Bibliografia: apresenta a bibliografia adotada pela disciplina.
• Notas de Aula: nesta seção, são disponibilizados os arquivos utilizados
pelos professores em sala de aula.
• Exercicios: listas de exercícios passadas durante o semestre.
• Links: lista de outros sites relevantes à matéria.
• FAQ: sessão de dúvidas.
• Semestre Corrente: geralmente, os professores utilizam este espaço
para compartilhar o calendário da disciplina no semestre corrente,
assim como notas e resultados parciais.
• Semestres Anteriores: repositório de páginas dos semestres anteriores.
• Ferramentas da web
A página principal do wiki pode ser visualizada na Figura 14.
57
Figura 14 - Disciplinas.dcc.ufba.br
4.3 O PROJETO DA APLICAÇÃO
Visto o número considerável de adeptos dos dispositivos móveis com a plataforma
Android, e da quantidade de futuros utilizadores do aplicativo móvel, foi decidido o
desenvolvimento da aplicação nesta plataforma. O aplicativo móvel proposto traz o
conceito de mobilidade tornando possível o acesso às informações do wiki de
disciplinas através de um dispositivo móvel com o sistema operacional Android.
O sistema deverá exibir as informações das disciplinas, de acordo como foi
descrito na seção 4.2. O sistema deve permitir que o usuário faça busca por uma
disciplina ou que seja exibida uma lista de todas as disciplinas cadastradas no wiki.
Além disso, o sistema deve permitir que o usuário acesse a página principal do wiki
pelo próprio aplicativo. O usuário deverá apenas visualizar o conteúdo das páginas,
não sendo permitida a alteração de nenhuma informação.
Como o objetivo do aplicativo é apenas visualizar o conteúdo do wiki não é
necessário que exista um controle de acesso de usuários, assim todos têm
permissão de acesso a todas as funcionalidades.
58
Completando a etapa de análise de requisitos, são desenvolvidos os casos de
uso. Eles descrevem os processos dos sistemas, especificando a interação destes
com os agentes externos que o utilizam e identificando as consultas e
transformações da informação necessárias (WAZLAWICK, 2004). De acordo com os
requisitos levantados, o aplicativo aqui projetado possuirá três casos de uso: Buscar
Disciplina, Listar Disciplinas e Abrir Site. O usuário é o único ator que interage com o
sistema nos casos de uso.
Segundo Bezerra (2007), diagramas de caso de uso correspondem a uma
visão externa do sistema e representam graficamente os atores, casos de uso e
relacionamentos entre eles. A interação de elementos externos com funcionalidades
do sistema é ilustrada em um nível alto de abstração.
A Figura 15 exibe o diagrama de casos de uso que descreve a interação do
usuário com a aplicação.
Figura 15 - Diagrama de Casos de Uso
No caso de uso Buscar Disciplina, o usuário escolhe a opção na tela inicial, e
o sistema abre a tela de pesquisa. O usuário preenche os campos de pesquisa e o
sistema retorna uma lista com as disciplinas mais relevantes para a busca. Se não
existir disciplina que satisfaça aos critérios de busca, o sistema retorna uma
mensagem ao usuário. Se houver, o sistema abre a tela da disciplina com as opções
listadas na seção 4.2.
59
No caso de uso Listar Disciplinas, o usuário escolhe a opção na tela inicial, e
o sistema abre a tela de listagem por categorias. O usuário escolhe a categoria que
deseja e o sistema abre uma nova tela de listagem, com as disciplinas disponíveis.
O usuário seleciona a disciplina e o sistema abre a tela da disciplina com as opções
listadas na seção 4.2.
No caso de uso Abrir Site, o usuário escolhe a opção na tela inicial, e o
sistema abre a página do wiki na web através do navegador do dispositivo móvel.
Segundo Larman (2007), um diagrama de sequência ilustra as interações dos
atores com os objetos do sistema, para um cenário específico de um caso de uso.
No caso do aplicativo deste trabalho, o único ator é o usuário e os objetos do
sistema são a interface do Android, a conexão HTTP e o Servidor.
Abaixo, nas Figuras 16 e 17, são exibidos os diagramas de sequência dos
casos de uso Buscar Disciplina e Listar Disciplinas. Não foi necessário exibir o
diagrama do caso de uso Abrir Site, pois a única interação do sistema com usuário
se dá quando o usuário escolhe a opção. A partir daí, a interação é do usuário com o
navegador do dispositivo, e não com o aplicativo em si.
Figura 16 - Diagrama de sequência Buscar Disciplina
60
Figura 17 - Diagrama de sequência Listar Disciplinas
Pode-se perceber que os diagramas são similares. Em ambos, a aplicação só
necessita conectar-se ao servidor para buscar a lista de disciplinas ou para exibir as
informações. Nas demais ações, os dados necessários para exibição já fazem parte
do código da aplicação.
Não será necessário implantar um banco de dados, pois as informações
necessárias serão recuperadas de um servidor de dados já existente. Como visto na
seção 3.9, aplicativos Android podem se comunicar com um servidor de três formas
diferentes: através de sockets, utilizando o protocolo HTTP ou com web services. No
aplicativo proposto, a comunicação com o servidor é dada pela segunda forma,
através de uma conexão HTTP.
A arquitetura de software representa o sistema de uma forma abstrata, e
direciona as interfaces entre ele e outros softwares, e também com o hardware ou
com o sistema operacional (WIKIPEDIA, 2011). A arquitetura do aplicativo é
ilustrada na Figura 19. Quando necessita de algum dado, a aplicação se conecta à
página do wiki através de uma requisição HTTP, cabendo a esta a função de
recuperar as informações do servidor, que está conectado a algum servidor de
armazenamento.
61
Figura 18 - Arquitetura da aplicação
A resposta da página web para o aplicativo é um arquivo HTML em forma de
texto, que será processado pelo código da aplicação para se obter o conteúdo a ser
exibido para o usuário. A conexão da aplicação é ilustrada na Figura 19.
Figura 19 – Conexão com a página do wiki
4.4 PROTÓTIPO DA APLICAÇÃO
Após a fase de projeto, foi construído o protótipo da aplicação. Um protótipo é um
produto que ainda não está pronto para comercialização ou distribuição,
apresentando algumas ou todas as funcionalidades que o produto terá.
No protótipo aqui apresentado, apenas a comunicação entre as telas foi
desenvolvida. A conexão com o servidor e o processamento das informações não
foram implementadas, portanto o conteúdo apresentado nas telas provavelmente
não refletirá o seu estado atual.
62
O protótipo foi desenvolvido utilizando-se a IDE Eclipse, que possui o ADT,
um plugin customizado, que oferece diversas funcionalidades e facilita o
desenvolvimento de aplicações Android pela ferramenta. A Figura 20 mostra a tela
do ambiente de desenvolvimento.
Figura 20 - IDE Eclipse
Utilizou-se a plataforma API Level 8, que corresponde à versão 2.2 do
Android, sendo definida também como a versão mínima de um dispositivo para
executar a aplicação.
A interface gráfica da aplicação foi construída utilizando os objetos de layout
oferecidos pelo próprio Android. A IDE Eclipse oferece um recurso em que o layout
da tela pode ser imediatamente visualizado, sem a necessidade de executar a
aplicação. Na mesma tela de visualização, há uma caixa com todos os objetos, que
podem ser arrastados para a tela e automaticamente inseridos no código. Além
disso, algumas configurações podem ser editadas, como resolução e orientação da
tela, o tema de layout utilizado pela aplicação, e a versão do Android. A Figura 21
mostra a tela de edição do arquivo XML de layout.
63
Figura 21 - Tela de edição do XML Layout
A Figura 22 mostra a tela inicial do aplicativo, que possui três botões de
interação com o usuário: Buscar Disciplina, Listar Disciplinas e Abrir Site. O primeiro
abre a tela mostrada na Figura 25, com a tela de pesquisa de disciplina. O segundo
botão abre a tela mostrada na Figura 26, e o último abre a página do wiki da
disciplina, mostrado na Figura 30.
Figura 22 - Tela inicial do aplicativo
As Figuras 23 e 24 mostram os códigos do XML de layout e da activity
principal DisciplinasDCC, respectivamente. Como visto na seção 3.6, o arquivo XML
define a interface gráfica de cada activity, onde os objetos gráficos que farão parte
da tela serão declarados. Na Figura 23, é possível visualizar a declaração de três
objetos, o texto de boas vindas (classe TextView), a imagem da logomarca do DCC
64
(classe ImageView) e o botão para abrir a tela de pesquisa de disciplinas (classe
Button).
Figura 23 - XML de layout da Activity principal
A Figura 24 mostra parte do código da activity principal. Toda activity deve
iniciar com o método onCreate, onde é chamado o mesmo método da classe-pai
(Activity) e definido qual o layout será utilizado pela activity, através do método
setContentView. No exemplo mostrado, é utilizado o layout main.xml, mostrado na
Figura 23.
No código da aplicação, apenas os objetos de layout que interagem de
alguma forma com o usuário, ou são dinamicamente alterados em tempo de
execução, devem ser declarados. No exemplo aqui mostrado, o texto de boasvindas (TextView) e a imagem (ImageView) são estáticos e não interagem com o
usuário, portanto não precisam ser invocados.
Já o botão Buscar Disciplinas, deve abrir uma nova tela (activity) ao ser
clicado. Por isso, o método setOnClickListener invoca a criação de uma nova Intent,
cujo objetivo é abrir a nova tela. A nova activiy é iniciada pelo método startActivity.
65
Figura 24 - Parte do código da Activity Principal DisciplinasDCC
Na tela de Pesquisa por Disciplinas, o usuário deve preencher o campo de
texto com o nome ou código da disciplina, e selecionar uma ou mais opções de filtro
(Graduação,
Mestrado,
Doutorado
ou
Currículo
Antigo).
As
disciplinas
correspondentes à pesquisa são retornadas e então o usuário escolhe a disciplina
que deseja visualizar.
Figura 25 - Tela de Pesquisa por Disciplinas
66
A Figura 26 mostra a tela de listagem de disciplinas. As listas são divididas
em Graduação, Mestrado, Doutorado e Currículo Antigo, assim como no wiki.
Figura 26 - Tela Lista de Disciplinas
O usuário escolhe um combo, e seleciona a disciplina que deseja visualizar
na lista mostrada na Figura 27.
Figura 27 - Tela de Seleção de Disciplinas
A tela de exibição das informações das disciplinas é mostrada na Figura 28. O
texto recuperado do wiki é mostrado nesta tela. As opções oferecidas ao usuário
estão no combo da parte superior da tela.
67
Figura 28 - Tela de exibição da disciplina
Para obter as informações das páginas do wiki, a aplicação faz uma conexão
HTTP com o servidor web, que retorna o conteúdo dos arquivos HTML em forma de
texto. Neste ponto, existe a necessidade da aplicação extrair apenas o conteúdo que
interessa ao usuário, eliminando as tags do HTML e as informações desnecessárias.
A configuração do arquivo HTML gerado pelas páginas do wiki facilita este
trabalho, pela existência de padrões que identificam as disciplinas nos menus, e
consequentemente os links para suas opções.
Para extrair o conteúdo, utiliza-se uma API do Java, que oferece mecanismos
para o tratamento de expressões regulares, conhecida como Regex, disponível no
pacote java.util.regex (SANTOS, 2009). Como o arquivo HTML contém padrões nas
tags, utiliza-se estes padrões como expressões regulares, através da classe Pattern.
Com os padrões formados, faz-se uma comparação no texto retornado pela página
web, através da classe Matcher e encontra-se o conteúdo a ser exibido na
aplicação.
A Figura 29 mostra as opções da tela de Disciplinas.
68
Figura 29 - Opções da Tela de Disciplinas
A Figura 30 mostra a página do wiki acessada pelo navegador do dispositivo,
que é uma das funcionalidades do aplicativo.
Figura 30 - Wiki acessado pelo aplicativo
Fazendo uma comparação entre a Figura 30 e as demais figuras que mostram
as telas da aplicação móvel, é notável a diferença de visualização e usabilidade.
Enquanto a página, que foi projetada para ser acessada em dispositivos com tela de
alta resolução, é exibida com o conteúdo distorcido, as informações exibidas pelo
69
aplicativo já estão ajustadas aos dispositivos de baixa resolução, prezando pela
usabilidade.
Além disso, a simplicidade aparece também como uma característica do
aplicativo móvel. Apenas o conteúdo que é relevante para aplicação é exibido para o
usuário, facilitando o manuseio e visualização das informações por parte do usuário.
Isso impacta positivamente também no tráfego de dados pela rede, haja vista a
necessidade de recuperar da página web apenas os textos, pois imagens e objetos
já fazem parte da aplicação.
70
5 CONCLUSÃO
O estudo abordado neste trabalho mostrou a evolução da computação móvel ao
longo do tempo, destacando o crescimento do número de dispositivos móveis, e a
adoção por parte de usuários comuns e do mercado corporativo às aplicações
móveis.
Foram estudadas as plataformas construídas por grandes empresas para
atender as necessidades do mercado móvel, com destaque para o sistema
operacional Android, desenvolvido pela Google juntamente com um grupo de
grandes empresas de telefonia móvel.
Através da apresentação das características e do funcionamento da
plataforma Android, foi possível entender as vantagens que esse sistema
operacional oferece. Estas vantagens têm como foco não apenas o usuário, por
possuir diversos recursos que satisfazem as necessidades deste, mas foca também
no desenvolvedor, provendo uma diversidade de facilidades de desenvolvimento,
resultado de sua arquitetura altamente flexível, focada na integração de aplicações.
O objetivo proposto pelo trabalho foi alcançado, sendo desenvolvido o
protótipo do aplicativo, que permite o acesso às informações do wiki Disciplinas do
DCC/UFBA através de um dispositivo móvel com o sistema operacional Android. A
necessidade de trazer esta ferramenta para o ambiente móvel foi comprovada pela
pesquisa realizada entre alunos e professores do departamento, na qual a maioria
absoluta dos respondentes indicou que utilizaria o aplicativo proposto. O
questionário também mostrou que o número de utilizadores de dispositivos móveis é
grande, com tendência a crescer ainda mais. A quantidade de dispositivos que
rodam Android também foi relevante para a escolha da plataforma que o aplicativo
seria desenvolvido.
Além de alcançar o objetivo, este estudo colaborou com a construção de um
maior conhecimento em relação à computação móvel, sua evolução histórica,
71
características, vantagens e desvantagens. Foi possível entender também que é
uma área que está em franco crescimento e tem muito a evoluir. Esta evolução se
dará principalmente com o Android, uma plataforma relativamente nova, cuja
tendência, revelada por números apresentados neste trabalho, é se tornar o sistema
mais adotado entre os dispositivos móveis.
Pelo fato de ser uma plataforma ainda em fase de maturação, ainda existem
poucas fontes de referência comprovadamente confiáveis para o Android, sendo que
a maior parte das existentes é encontrada na Internet. Assim, este estudo deve ser
considerado como uma referência para futuros trabalhos cujo estejam envolvidos no
tema o Android e a computação móvel.
Como trabalhos futuros, podemos listar a conclusão do processo de
desenvolvimento da aplicação, cujas etapas de implementação, testes e validação
seriam realizadas. Melhorias no sistema, como adicionar todas as funcionalidades
do wiki, como criação e edição de conteúdo e cadastro de usuários, além de integrar
o aplicativo com outras aplicações dos dispositivos, como agenda, calendário e
redes sociais. Além disso, a implementação da aplicação em outras plataformas
também está na lista de futuros trabalhos. Esta iniciativa pode ser tomada como
referência para que outros sistemas mantidos pelo departamento e pelo colegiado
também sejam levados para o ambiente móvel.
Para quem pretende iniciar o desenvolvimento de um aplicativo móvel na
plataforma
Android,
aconselha-se
começar
pelo
portal
de
suporte
aos
desenvolvedores do Android. O endereço do site é http://developer.android.com, e lá
pode ser encontrado o material teórico, assim como diversos exemplos de códigos.
Os assuntos abordados servem tanto para iniciantes na plataforma quanto para
aqueles que já tem alguma noção. O manual de referência do Android também está
todo no site.
Um livro que também ajudou muito no desenvolvimento deste trabalho foi o
Google Android: aprenda a criar aplicações para dispositivos móveis com o Android
SDK, de Ricardo R. Lecheta, da Novatec Editora. O livro tem uma abordagem
dinâmica e de fácil entendimento, com diversos exemplos que facilitam a
aprendizagem da plataforma.
72
REFERÊNCIAS
AQUINO, Juliana F. S. Plataformas de Desenvolvimento para Dispositivos Móveis.
2007. Monografia (Programa de Pós-Graduação em Informática) – PUC – Rio de
Janeiro.
AURICCHIO, Jocelyn. MotoBLUR é nova aposta da Motorola. Disponível em:
<http://blogs.estadao.com.br/link/motoblur-e-nova-aposta-da-motorola>. Acesso em:
10 jun. 2011.
AVELLAR E DUARTE. Usabilidade: Aplicativos móveis. Disponível em:
<http://www.avellareduarte.com.br/projeto/dispositivosMoveis/dispositivosmoveis_us
abilidadeAplicativos.htm>. Acesso em: 28 abr. 2011.
BERTOLUCCI, Jeff. 10 gadgets que os smartphones mataram. Disponível em: <
http://idgnow.uol.com.br/computacao_pessoal/2011/04/19/10-gadgets-que-ossmartphones-mataram > Acesso em: 18 mai. 2011.
BEZERRA, Eduardo. Princípios de Análise e Projeto de Sistemas com UML. 2 ed.
São Paulo: Ed. Campus, 2007.
CAMARGO, Camila P. de. Sistemas operacionais móveis: qual a diferença?
Disponível em <http://informticaaoalcancedetodos.blogspot.com/2010/02/diferencasentre-sistemas-operacionais.html>. Acesso em: 18 mai. 2011.
CONVERGÊNCIA DIGITAL. Redes Sociais lideram preferência nos aplicativos
móveis. Disponível em: <http://www.techlider.com.br/2011/02/redes-sociais-liderampreferencia-nos-aplicativos-moveis> Acesso em: 18 mai. 2011.
EIRAS, Richarde. Instalando aplicativos no smartphone Android. Disponível em:
<http://montoeiras.blogspot.com/2011/05/instalando-aplicativos-nosmartphone.html>. Acesso em: 07 jul. 2011.
GOOGLE. Android Developers. Disponível em: <http://developer.android.com>.
Acesso em: 20 jun. 2011.
IMASTERS. Mercado de aplicativos móveis deve arrecadar US$ 35 bilhões até
2014. Disponível em: <http://imasters.com.br/noticia/19207/aplicativosmoveis/
mercado_de_aplicativos_moveis_deve_arrecadar_us_35_bilhoes_ate_2014> .
Acesso em: 28 abr. 2011.
INFOWORLD/EUA. Quem disse que computação móvel se resume a smartphone?
Disponível em: <http://idgnow.uol.com.br/telecom/2010/03/24/quem-disse-quecomputacao-movel-se-resume-a-smartphone>. Acesso em: 2 mai. 2011.
73
INTEL. O conceito de mobilidade. Disponível em:
<http://www.nextgenerationcenter.com/scriptServices/courseToPdf.ashx?courseId=d
9e21f02-821f-4d38-bdf0-41704c2978b6>. Acesso em: 25 mai. 2011
JOHNSON, Thienne M. Java para Dispositivos Móveis: desenvolvendo aplicações
com J2ME. São Paulo: Ed. Novatec, 2007. ISBN 8575221434.
JORDÃO, Fábio. História: a evolução do celular. Disponível em:
<http://www.tecmundo.com.br/2140-historia-a-evolucao-do-celular.htm>. Acesso em:
28 abr. 2011.
KATKAR, Sanjay. Segurança em dispositivos móveis é coisa séria. Disponível em:
<http://mundodosjogos.org/seguranca-em-dispositivos-moveis-e-coisa-seria>.
Acesso em: 14 jun. 2011.
LARMAN, Craig. Utilizando UML e Padrões. São Paulo: Ed. Bookman, 2007.
LECHETA, Ricardo R. Google Android: aprenda a criar aplicações para dispositivos
móveis com o Android SDK. 2. ed. rev. e ampl. São Paulo: Novatec Editora, 2010.
LIMA, Rafael. O que o Android, plataforma para mobiles do Google, vai trazer de
mudança?. Disponível em: <http://imasters.com.br/artigo/7451/o_que_o_android
_plataforma_para_mobiles_do_google_vai_trazer_de_mudanca>. Acesso em: 17
mai. 2011.
MENDONÇA, Aderval. Para onde vão os Sistemas Operacionais móveis? Disponível
em: <http://www.devmedia.com.br/post-4568-Para-onde-vao-os-SistemasOperacionais-moveis.html>. Acesso em: 2 mai. 2011.
MORIMOTO, Carlos E. Entendendo o Android. Disponível em:
<http://www.hardware.com.br/tutoriais/android/pagina2.html>. Acesso em: 17 mai.
2011.
NUNES, Fabio. Aplicativos Móveis: por onde começar? Disponível em:
<http://idgnow.uol.com.br/blog/plural/2011/02/09/aplicativos-moveis-por-ondecomecar>. Acesso em: 28 abr. 2011.
PAPERCLIQ. Comunicação e Novas Tecnologias: Aplicativos Móveis. Disponível
em: <http://www.slideshare.net/papercliq/comunciacao-e-novas-tecnologiasaplicativos-mveis>. Acesso em: 18 mai. 2011.
PC WORLD. Já no forno, próxima versão do Android esquenta guerra dos sistemas
móveis. Disponível em: <http://idgnow.uol.com.br/mercado/2011/05/13/ja-no-fornoproxima-versao-do-android-esquenta-guerra-dos-sistemas-moveis>. Acesso em: 14
mai. 2011.
PEREIRA, Lucio C. O.; SILVA, Michel L. da. Android Para Desenvolvedores. Rio de
Janeiro: Brasport, 2009. ISBN 978-85-7452-405-4.
74
SANTOS, Tadeu. Introdução a Expressões Regulares com Java. Disponível em:
<http://javafree.uol.com.br/artigo/5090/Introducao-a-Expressoes-Regulares-comJava.html>. Acesso em: 30 jun. 2011.
SILVEIRA, Paulo. Google Android: uma nova plataforma Java para celulares?
Disponível em: <http://blog.caelum.com.br/google-android-uma-nova-plataformajava-para-celulares>. Acesso em: 17 mai. 2011.
SIQUEIRA, Ethevaldo. Mundo terá 55 bilhões de dispositivos móveis em 2020.
Disponível em: <http://blogs.estadao.com.br/ethevaldo-siqueira/2011/02/21/55bilhoes-de-dispositivos-moveis>. Acesso em: 28 abr. 2011.
TAURION, Cezar. Segurança no Android. Disponível em:
<https://www.ibm.com/developerworks/mydeveloperworks/blogs/ctaurion/entry/segur
an_c3_a7a_no_android?lang=en>. Acesso em: 6 jun. 2011.
TECH DREAMS BRASIL. Segurança em Dispositivos Móveis. Disponível em:
<http://www.techdreams.com.br/?p=20>. Acesso em: 10 jun. 2011.
TI INSIDE. Lojas de aplicativos móveis movimentam US$ 2,2 bilhões em 2010.
Disponível em: <http://idgnow.uol.com.br/mercado/2011/05/13/ja-no-forno-proximaversao-do-android-esquenta-guerra-dos-sistemas-moveis>. Acesso em: 28 abr.
2011.
VEJA. Iphone 4 é o rei dos dispositivos móveis. Disponível em:
<http://veja.abril.com.br/noticia/vida-digital/iphone-4-e-o-rei-dos-dispositivosmoveis>. Acesso em: 28 abr. 2011.
WAZLAWICK, Raul Sidnei. Análise e projeto de sistemas de informação orientados a
objetos. Rio de Janeiro: Ed. Elsevier, 2004. ISBN 85-352-1564-6.
WIKIPEDIA. História do Telefone Celular. Disponível em:
<http://pt.wikipedia.org/wiki/História_do_telefone_celular>. Acesso em: 28 abr. 2011.
—. Processo de desenvolvimento de software. Disponível em:
<http://pt.wikipedia.org/wiki/Processo_de_desenvolvimento_de_software>. Acesso
em: 8 jul. 2011.
—. Symbian OS. Disponível em: <http://pt.wikipedia.org/wiki/SymbianOS>. Acesso
em: 18 mai. 2011.
—. Windows Phone 7. Disponível em:
<http://pt.wikipedia.org/wiki/Windows_Phone_7>. Acesso em: 18 mai. 2011.
75
APÊNDICE 1 - QUESTIONÁRIO
Segue abaixo um resumo das perguntas e respostas do questionário, que foi
aplicado antes do início do trabalho, com o objetivo de medir a utilização de
dispositivos móveis e do wiki de disciplinas, além de verificar a necessidade de um
aplicativo móvel para acesso às informações do wiki.
Total de respondentes: 81.
1. Você possui um dispositivo móvel?
76
2. Quantos aparelhos?
3. Qual tipo de dispositivo?
77
4. Qual o Sistema Operacional do seu dispositivo(s)?
5. Você está satisfeito com o aparelho?
78
6. Você pretende adquirir outro dispositivo?
7. Você pretende adquirir um dispositivo móvel?
79
8. Você utiliza o wiki para acompanhar o andamento das disciplinas do DCC
(http://disciplinas.dcc.ufba.br)?
9. Você acha que o wiki é utilizado de maneira satisfatória?
80
10. Você utilizaria um aplicativo no seu dispositivo móvel para acompanhar o
wiki?
Download

Alexandre Silva - Hospedagem de páginas pessoais