Você está na página 1de 6

A UTILIZAO DE ESTRUTURA DE DADOS NAS ARQUITETURAS DE

APLICATIVOS PARA DISPOSITIVOS MVEIS DE LTIMA GERAO





Andr Philipe Martins Loureiro, Andr Schefer Moleiro e Felipe Gonalves da Rocha





Resumo



Este artigo trata-se da apresentao da utilizao de estrutura de dados, como pilhas e filas,
aplicado em programas de dispositivos mveis que contenham sistemas operacionais de
ltima gerao marcantes no mercado (Android, da Google e iOS, da Apple). Essa se dar
pela explicao sucinta das principais estruturas utilizadas nesses ambientes, como citada
anteriormente. Aps isso, apresentar-se- como esse conjunto aplicado na arquitetura interna
de um aplicativo e como ele interage com o sistema. Por fim, feito uma anlise sobre a
pesquisa feita, fazendo uma correlao entre os sistemas.


Palavras-chave: Aplicativos. Dispositivos Mveis. Estrutura de Dados.



Introduo

A correlao da teoria de estrutura de dados com a manipulao de diversas tecnologias,
principalmente aquelas que envolvem Interfaces com o Usurio (IU), vista atravs da
manipulao de dados, envio e recebimento de mensagens, entre os diversos momentos da
interao entre o homem e o sistema, como Pilhas e Filas. Ento, a conceituao destes itens
ser necessria para adentrar de como eles aparecem, virtualmente, nas arquiteturas dos
aplicativos, neste caso, mveis. Assim, ser visto como essas estruturas so manipuladas no
Android (Google) e iOS (Apple).

1. Estrutura de Dados
O termo Estrutura de Dados na Cincia da Computao refere-se ao meio de
organizar de dados (SCHILDT, 2004, p. 163), normalmente primitivos,
dinamicamente, isto , que armazenam, de alguma forma, os variados tipos de dados.
Os dados primitivos so aqueles que armazenam exatamente um valor de seu tipo
declarado por vez (DEITEL; DEITEL, 2010, p. 67) e cada tipo tem caractersticas
exclusivas (SCHILDT, 2004, p.24). E esses dados (...) correspondem a inteiros,
caracteres, valores de ponto flutuante e valores booleanos (SHILDT, 2004, p. 24).

As estruturas de dados podem ser das mais simples (vetores e matrizes), passando
pelas mais sofisticadas, como pilhas, filas e rvores. Essas estruturas podem exigir
vrios tipos diferentes de operaes a serem executadas (CORMEN, 2002, p. 159),
como, por exemplo, segundo Cormen (2002, p. 159), inserir elementos, (...) eliminar
elementos, (...) e testar a pertinncia de elementos a um conjunto, como um
dicionrio.

As pilhas (stacks, em ingls) so aluses a pilhas fsicas, como as pilhas de pratos
usados em restaurantes (CORMEN, 2002, p. 163). A justificativa que a ordem em
que os pratos so retirados da pilha o oposto da ordem em que eles so colocados
sobre as pilhas e, como consequncia, apenas o prato do topo est acessvel, segundo
Cormen (2002, p. 163). So estruturas do tipo Last-In, First-Out
1
(LIFO), como
apresentam Deitel e Deitel (2010, p. 162). Uma aplicao prtica ocorre em clculos
de calculadoras financeiras e/ou cientficas.

Por sua vez, as filas (queues, em ingls) so estruturas de dados que possuem a aluso
da operao de uma fila de alunos: o prximo que chega, vai ao final da fila; o
primeiro a sair aquele que est no comeo dela e que esperou mais tempo
2
, comenta
Cormen (2002, p. 164). Desta maneira, esse arranjo do tipo First-In, First-Out
3

(FIFO) (Deitel; Deitel, 2010, p. 707). Uma aplicao mais usual deste tipo de
tratamento aparece em filas de impresso de uma impressora compartilhada em rede
em um escritrio, por exemplo.

2. Android
O Android um sistema operacional (baseado em kernel
4
Linux) voltado para
dispositivos mveis, criada pela Android Inc., segundo Bloomberg Businessweek
(2013) (sendo comprada pela Google Inc. em 2005), sendo aplicado em centenas de

1
ltimo a entrar, Primeiro a sair (traduo nossa).
2
Talvez seja o meio mais democrtico de se tratar dados.
3
Primeiro a entrar, ltimo a sair (traduo nossa).
4
Kernel o componente central do sistema operacional da maioria dos computadores (WIKIPEDIA, 2013).
milhares de equipamentos mveis em mais de 190 pases ao redor do mundo
5
,
segundo Android Developers (2013). Atualmente na verso 4.4, batizada de Kit Kat
6
,
lanado em Outubro de 2013, aparece com algumas novidades, como novo
framework
7
para transies de interface e possibilidade de impresso por wireless.

