SISTEMAS OPERACIONAIS MÓVEIS - ANDROID X IOS Danielle Dias Simões¹, Júlio César Pereira². Universidade Paranaense - Unipar Paranavaí – PR - Brasil [email protected] [email protected] Resumo. O artigo constitui uma rápida comparação entre dois sistemas operacionais móveis Apple iOS e Google Android, com o objetivo de apresentar as principais funções de cada um assim como suas ferramentas, plataformas, arquiteturas, entre outras, assim ressaltando o que cada um disponibiliza ao usuário final, utilizando uma ampla pesquisa em artigos e pesquisas encontradas na internet. A comparação realizada mostrou o que cada sistema disponibiliza. 1. Introdução Não há como negar, os telefones celulares, smartphones e dispositivos móveis ocupam cada vez mais tempo e espaço em nossas vidas. Seus processadores estão mais velozes, há mais memória e um salto considerável no que diz respeito ao armazenamento foi dado. Praticamente tudo o que antes era possível apenas pelos computadores de mesa agora pode ser feito em qualquer lugar, a qualquer hora do dia, direto da palma da sua mão. Atualmente houve uma explosão de novas tecnologias para aparelhos de celulares (dispositivos móbile), este que inicialmente realizavam apenas uma função principal de fazer ligações entre seus usuários, hoje com varias funções de comunicação. Com essa evolução os celulares sofreram transformações em relação ás arquiteturas de hardware e software, como por exemplo, os sistemas operacionais. Como é possível observar o campo da Computação Móvel, vem evoluindo de forma muito rápida e tem crescido substancialmente a cada ano. 2. Metodologia Foi realizada uma rápida análise detalhada dos conceitos que fundamentam o conceito, assim como estudo sobre os métodos e técnicas para o desenvolvimento de cada sistema operacional móvel. 3. Desenvolvimento 3.1 Contextualização de Mercado Uma pesquisa realizada com 300.000 consumidores de serviços móveis, pela empresa Nielsen, destaca que 44% dos assinantes norte-americanos possuem um smartphone, em comparação com 18% há apenas dois anos. E segundo este relatório este dispositivos avançados estão mudando a forma como os consumidores interagem com seus telefones. [TONIN, 2012] Com isso podemos destacar que as redes sociais se destacam cada vez mais entre os dispositivos móveis, tanto usuários de Smartphones Android e iPhones. Existem muitas plataformas para dispositivos móveis no mercado atualmente, centralizando a atenção dos usuários através desses atrativos, onde existem taxas expressivas de crescimento e bastante sucesso. Hoje em dia usuários escolhem aparelhos celulares de acordo com especificações de hardware do tipo display, funções, rede, desing, espessura e peso. Deixando as aplicações suportadas sempre para um segundo plano. Mas note-se que uma grande maioria deles vem mudando o comportamento na hora de escolherem seus aparelhos, deixando de lado a usabilidade para escolher o software que seu aparelho vai usar. Assim o sucesso de cada plataforma dependerá da quantidade de aplicações disponíveis para ela. 3.2 Android O Android é uma plataforma para smartphones, baseada no sistema operacional Linux, que possui diversos componentes, com uma variada disponibilidade de bibliotecas e interface gráfica, além de disponibilizar ferramentas para a criação de aplicativos. (LECHETA, 2009 apud HUBSCH, 2012) O que atraiu o interesse da Google foi o objetivo do projeto que possui uma plataforma aberta aos fabricantes, assim deixando flexível e atualizável. Com intuito de permitir mobilidade ao usuário. Sua arquitetura é dividida em Kernel, runtime, bibliotecas, framework e aplicativos. O Kernel é responsável por fazer a união entre a parte hardware e software. O seu principal objetivo é gerenciar o computador e permitir que os aplicativos sejam executados e façam uso dos recursos que existem. O núcleo também tem que garantir que a memória RAM seja usada em seu potencial sem riscos. RUNTIME. São bibliotecas que atuam nos “bastidores” para automatizar tarefas comuns realizadas por linguagens diferentes de programas de computador e sistemas operacionais. Tempos de execução, também são utilizados para fornecer a eficiência por redução do número de passos necessários para executar programas e reduzir os recursos necessários, tais como o espaço de disco, de memória e de uso do CPU. (COMPUTER,2014) O tempo de execução dessa biblioteca consiste de funções, variáveis e constantes comuns e muitas operações do programa. Assim podendo executar cálculos, processar vídeos e fazer imagens, áudio, texto e até mesmo outras bibliotecas de tempo de execução. O Android disponibiliza aos desenvolvedores outros recursos além das bibliotecas. Sendo eles o provedor de conteúdos, gerenciador de janelas, telefone, recursos, atividades entre outros. Para que possamos entender melhor quando um componente de aplicação inicia e a aplicação não têm outros componentes rodando, o sistemas Android inicia outro processo Linux para a aplicação rodam em um mesmo processo e thread (chamada thread principal). Se um componente de aplicação inicia e existe um processo para aquela aplicação (pois outro componente da aplicação já existe), então o componente é iniciado dentro do processo e usa a mesma thread da execução. Assim podendo fazer com que diferentes componentes em sua aplicação rodem em processos separados e criar thread adicionais para quaisquer processos. O uso de memória é geralmente limitado a 16 MB em aplicações Android. Essa característica se dá pela capacidade contida em um dispositivo móvel. Quanto mais aplicações o Android puder manter na memória, mas rápido ele será para o usuário quando este precisar trocar entre aplicações. Então, as aplicações devem preferencialmente usar o mínimo de memória possível para garantir várias aplicações rodando ao mesmo tempo sem que sejam finalizadas. (HUBSCH, 2012) Desenvolvidos a partir da premissa de que a CPU não deve consumir de energia se os aplicativos ou serviços não precisam de energia, o Android exige que os aplicativos e serviços solicitem recursos da CPU com “Wake locks” através do framework de aplicações Android e bibliotecas nativas Linux. Se não há nenhum Wake lock ativo, a CPU é desliga para poupar energia. A classe PowerManager é a forma acessível do Android Framework disponibilizar o gerenciamento de energia para serviços e aplicações. (HUBSCH, 2012) 3.3 Iphone OS O iOS é o sistema operacional desenvolvido originalmente para o iPhone, e também usado em outros dispositivos móveis. O iOS é baseado no conceito de manipulação direta, utilizando toque, ou seja, interação com o sistema operacional com o usuário é imediata, pois esse sistema possibilita ao usuário, com gestos, toques na tela, deslizar dos dedos, ampliar fotos, reduzir imagens, digitar mensagens em teclado virtual entre outros. Nos iPhone OS, a arquitetura do sistema e as tecnologias são semelhantes ás encontradas no Mac OS X. O kernel no iPhone OS é baseado em uma variante do mesmo kernel base que é encontrado no Mac OS X. No topo deste kernel estão as camadas de serviços que são utilizadas para implementar aplicações na plataforma. (HUBSCH, 2012) Como a Apple faz o hardware e o sistema operacional do iPad, iPhone e iPod touch, tudo é projetado para funcionar em conjunto. Por isso, os apps aproveitam totalmente os recursos de hardware como processador dual core os chips gráficos rápidos, as antenas wireless e muito mais. O Multitarefa é um exemplo perfeito disso. O iOS 7 aprende quando você gosta de usar seus apps e atualiza o conteúdo deles em horários com baixo consumo de energia, por exemplo quando seu dispositivo já está em uso e conectado a wi-Fi. O conteúdo dos apps preferidos fica atualizado sem gastar muita bateria. O funcionamento de uma thread acontece inicialmente, em um processo. A maioria dos sistemas de hoje são baseados em computadores com apenas um processo que executam várias tarefas simultâneas. Ou seja, vários processos que compartilham do uso do Hardware tomando certas fatias de tempo para execução. A esta capacidade é denominado o termo multiprocessamento. Teoricamente existe uma grande proteção para que um processo não afete a execução de outro, modificando, por exemplo, a área de dados do outro processo, a menos que haja um mecanismo de comunicação entre os processos (IPC – Inter Process Communication). Este alto grau de isolamento reduz os desagradáveis GPFs (General Protection Fault), pois o sistema se torna mais robusto. Os desenvolvedores dos iPhones se preocupam muito com o gerenciamento de memória em suas aplicações, basicamente isso significa alocar a memória que será usada pelos objetos, utilizá-las e depois liberar essa memória. Esquecer-se de liberar a memória, ou liberá-la enquanto ainda está em uso, são problemas que podem causar mau funcionamento da aplicação e inclusive o famoso ”crash”, fazendo-a fechar inesperadamente. iPhone não possui garbage collector como o Android. O desenvolvedor responsável por limpar as variáveis depois de usá-las, caso contrário ocorrerá vazamento de memória no programa. Apesar de classe NSObject ter uma ajuda de contagem para manter o controle de quantos outros objetos estão atualmente usando um objeto, isso não ocorre de forma automática e os desenvolvedores têm de ajustar por si só. A regra para gerir a memória é certificar-se de que o número de métodos próprios chamados em um objeto será igual ao número de perdas de métodos próprios quando o programa tiver terminado a execução. iPhone não possui o kit e ferramenta de gerenciamento de energia que o Mac OS possui. Em vez disso, está função é incorporado na camada de núcleo (core layer). Os sistemas que mais consomem energia no iPhone em ordem decrescente são o sistema 3G, wi-fi, sistema 2G, Bluetooh e GPS. Reduzir o numero de aplicações alto consumo de energia ajuda a economizar. Ao colocar um iPhone no modo Sleep. Ele vai desligar da rede, desligar o wi-fi e a luz da tela. (HUBSCH, 2012) 4. Considerações Finais A IDE (Integrate Development Environment) XCode, desenvolvida pela Apple é a responsável pelo desenvolvimento para iOS, enquanto o desenvolvimento para Android é feito a partir da popular IDE Eclipse. Quanto na parte de documentação a Apple fornece um bom acervo de fontes aos desenvolvedores que estão iniciando na plataforma iOS. A iTunes University oferece uma seção de vídeos para iniciantes onde os conceitos básicos da plataforma são explicados de forma bastante intuitiva, familiarizando assim o desenvolvedor com a plataforma. O Android não oferece guias em forma de vídeos com a Apple faz para o iOS, porém seus recursos de desenvolvimento são bem mais organizados que os do iOS. Vale lembrar que muitos projetos de código aberto Android podem ser usados como ideias sobre arquitetura e uso API. Nesse ponto o Android sobressai, pois com a política de NDA (Non-disclosure agrément) da Apple não existem muitas fontes em termos de código aberto para iPhone. O objetivo principal foi fazer um estudo comparativo entre dois sistemas operacionais que na atualidade vem arrancando no mercado perante a preferência dos consumidores. Eles são os Android desenvolvido pela Google e os iOS desenvolvidos pela Apple. O objetivo foi mostrar detalhadamente cada sistema operacional e não apontar o melhor. Assim possibilitando ao leitor uma escolha para que possa a partir dessas informações desenvolverem ou aprofundar o assunto. 5. Referencias Android Developers. Disponível em: < http: // developer.android.com> Acessado em: 24/04/2014 HUBSCH, Eduardo. Uma Abordagem Comparativa do desenvolvimento de aplicações para dispositivo Móveis. Faculdade de Tecnologia de São Paulo, 2012, São Paulo. Disponível em: < www.fatecsp.br_dti_tcc_tcc00065> Acessado em 25/04/2014 KENNEY, Martin. Structuring the Smartphone Industry: Is the Mobile Internet OS Platforma the Key; Davis: University of California, 2011. LECHETA, R.R. (2009). Google Android – Aprenda a criar aplicações para dispositivo móveis com o Android SDK. 1ªEdição,São Paulo: Editora Novatec, 2009. MACHILIS, Sharon. Mercado móvel em números: iOS lidera tablets e android smartphones. IDG Now, 09 jun. 2011. MORANDI, Paulo Sergio; RODOLPHO, Luiz Roberto. Desenvolvimento Mobile nas Plataformas Android e iOS. Disponível em: < http:// www.mobiltec.com.br/blog/index.php/desenvolvimento-mobile-nas-plataformas-android-eios/> Acessado em: 23/04/2014 TONIN, Graziela Simone. Tendências em Computação Móvel. Universidade de São Paulo – Departamento de Ciência da Computação, 2012, São Paulo.