Escolar Documentos
Profissional Documentos
Cultura Documentos
NDICE
INTRODUO ............................................................................................................. 3 ANDROID ................................................................................................................... 3 2.1 HISTRICO ......................................................................................................... 3 2.2 DEFINIO ........................................................................................................ 4 2.3 ARQUITETURA ................................................................................................... 4 2.3.1 KERNEL DO LINUX..................................................................................... 5 2.3.2 BIBLIOTECAS ............................................................................................. 5 2.3.3 ANDROID RUNTIME ................................................................................... 6 2.3.4 FRAMEWORK DE APLICAES................................................................... 7 2.3.5 APLICAES .............................................................................................. 8 2.4 BLOCO DE APLICAES ..................................................................................... 8 2.4.1 ACTIVITY ................................................................................................... 8 2.4.2 INTENT RECEPTOR ..................................................................................... 9 2.4.3 SERVICE .................................................................................................... 9 2.4.4 CONTENT PROVIDER .................................................................................. 9 3 QTOPIA .................................................................................................................... 10 3.1 HISTRICO ....................................................................................................... 10 3.2 ARQUITETURA ................................................................................................. 10 3.2.1 QTOPIA CORE .......................................................................................... 11 3.2.2 QTOPIA PLATFORM .................................................................................. 12 3.2.3 QTOPIA PHONE EDITION .......................................................................... 12 3.3 QTOPIA GREENPHONE ..................................................................................... 12 4 CONSIDERAES FINAIS .......................................................................................... 12 REFERNCIAS .................................................................................................................. 14 1 2
2/14
1 INTRODUO
Com o grande avano da tecnologia, os dispositivos mveis esto se tornando mais poderosos com relao s suas capacidades de armazenamento, de processamento e de comunicao, e mais acessveis aos consumidores, ao mesmo tempo. Hoje, h 1,5 bilhes de televisores no mundo, enquanto que 1 bilho de pessoas tm acesso Internet, mas quase 3 bilhes de pessoas possuem um dispositivo mvel, tornando-se um dos produtos mais promissores do mundo. Dentre esses dispositivos mveis, esto includos handhelds, PDAs e telefones celulares. Os dispositivos mveis oferecem conectivade e poder de uso a qualquer lugar e em qualquer momento, tornando-se importantes, tanto para uso pessoal, quanto profissional. Com o uso cada vez maior de dispositivos mveis, o nmero de plataformas e ambientes de desenvolvimento cresceu proporcionalmente. A escolha de uma plataforma ideal para o desenvolvimento de um projeto significa optar por uma soluo que fornea os melhores benefcios, em termos de custos, eficincia e tempo de desenvolvimento esperados para a finalizao do projeto. Sendo assim, a presente monografia tem como objetivo fazer uma explanao sobre duas plataformas de desenvolvimento de aplicaes para dispositivos mveis: o Android (ver seo 2), lanado pela Open Handset Alliance [1], e o Qtopia (ver seo 3), produto da Trolltech [1].
2 ANDROID
2.1 HISTRICO
Em 05 de novembro de 2007, o OHA (Open Handset Alliance) anunciou a plataforma Android [3]. O Open Handset Alliance um grupo de mais de 30 empresas que est desenvolvendo essa plataforma. As empresas dessa aliana esto trabalhando juntas para oferecer uma plataforma de desenvolvimento que permita aos desenvolvedores implementarem e extenderem as aplicaes dos seus dispositivos mveis. Essa aliana tem como objetivo tambm lanar handsets e servios usando a plataforma Android no segundo semestre de 2008. A aliana OHA composta por um grupo bastante heterogneo de empresas, que compreende desde operadoras de celular a fabricantes de handsets. Dessa aliana, fazem parte: Operadoras de celular:
3/14
Companhias de semicondutores:
Fabricantes de handset:
Companhias de software:
2.2 DEFINIO
Android uma pilha de softwares para dispositivos mveis que inclui um sistema operacional, um middleware e um conjunto de aplicaes chaves. Os desenvolvedores podem criar aplicaes para a plataforma usando o Android SDK (ver seo Error! Reference source not found.). As aplicaes para essa plataforma so escritas usando a linguagem de programao Java e executam sobre o Dalvik, uma mquina virtual customizada para dispositivos com restries de recursos, como pouca capacidade computacional, baixa capacidade de armazenamento e baterias com baixo nvel de energia.
2.3 ARQUITETURA
O diagrama da Figura 1 mostra os principais componentes do sistema operacional Android.
4/14
Figura 1 Arquitetura do Android. Fonte: [4]. Nas sees seguintes, realiza-se uma explicao sobre os mdulos da arquitetura Android.
2.3.2 BIBLIOTECAS
O Android inclui um novo conjunto de bibliotecas C/C++ usados pelos vrios componentes do sistema. As funcionalidades so expostas atravs do framework do Android (ver seo 2.3.4). Algumas das bibliotecas do ncleo da arquitetura so listadas abaixo: Surface Manager: Controla e gerencia o acesso ao subsistema de display. Compe transparentemente camadas grficas 2D e 3D de mltiplas aplicaes. 5/14
3D libraries: Uma implementao baseada na especificao do OpenGL 1.0. SGL: Biblioteca usa para compor grficos 2D. Media libraries: Essas bibliotecas suportam playback e gravao de muitos formatos de udio e de vdeo, bem como imagens estticas, incluindo MPEG4, H.264, MP3, AAC, AMR, JPG e PNG. FreeType: uma biblioteca usada para renderizar fontes. SSL: Fornece encriptao de dados enviados pela Internet. SQLite: uma biblioteca C que implementa um banco de dados SQL embutido. Programas que usam a biblioteca SQLite podem ter acesso a banco de dados SQL sem executar um processo RDBMS em separado. SQLite no uma biblioteca de cliente usada para conectar com um servidor de banco de dados. SQLite o servidor. A biblioteca SQLite l e escreve diretamente para e do arquivo do banco de dados no disco. LibWebCore: Biblioteca base para o navegador do Android e vises da web. System C Library: Uma implementao do libc derivada do BSD.
Uma das primeiras diferenas de Dalvik para a mquina virtual Java (JVM) que Dalvik baseado em registradores e a JVM baseada em pilhas. A escolha da abordagem baseada em registradores traz um benefcio em ambientes restritos, como telefones celulares, e uma anlise mais aprofundada concluiu que mquinas virtuais baseadas em registradores executam mais rapidamente os programas do que mquinas baseadas em pilhas. 6/14
Outra diferena que o Dalvik otimizado para permitir mltiplas instncias da mquina virtual para executar ao mesmo tempo em memria limitada. E cada aplicao executa como um processo linux separado. Ento dado que cada aplicao possui seu prprio processo, isso permite instalao dinmica, ativao e desativao. Todavia, Dalvik poderia ter usado OSGi [5] para habilitar essas caractersticas dentro de um nico processo. Processos separados previnem que todas as aplicaes sejam fechadas se a mquina virtual deixar de funcionar. Entretanto, OSGi ainda pode ser portado para a plataforma Android.
Figura 3 Framework de Aplicaes. Fonte: [4]. Activity Manager (Gerenciador de atividade): Gerencia o ciclo de vida das aplicaes. Package Manager (Gerenciador de pacotes): Mantm quais aplicaes esto instaladas no dispositivo. Window Manager (Gerenciador de janelas): Gerencia as janelas das aplicaes. Telephony Manager (Gerenciador de telefonia): Componentes para acesso aos recursos de telefonia. Content Providers (Provedores de contedo): Permitem que as aplicaes acessem os dados de outras aplicaes (como contatos) ou compartilhem os seus prprios dados. Resource Manager (Gerenciador de recursos): Fornece acesso a recursos grficos e arquivos de layout. View System (Viso do sistema): Um conjunto rico e extensvel de componentes de interface de usurio. As vises podem ser usadas para construir uma aplicao, elas incluem listas, grids, caixas de texto, botes, dentre outras. Location Manager (Gerenciador de localizao): Gerencia a localizao do dispositivo. Notification Manager (Gerenciador de notificaes): Permite que todas as aplicaes exibam alertas na barra de status. XMPP Service (Servio XMPP): Suporte para uso do protocolo XMPP (Extensible Messaging and Presence Protocol) [6].
7/14
2.3.5 APLICAES
Android fornece um conjunto de aplicaes bsicas, que inclui um cliente de email, um programa SMS, um calendrio, mapas, navegador, contatos, entre outras.
Nem toda aplicao necessita ter esses quatro blocos, mas uma aplicao Android dever ser escrita com um ou mais desses blocos de construo. Uma vez decidido quais componentes so necessrios aplicao, necessrio list-los em um arquivo chamado AndroidManifest.xml. Este arquivo deve conter os componentes da aplicao, alm das capacidades e requirimentos para tais.
2.4.1 ACTIVITY
o mais comum dos quatro blocos de contruio Android. Uma activity usualmente uma tela em uma aplicao Android. Cada activity implementada como uma nica classe que extende da classe base Activity. Essa classe ir mostrar uma interface de usurio composta por Views e que responde a eventos. A maioria das aplicaes consiste em mltiplas telas. Por exemplo, uma aplicao de mensagem de texto pode ter uma tela que mostra uma lista de contatos, uma segunda tela para escrever mensagem para um contato e outra tela para rever mensagens antigas ou mudar configuraes. Cada uma dessas telas deve ser implementada como uma activity. A mudana de uma tela para outra realizada no incio de uma nova activity. Em alguns casos, uma activity deve retornar um valor para a activity prvia. Por exemplo, uma activity, que permite que o usurio escolha uma foto, retornaria a foto escolhida para o chamador. Quando uma nova tela abre, a tela chamadora pausada e posta numa pilha. O usurio pode navegar de volta atravs das telas abertas anteriormente na pilha. Android usa uma classe especial chamada Intent para realizar a mudana de uma tela para outra. Uma Intent descreve o que uma aplicao quer fazer. As duas mais importantes partes da estrutura de dados de uma inteno so a ao e os dados usados para responder a essa ao. Alguns valores tpicos de uma ao so MAIN (a porta de entrada de uma atividade), VIEW, PICK e EDIT. Os dados so expressos como uma URI (Uniform Resource Identifier). Por exemplo, para ver informaes de contato de uma pessoa, necessrio criar uma inteno com a ao VIEW e o conjunto de dados para representar a URI de uma pessoa. H tambm uma classe relacionada chamada IntentFilter. Enquanto uma inteno efetivamente uma requisio para se fazer alguma coisa, um filtro de inteno uma descrio de que intenes uma atividade (ou
8/14
intent receiver) pode tratar. Uma activity que est apta a exibir informaes de contato de uma pessoa dever publicar um IntentFilter que diz que ela sabe como tratar a ao VIEW quando aplicada para representar os dados de uma pessoa. Activities publicam seus IntentFilters no arquivo AndroidManifest.xml. A navegao entre telas acompanhada por resoluo de intenes. Por exemplo, para navegar para frente, uma atividade chama startActivity(myIntent). O sistema ento busca os filtros de inteno para todas as aplicaes instaladas e escolhe a atividade cuja inteno casa melhor com esse myIntent. A nova activity informada do interesse, que causa o carregamento da nova tela. O processo de resolver intenes acontece em tempo de execuo, quando o mtodo startActivity chamado, oferecendo dois benefcios chaves: 1. Activities podem reusar funcionalidades de outros componentes simplesmente ao fazer uma requisio para outro componente na forma de uma inteno. 2. Activities podem ser substitudas a qualquer momento por uma nova activity atravs de um IntentFilter.
2.4.3 SERVICE
Um servio um cdigo que est executando em background sem uma interface grfica com o usurio. Um exemplo disso um tocador de msica. No tocador, h uma ou mais activities que permitem ao usurio escolher msicas e inici-las. Todavia, o tocador no deveria ser tratado por uma atividade porque o usurio espera que a msica continue tocando em background. O sistema ento ir manter o servio do tocador de msica executando at que ele termine. possvel que uma aplicao se conecte a um servio para poder inici-lo (se ele no estiver executando) com context.bindservice(). Uma aplicao pode comunicar-se com um servio atravs de uma interface do servio. Para o servio de msica, ele pode ser usado para pausar uma msica ou avan-la, por exemplo.
9/14
As aplicaes podem armazenar seus dados em arquivos, como o banco de dados SQLite. Um provedor de contedo, todavia, til se os dados da aplicao podem ser compartilhados com outras aplicaes. Um provedor de contedo uma classe que implementa um conjunto padro de mtodos para permitir que outras aplicaes armazenem e recuperem tipos de dados que so tratados pelo provedor de contedo.
3 QTOPIA
Qtopia [8] uma plataforma C++ da Trolltech [1] para o desenvolvimento de aplicaes em dispositivos mveis, como PDAs, telefones celulares e web pads. As aplicaes construdas com essa plataforma executam sobre sistemas operacionais baseados em GNU/Linux. A Qtopia no tem rival, at agora, como plataforma de aplicaes e de interface de usurio para GNU/Linux, permitindo a criao eficiente de aplicaes para dispositivos mveis embutidos. A Qtopia 4 Series a ltima gerao de produtos da famlia Qtopia da Trolltech. Ela fornece um ambiente robusto e testado para desenvolvimento, herdado do framework lder em aplicaes, o Qt. A plataforma compreende o Qtopia Core [11], o Qtopia Platform [12] e o Qtopia Phone Edition [13].
3.1 HISTRICO
A Qtopia herda todas as caractersticas do Qt [4], o framework de aplicaes, lder da indstria, da Trolltech. O framework Qt C++ usado por diferentes aplicaes comerciais desde 1995. O Qt usado por companhias e organizaes diversas, como: Adobe, Boeing, IBM, Motorola, NASA, Skype, entre outras empresas menores. Desde 2006, h dezenas de diferentes modelos de telefones celulares e outros dispositivos executando a Qtopia, como dispositivos da Sony, da Motorola, da Philips, da Panasonic, da IBM, entre outros [9]. Qtopia tambm usado como plataforma de software do Greenphone (ver seo 3.3), uma iniciativa da Trolltech de um celular executando sobre um sistema GNU/Linux. A Qtopia fornece cdigo fonte completo e, com a documentao disponvel, os desenvolvedores podem, facilmente, modificar o Qtopia e integrar outras tecnologias para criar distintos dispositivos.
3.2 ARQUITETURA
A arquitetura do Qtopia compreende trs componentes primrios: Qtopia Core, Qtopia Platform (um subconjunto do Qtopia Core) e Qtopia Phone Edition (contendo as capacidades do Qtopia Core e do Qtopia Platform). Um diagrama de alto nvel da arquitetura do Qtopia mostrado na Figura 4.
10/14
Figura 4 Arquitetura do Qtopia. Nas sees seguintes, apresenta-se cada um desses trs componentes primrios do Qtopia.
11/14
4 CONSIDERAES FINAIS
As plataformas Android e o Qtopia so pilhas de softwares usadas para desenvolvimento de aplicaes para dispositivos mveis que usam um sistema operacional baseado em GNU/Linux. O Android uma plataforma recente, onde ainda no existem dispositivos que utilizem esta plataforma, enquanto que o Qtopia j uma plataforma consolidada, usada por vrios dispositivos do mercado [9]. A plataforma Android surge como a principal concorrente da Qtopia, principalmente pela fora das companhias que esto apoiando o desenvolvimento desta
12/14
plataforma, alm da promessa da OHA de que a Android ter cdigo aberto. Porm, dispositivos que utilizam essa plataforma s sero lanados na segunda metade de 2008. Ambas as plataformas oferecem suporte s principais caractersticas e requisitos que uma aplicao para um dispositivo mvel requer: API para telefonia, APIs para interface com o usurio, entre outras. A vantagem de se escolher a plataforma Android advm do fato de que pode se fazer uso mais facilmente de todos as aplicaes criadas pela Google, como aplicaes com uso de mapas. Alm disso, a Android fornece uma abordagem bastante simples para a modelagem de aplicaes que venham a utilizar essa plataforma. Porm, o Qtopia j fornece vrias APIs e classes que herdam todas as caractersticas do framework Qt, amplamente usado por aplicaes de diversas reas.
13/14
REFERNCIAS
1. Open Handset Alliance. http://www.openhandsetalliance.com/. Acessado em 26 de novembro de 2007. 2. Trolltech. http://trolltech.com/. Acessado em 26 de novembro de 2007. 3. Android. http://code.google.com/android/. Acessado em 28 de novembro de 2007. 4. Android Architecture. http://code.google.com/android/what-is-android.html. Acessado em 29 de novembro de 2007. 5. OsGI. http://www.osgi.org/. Acessado em 30 de novembro de 2007. 6. XMPP. http://www.xmpp.org/. Acessado em 30 de novembro de 2007. 7. Qt Framework. http://trolltech.com/products/qt. Acessado em 28 de novembro de 2007. 8. Qtopia. http://trolltech.com/products/qtopia. Acessado em 27 de novembro de 2007. 9. Qtopia Products. http://trolltech.com/products/qtopia/qtopiainuse/customers. Acessado em 28 de novembro de 2007. 10. Greenphone. http://trolltech.com.br/products/qtopia/greenphone/index.htm. Acessado em 28 de novembro de 2007. 11. Qtopia Core 4.2 Whitepaper. Trolltech. Novembro, 2006. Disponvel em http://trolltech.com/pdf/Qtopia-Core-42-Whitepaper-A4-web.pdf. Acessado em 01 de dezembro de 2007. 12. Qtopia Platform 4.2 Whitepaper. Trolltech. Novembro, 2006. Disponvel em http://trolltech.com/pdf/Qtopia_Phone_Edition_4_ds_web_A4.pdf. Acessado em 01 de dezembro de 2007. 13. Qtopia Phone Edition 4.2 Whitepaper. Trolltech. Novembro, 2006. Disponvel em http://trolltech.com/pdf/Qtopia_Phone_Edition_4_ds_web_A4.pdf. Acessado em 01 de dezembro de 2007.
14/14