Para explicar onde o assunto inserido neste texto, o conceito de Atividades
(Activities, do ingls) tem que ser minimamente explanado. Desta maneira, Android
Developers (2013) diz que

uma Atividade um componente de uma aplicao que prov uma tela com que o usurio possa
interagir com o sistema para fazer algo, como discar o telefone, tirar uma foto, enviar um e-mail ou
visualizar um mapa. Cada atividade mostrada em uma janela na qual desenhada na sua IU. A janela
tipicamente preenche a tela, mas pode ser menor e, desta maneira, flutuar sobre outras janelas
8
.

E, segundo Android Developers (2013), uma aplicao pode ter vrias atividades nelas
e que cada uma dessa (atividades) podem chamar as outras (ou outros aplicativos),
atravs de um processo de invocao feita atravs dos intentos (intent, do ingls).
Segundo Mednieks et al. (2010), uma intent representa uma descrio abstrata de
uma operao que uma atividade requer que outra (...) desempenhe.

Portanto, quando uma atividade faz esta operao, a atividade que gera a interao
entra em um estado chamado parado, empilhado na pilha de fundo (back stack, em
ingls), cuja funo armazenar as atividades que o usurio deixou para trs, e a
nova (aplicativo ou atividade) entra em operao, tornando-se o topo da pilha. Quando
o usurio pressiona o boto Back
9
, esta atividade desempilhada e destruda,
reanimando o novo elemento topo, restaurando o estado que ficou quando foi
empilhada. E atividades que esto nesta pilha nunca so rearranjados, apenas

5
Android powers hundreds of millions of mobile devices in more than 190 countries around the world. (traduo
nossa).
6
Como curiosidade, os codinomes dos SOs so nomes, em ordem alfabtica, de doces comuns aos americanos.
Portanto, espera-se que o prximo sistema seja um doce comeado, em ingls, com a letra L (WIKIPEDIA,
2013).
7
Framework uma abstrao em que o programa prov funcionalidades genricas que podem ser seletivamente
mudadas por cdigos adicionais, provendo aplicativos especficos (WIKIPEDIA, 2013).
8
An Activity is an application component that provides a screen with which users can interact in order to do
something, such as dial the phone, take a photo, send an email, or view a map. Each activity is given a window
in which to draw its user interface. The window typically fills the screen, but may be smaller than the screen and
float on top of other windows (traduo nossa).
9
Padro em todos os dispositivos fabricados para o Android.
empilhados ou desempilhados
10
(ANDROID DEVELOPERS, 2013), respeitando,
desta maneira, as regras de uma estrutura de uma pilha. A figura a seguir mostra, no
decorrer do tempo, o processo descrito.


Figura 1 - Linha do tempo de processos feitos na Pilha de Fundo.
(ANDROID DEVELOPERS, 2013)

E, para finalizar este ponto, a pilha estar novamente vazia quando o usurio
desempilhar todos os processos, isto , apertar o boto Back at chegar tela principal.

3. iOS
O comportamento da estrutura de dados Pilha no iOS, sistema operacional da Apple,
basicamente o mesmo de seus concorrentes Android e Windows Phone,
respectivamente do Google e da Microsoft.

Tido por muitos como o melhor e mais seguro sistema operacional para dispositivos
mveis, a primeira verso do iOS foi lanada com o primeiro smartphone da empresa:
o iPhone. Uma das caractersticas que difere a segurana entre esta plataforma e seus
concorrentes o rgido controle de contedo disponvel para download atravs de sua
loja digital, a iTunes/Apple Store. Cada aplicativo submetido a testes pela prpria
equipe da Apple, e s pode ser disponibilizado aps uma aprovao.

No terceiro trimestre de 2013, uma pesquisa realizada pela Strategy Analytics apontou
que o iOS tem 13,4% do mercado de smartphones, ficando atrs apenas do Android,
que lidera de maneira isolada com uma fatia de 81,3% do mercado mundial.

10
Activities in the stack are never rearranged, only pushed and popped from the stackpushed onto the stack
when started by the current activity and popped off when the user leaves it using the Back button (Traduo
nossa).
A arquitetura dessas duas plataformas, tais como sua concorrente comum, Windows
Phone, tambm baseada na estrutura de dados Pilha.

Quando um aplicativo iniciado, seu processo colocado no topo de pilha, e ele
permanece visvel, significando que est em foco. Se outro processo iniciado, ele
pausado e vai para o segundo lugar da pilha. Agora, se este segundo aplicativo ocupar
a tela inteira do usurio, nosso primeiro processo perde o Foco ento ao invs de
pausado, parado, mas permanecendo como o prximo item da pilha. Isto significa
que se o segundo aplicativo for fechado pelo usurio, nosso primeiro aplicativo ser a
primeira coisa a ser executada e exibida novamente na tela do celular.

