Mono Graf i a Android

Embed Size (px)

Text of Mono Graf i a Android

Nome da RevistaVol. X, N. N, Ano YYYY

ANDROID GOOGLE UMA VISO GERAL PARA DESENVOLVIMENTO JAVA

Pedro Vtor de Abreu Anhanguera Educacionalpedro@pva.eng.br

RESUMOO presente trabalho apresenta uma introduo ao aspectos principais para o desenvolvimento de aplicativos em Java com a plataforma Android, desenvolvida pela Google para dispositivos mveis. Palavras-Chave: Sistema Operacional Android, Google Android, Desenvolvimento Java Mobile.

ABSTRACTThis paper presents an introduction to key aspects to developing applications in Java with the Android platform developed by Google for mobile devices. Keywords: Android, Google Android, Java Mobile Development.

Anhanguera Educacional S.A.Correspondncia/Contato Alameda Maria Tereza, 2000 Valinhos, So Paulo CEP. 13.278-181 rc.ipade@unianhanguera.edu.br Coordenao Instituto de Pesquisas Aplicadas Desenvolvimento Educacional - IPADE Artigo Original Recebido em: dd/mm/yyyy Avaliado em: dd/mm/yyyy Publicao: dd de mmm de 2008 1 e

2

Android Desenvolvimento Java

1. INTRODUO AO ANDROIDSegundo a agncia de telecomunicaes da ONU (U.N.T.A.), o nmero de celulares no mundo atingir em 2010 a quantidade de cinco bilhes de aparelhos habilitados e o nmero de subscries em banda larga para celulares atingir um bilho de contratos. (CBSNEWS, 2010) Assim como o mercado pessoal, o mercado mvel corporativo de celulares se incrementa com a mesma acelerao. Para abrigar estes dois nichos de mercado satisfazendo os usurios, as operadoras, os fabricantes, as empresas e os desenvolvedores surgiu o Android, a resposta do Google e da O.H.A. (Open Handset Alliance) a tal desafio. (LECHETA, 2010) O Android uma plataforma de software para dispositivos mveis, que inclui um sistema operacional Linux com diversos aplicativos embarcados e um robusto e flexvel ambiente de desenvolvimento. A seguir temos algumas de suas principais caractersticas: sistema operacional Linux kernel 2.6; . (LECHETA, 2010) mantido, desenvolvido, avalizado e padronizado pela OHA, um grupo que hoje, agosto/2010, conta com 78 grandes empresas lideradas pela Google, e composto entre outras por Motorola, HTC, LG, Sansung, Telecom Italia, Telefnica, Lenovo, Sony Ericson, Toshiba, Sharp, Sprint Nextel, China Mobile, Intel, ASUS, Acer, Dell, Texas; (OHA, 2010) rico conjunto de APIs (Application Programming Interface) e servios tais como: rica interface visual, backup e recuperao de dados, GPS, criptografia ; (ANDROID DEVELOPERS. WHAT IS ANDROID, 2010) as aplicaes rodam sobre a mquina virtual Dalvik que permite, alm de implementar programas na linguagem Java, usar cdigo nativo de fontes compiladas em C ou C++, utilizando plenamente, por exemplo, headers como: libc, libm, JNI, libz, liblog ; (ANDROID DEVELOPERS. WHAT IS ANDROID , 2010) o Android uma plataforma completamente livre, tem seu cdigo fonte aberto e uma forte e participativa comunidade, alm da OHA, o que permite aos fabricantes, ou a quem quer que seja, personalizar e customizar seus produtos, regido pela Apache Software License, 2.0 e o kernel est submetido licena GPLv2, o que permite uma absoluta flexibilidade, liberdade e abertura do mundo do desenvolvimento de dispositivos mveis. (ANDROID DEVELOPERS. WHAT IS ANDROID , 2010) possui plug-ins para os principais ambientes de desenvolvimento de software tais como Eclipse, Netbeans ou IntelliJ IDEA. O eclipse o IDE preferencial contemplado pela Google/OHA com seu plug-in denominado ADT (Andorid Development Tools) que alm de um ambiente de desenvolvimento, testes e compilao, possui um emulador com recursos de depurao neste ou em qualquer celular conectado em porta USB. (LECHETA, 2010)

Nome da Revista Vol. V, N. N, Ano 2008 p. 1-28

Pedro Vtor de Abreu 3

2. ARQUITETURA ANDROIDO seguinte diagrama, figura 1, mostra os componentes principais do sistema operacional Android compartimentados em suas respectivas sesses.

Figura 1. Diagrama de arquitetura com os componentes principais da plataforma Android. (ANDROID DEVELOPERS. WHAT IS ANDROID, 2010)

Descreve-se a seguir, sinteticamente, cada uma das sees da plataforma conforme constam na Figura 1.

2.1.

Aplicaes chaves (Applications)O Android vem embarcado com um conjunto chave de aplicaes todas

escritas em Java, tais como: cliente de email, programa SMS, calendrio, mapas, browser, contatos, etc. (ANDROID DEVELOPERS. APPLICATION FUNDAMENTALS, 2010)

Nome da Revista Vol. V, N. N, Ano 2008 p. 1-28

4

Android Desenvolvimento Java

2.2.

Framework para aplicaes (Application Framework)O Framework para aplicaes tem o objetivo de fornecer aos desenvolvedores