Estes processos tm outras propriedades, mas esta rotina o que melhor ilustra o
comportamento da estrutura de Pilha agindo no sistema operacional. E uma maneira
fcil de visualizar essa estrutura se tornou possvel a partir da sexta verso do iOS
atravs de um recurso que foi introduzido: o de visualizar todos os aplicativos sendo
executados em segundo plano ao se pressionar e segurar a tecla Home (nico boto
fsico da parte frontal dos dispositivos mveis da Apple). Isto gera uma interface
grfica onde todos os aplicativos podem ser visualizados de maneira dinmica,
seguindo aa ordem em que eles foram abertos. Porm, diferentemente do
comportamento de uma Pilha, possvel fechar um aplicativo que esteja em uma
posio diferente da "Prxima" clicando nele e o arrastando para a lixeira.

Consideraes Finais

A partir da anlise do uso de estruturas de dados, vimos que, embora concorrentes e com
desenvolvimentos separados, os dois sistemas operacionais analisados (Android e iOS)
compartilham, se no igual, a forma parecida de tratarem as transies de interface e
passagem de dados entre aplicativos: as pilhas de fundo.
Podemos perceber, tambm, que com a arquitetura parecida, o entendimento dos sistemas,
com finalidade de desenvolvimento de aplicativos para os dois ecossistemas, torna-se
facilitado. E, assim, podemos supor que outros sistemas baseados em IU assemelham-se em
sua estrutura, j que consolidado o mtodo de tratamentos destes itens.

Referncias Bibliogrficas

ANDROID DEVELOPERS (EUA). Activities. Disponvel em:
<http://developer.android.com/guide/components/activities.html>. Acesso em: 29 nov. 2013.

ANDROID DEVELOPERS (EUA). Android, the world's most popular mobile
platform. Disponvel em: <http://developer.android.com/about/index.html>. Acesso em: 27
nov. 2013.

ANDROID DEVELOPERS (EUA). Tasks and Back Stack. Disponvel em:
<http://developer.android.com/guide/components/tasks-and-back-stack.html>. Acesso em: 20
nov. 2013.

APPLE DEVELOPER (EUA). About the iOS Technologies. Disponvel em:
<https://developer.apple.com/library/ios/documentation/miscellaneous/conceptual/iphoneoste
choverview/Introduction/Introduction.html>. Acesso em: 29 nov. 2013.

BLOOMBERG BUSINESSWEEK (Nova Iorque). Google Buys Android for Its Mobile
Arsenal. Disponvel em: <http://www.businessweek.com/stories/2005-08-16/google-buys-
android-for-its-mobile-arsenal>. Acesso em: 29 nov. 2013.

CORMEN, Thomas H. et al. Algoritmos: Teoria e Prtica. 2. ed. Rio de Janeiro: Elsevier
Editora Ltda., 2002. 916 p. Traduo de: Vandenberg D. de Souza.

DEITEL, Paul; DEITEL, Harvey. Java: Como Programar. 8. ed. So Paulo: Pearson
Prentice Hall, 2010. 1144 p. Traduo de: Edson Furmankiewicz.

GURU DA NOTCIA (Brasil). Mercado mundial de smartphones, Android e iOS tm
92% da fatia. Disponvel em: <http://www.gurudanoticia.com.br/mercado-mundial-de-
smartphones-android-e-ios-tem-92-da-fatia/>. Acesso em: 29 nov. 2013.

MEDNIEKS, Zigurd et al. Programando o Android. 2. ed. So Paulo: Novatec Editora,
2012. 576 p. Traduo de: Rafael Zanolli.

SCHILDT, Herbert. C++: Fundamentos e Prtica. Rio de Janeiro: Editora Alta Books,
2004. 289 p. Traduo de: Aldir Jos Coelho.

THE NEXT WEB (Holanda). Strategy Analytics: Android smartphone shipments up to
81.3% in Q3 2013, iOS down to 13.4%, Windows Phone at 4.1%. Disponvel em:
<http://thenextweb.com/mobile/2013/10/31/strategy-analytics-android-smartphone-
shipments-81-3-q3-2013-ios-13-4-windows-phone-4-1/>. Acesso em: 29 nov. 2013.

WIKIPEDIA (EUA). Android Version History. Disponvel em:
<http://en.wikipedia.org/wiki/Android_version_history>. Acesso em: 29 nov. 2013.

WIKIPEDIA (Brasil). Framework. Disponvel em:
<http://pt.wikipedia.org/wiki/Framework>. Acesso em: 29 nov. 2013.

WIKIPEDIA (Brasil). Ncleo. Disponvel em:
<http://pt.wikipedia.org/wiki/Ncleo_(software)>. Acesso em: 29 nov. 2013.