de aplicativos a possibilidade de construes ricas e inovadoras, para tanto prov total acesso s mesmas APIs utilizadas pelas aplicaes chaves colocadas na seo anterior. A arquitetura de aplicaes foi projetada para simplificar o reuso de componentes, por exemplo, qualquer aplicao tem a capacidade de publicar suas capacidades e qualquer outra aplicao pode, ento, fazer uso de tais capacidades. Pode o desenvolvedor, ainda, fazer livre uso de vantagens proporcionadas por drive de hardware, uso das informaes locais, rodar servio em background, configurar alarmes, adicionar notificaes para a status bar, e muitas outras coisas. (ANDROID DEVELOPERS. ANDROID APPLICATION FRAMEWORK, 2010) Servindo todas as aplicaes est presente um conjunto de servios e sistemas, que inclui: Um rico e extensvel conjunto de Views que inclui listas, grids, caixa de textos, botes e um web browser embarcado. Provedor de contedo que permite uma aplicao acessar dados de outra, ou compartilhar seus prprios dados. Um gerenciador de recursos que prov acesso a recursos extra cdigo, tais como localizar strings, grficos e arquivos de layout. Um gerenciador de notificaes que permite a toda aplicao disparar um alerta customizado na barra de status. Um gerenciador de atividades que gerencia o ciclo de vida de uma aplicao e prov uma pilha subjacente de navegao comum.

2.3.

Bibliotecas (Libraries)O Android inclui um conjunto de bibliotecas C/C++ usadas por diversos

componentes do seu sistema. Os desenvolvedores podem fazer uso destas atravs do Framework de Aplicaes descrito no item anterior. Algumas bibliotecas chaves so listadas a seguir: (ANDROID DEVELOPERS. ANDROID APPLICATION FRAMEWORK, 2010)

Nome da Revista Vol. V, N. N, Ano 2008 p. 1-28

Pedro Vtor de Abreu 5

Bibliotecas de Sistema C implementa o sistema de biblioteca padro da linguagem C (libc), necessria para componentes embarcados do Linux. Biblioteca de Mdia baseada no pacote de vdeio do OpenCORE, esta biblioteca suporta a gravao e reproduo dos mais abrangentes formatos de udio e vdeo. Gerenciador de camadas gerencia as camadas de componentes grficos em 2D e 3D para mltiplas aplicaes. Bibliotecas para WEB uma moderna mquina de navegao web que ativa ambos, um Android Browser e views web embarcadas. SGL uma mquina para grficos 2D. Bibliotecas 3D uma implementao baseada no OpenGL ES 1.0 APIs, esta bibliotecas usam tanto a acelerao de hardware 3D, se disponvel, quanto uma alta otimizao 3D para softwares rasterizados. Free Type fonte de mapa de bits e vetores para renderizaes. SQLite um poderoso e leve banco de dados relacional disponvel para todas as aplicaes.

2.4.

Android em tempo de execuo (Android Runtime)O Android inclui um conjunto de bibliotecas chaves que prov as maiores

funcionalidades existentes nas bibliotecas chaves da linguagem de programao Java. Em vez de utilizar a soluo padro para a linguagem Java, que seria a JME (Java Micro Edition), o Google/OHA optaram por construir sua prpria mquina virtual Dalvik Virtual Machine (DVM). Cada aplicao Android roda em um processo nico com sua prpria instncia da Dalvik Virtual Machine (DVM), que foi escrita para uma grande eficincia ao rodar com mltiplas instncias prprias. A Dalvik VM executa arquivos no formato .dex (Dalvik Executable) que so otimizados para obter um uso mnimo de memria. A DVM uma mquina virtual baseada em registros e roda classes compiladas por um compilador Java que so transformadas para o formato .dex. Tais arquivos so posteriormente compactados, junto com arquivos outros como de recursos e configuraes, num nico pacote de distribuio para aplicaes, com extenso .apk. (ANDROID DEVELOPERS. WHAT IS ANDROID, 2010)

Nome da Revista Vol. V, N. N, Ano 2008 p. 1-28

6

Android Desenvolvimento Java

2.5.

Dalvik Virtual MachineDiferente da maioria das mquinas virtuais e das Java Virtual Machines que

so mquinas de arquitetura em pilhas, a Dalvik VM possui uma arquitetura baseada em registros. A diferena fundamental entre estas duas arquiteturas que as mquinas em pilha devem usar instrues para carregar e manipular dados na pilha, e isto requer mais instrues que uma mquina baseada em registros implementando um mesmo cdigo de alto nvel, Java VM, por exemplo, implementa em pilha; em contrapartida as mquinas com arquitetura em registro precisam codificar a fonte e o destino nos registros, que tendem a ocupar um maior tamanho nos dados. Esta diferena muito importante para interpretadores VMs em que a expedio de opcodes so de processamento caros, alm de outros fatores relevantes para a compilao JIT, alm do que a Dalvik Virtual Machine (DVM) baseia-se no kernel do Linux para obter funcionalidades subjacentes, tais como gerenciamento de threads e de memria. Uma ferramenta chamada dx usada para converter parte de um arquivo Java.class para o formato .dex, mltiplas classes so includas em um simples arquivo .dex. Strings duplicadas e outras constantes usadas em mltiplas classes so includas apenas uma vez num arquivo .dex com objetivo de poupar espao; um arquivo .dex no compactado normalmente menor que o equivalente Java compactado, .jar. Alm disto a Dalvik VM teve seu tamanha reduzido p