9

Click here to load reader

Introdução a Plataforma Android

  • Upload
    aislan

  • View
    12.098

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Introdução a Plataforma Android

Introdução a Plataforma Android

Vanessa de Moura Santos1, Aislan Rafael Rodrigues de Sousa1, Otílio Paulo da Silva Neto1.

1 - Instituto Federal de Educação, Ciência e Tecnologia do Piauí Campus Picos – (IFPI Campus picos)

CEP 64600-000 – Picos – PI – Brasil

vane-moura[arroba]hotmail.com, aislanmaster[arroba]gmail.com, otiliopaulo[arroba]yahoo.com.br

Abstract. This article provides an introductory description of the Android platform. It is an initiative to enable mobile devices and even different hardware, can run on the same platforms that enable access and effective use of resources on the web

Key-word: Android, Mobile devices.

Resumo. O presente artigo apresenta uma descrição introdutória da plataforma Android. É uma iniciativa para permitir que dispositivos móveis mesmo tendo hardware diferente, possam rodar em uma mesma plataformas que possibilitara o acesso e uso efetivo dos recursos presentes na web.

Palavras-chave: Android, dispositivos móveis.

1. Introdução

A OHA (Open Handset Alliance ou Aliança para o celular aberto) foi criada com a intenção de padronizar uma plataforma de código aberto e livre para celulares, justamente para atender a todas as expectativas e tendências do mercado [Lech09]. Quase metade da população mundial possui um aparelho celular e buscam nele não apenas realizar ligações, mas diversos recursos como câmera, gravador de voz e vídeo, jogos, acesso a internet entre outras funcionalidades. Alem dos usuários comuns, as empresas que buscam agilidade, obviamente visando o lucro, estão utilizando aplicativos móveis nas suas funções diárias.

O Android, resultado da união de 47 empresas de tecnologia e mobilidade sobre a liderança da Google oferece um conjunto completo de software: um sistema operacional, middleware (que intermedeia a comunicação entre diferentes aplicativos e distintos protocolos) e vários aplicativos que visam satisfazer aos usuários com um navegador para internet, integração com o Google Maps, GPS, banco de dados integrado, entre outros, aos fabricantes, pois sendo o Android uma plataforma consolidada, livre e de código aberto diminui os custos no desenvolvimento de aparelhos, e aos desenvolvedores que tem a disposição uma plataforma de desenvolvimento robusta que utiliza Java como linguagem, e oferece um SDK com emulador para teste.

Page 2: Introdução a Plataforma Android

2. A plataforma Android

2.1. Histórico

Em Novembro de 2007 o Google anunciou que estava à frente da OHA, disponibilizando o SDK (Software Development Kit) dias depois. Em Outubro de 2008 foi colocado a venda o primeiro aparelho com o Android 1.0 chamado G1 da HTC T-Mobile.

2.2. Conceito

O Android trata-se de uma pilha de componentes de software, desenvolvida para dispositivos móveis, que inclui sistema operacional, bibliotecas, frameworks de middleware e aplicacões-chave.

2.3. Características básicas

A plataforma Android usa como base kernel do Linux 2.6, sendo que varias alterações foram realizadas para que o sistema ficasse mais bem adaptado os dispositivos portáteis, ele é responsável pelas tarefas fundamentais do sistema como segurança, gerenciamento de memória e outras.

Possui, Application Framewok que permite o reuso e a substituição de componentes, a maquina virtual Dalvik, que roda software escrito na linguagem Java e compilado num formato especial de bytecodes, um navegador baseado no Webkit Engine, também usado pelo Safári, ambiente gráfico e gerenciador de pacotes, biblioteca 2D e 3D, o banco SQLite para armazenar os dados estruturados, suporte para mídias: áudio, vídeo, formatos de imagens (MPEG4, H.264, MP3, AAC, AMR,JPG, PNG e GIF), telefonia GSM, bluetooth, EDGE, 3G e WiFi, câmera, GPS, compasso e acelerômetro

3. Arquitetura

A arquitetura do Android é dividida em cinco partes: kernel Linux, bibliotecas, ambiente de execução, framework e aplicativo [Aless08].

3.1. Kernel Linux

Figura 1: Camada do Kernel Linux [Joao08]

A camada do Linux Kernel representada na (Figura 1), que dependente de uma parte física, usa como base kernel do Linux 2.6. Ele é responsável pelas tarefas fundamentais do sistema, como segurança, gerenciamento de memória, gerenciamento de processos, pilha de protocolos de rede e modelo de drivers, agindo também como uma camada de

Page 3: Introdução a Plataforma Android

abstração entre o hardware e os outros componentes da plataforma, que rodam em espaço de usuário. Varias alterações foram realizadas no Linux para que o sistema fosse customizado para as características dos dispositivos portáteis, elas incluem divece drivers novos, adições ao sistema de gerenciamento de energia (wake locks) e um sistema que permite finalizar processos de maneira criteriosa quando há pouca memória disponível (lowmem killer).

3.2. Bibliotecas

Figura 2: Camada de biblioteca [Joao08]

A camada de biblioteca carrega consigo um conjunto de bibliotecas C/C++ utilizadas pelo sistema. Estão incluídas nesse conjunto a biblioteca C padrão (Libc) do BSD adaptada para dispositivos rodando Linux, as bibliotecas suportam os mais populares formatos de áudio e vídeo, bem como imagens estáticas, visualização de camadas 2D e 3D, funções para navegadores web, funções para gráficos, funções de aceleração de hardware, renderização 3D, fontes bitmap e vetorizadas e funções de acesso ao banco SQLite. Todos esses recursos estão disponíveis no framework para o desenvolvimento de aplicativos.

3.3. Ambiente de execução

Figura 3: Camada de execução [Joao08]

Apesar de o Android usar como linguagem de programação Java, em seu sistema operacional não existe uma maquina virtual Java (JVM), mas sim a maquina virtual Dalvik que é otimizada para execuções em dispositivos moveis. [Lech09]

Cada aplicação do Android roda seu próprio processo em uma instancia da maquina virtual Dalvik (zigote é uma instancia especial responsável por criar outras instâncias da VM). Essa maquina virtual foi escrita para ser rodada eficientemente com múltiplas instancias e executa arquivos .dex, um formato de bytecode desenhado para

Page 4: Introdução a Plataforma Android

ocupar menos espaço e carregar rapidamente, os arquivo .dex e outros recursos como imagem são compactados em um único arquivo com a extensão .apk (Android Package File) que representa a aplicação final, pronta para ser rodada.

3.4. Framework

Figura 4: Camada dos Frameworks de aplicação [Joao08]

Nesta camada, os desenvolvedores têm acesso ao mesmo framework das APIs utilizadas para as aplicações do Android, o que simplifica o reuso de componentes e abstrai boa parte dos procedimentos necessários para se fazer uma aplicação funcionar. Uma grande vantagem do framework de aplicação do Android é que cada aplicação pode publicar suas capacidades para serem usadas por outras aplicações que estiverem rodando.

Entre estas APIs, temos as seguintes:

Location Manager: utiliza o GPS;

Telephony Manage: oferece serviços de telefonia;

Content Providers: torna os dados públicos;

Alem da: Window Manager, Resource Manager, Notification Manager, Activity Manager.

3.5. Aplicativos

Figura 5: Camada dos aplicativos [Joao08]

É a camada mais alta da arquitetura da plataforma Android, onde se encontram os aplicativos chaves como e-mail, browser, mapas, calendários dentre outros, escritos na linguagem Java e convertidos para arquivos .dex, um bytecode da instancia da maquina virtual Dalvik, em que rodam.

4. Ambientes de desenvolvimento

Antes mesmo da utilização da plataforma Android em um dispositivo portátil, o Google disponibilizou o SDK, composto pela API das classes Java e pelo emulador, um dispositivo móvel virtual que permite rodar e testar as aplicações desenvolvidas, com o intuito de incentivar o desenvolvimento de aplicativos.

Page 5: Introdução a Plataforma Android

Alem do SDK, os desenvolvedores podem utilizar como ambiente de desenvolvimento o Eclipse, Netbeans, IntelliJ IDEA,ou JDK 5 ou JDK 6, Apache Ant 1.6.5 ou superiores para Linux e Mac, 1.7 ou superiores para Windows, sendo o Eclipse o ambiente de desenvolvimento preferido pelo Google[Lech09] e há um plugin chamado ADT(Android Development Tools) para integrar o emulador ao Eclipse

4.1. Estrutura de uma aplicação Android

A anatomia de uma aplicação Android é dividida em quatro blocos a Activity, que é o bloco mais utilizado, cada Activity representa uma tela da aplicação que será apresentada ao usuário através de View e responderá a eventos por Intent e Intent Filters, há também a Intent Receiver utilizado para que a aplicação responda a eventos externos, a Service responsável por códigos de vida longa que rodam sem uma interface para o usuário e a Content Provider provedor de conteúdo.

4.2. Estados de uma aplicação

O sistema operacional do Android é responsável pelo gerenciamento dos processos, caso seja necessário pode ate finalizar-los buscando liberar memória e recursos e talvez ate reiniciar-los quando a situação estiver controlada [Lech09], levando em consideração o estado de prioridade da aplicação que pode ser de:

Primeiro Plano quando há uma atividade em uso;

Visível quando esta visível porem há uma outra janela sobre ela;

Serviço que roda um código de serviço, sem UI;

Fundo quando possui uma atividade que não esta visível;

Vazio quando não possui nenhum componente ativo, servindo como cachê para a próxima vez que a aplicação for iniciada.

4.3. Exemplo de desenvolvimento de um aplicativo básico “Olá Mundo!”

Para o desenvolvimento de um aplicativo básico como um “Olá Mundo!”, deve-se inicialmente baixar o SDK, descompacta-lo (formato ZIP) acrescentar a pasta to-ols/ criada no processo à variável $PATH, acrescentando ao arquivo ~/.bashrc a linha de código:

Figura 6: Linha de código acrescentada ao arquivo ~/.bashrc [Aless08]

Continua-se com a instalação do plugin ADT ao IDE Eclipse e com a configuração da localização do Android SDK no plugin ADT. Após essa etapa cria-se um Android Project, no Eclipse, onde se coloca o nome do projeto, da classe e da aplicação, seleciona as opções Create new project in workspace e Use default location, clicando no botão Finish, ao final.Implementa-se então as seguintes linhas de código:

Page 6: Introdução a Plataforma Android

Figura 7: Código de criação do aplicativo básico “Olá Mundo!” [Aless08]

Para executar o programa no emulador do Android, seleciona-se a opção Run/Run do menu principal, na janela de dialogo (Figura 8), selecione o projeto para execução e clique nos botões Aplly e Run inicializando assim o emulador que permitira a exibição do seu primeiro programa (Figura 9).

Figura 8: Preparação para execução do novo programa [Aless08]

Figura 9: Resultado da execução do programa [Aless08]

Page 7: Introdução a Plataforma Android

5. Conclusão

Os usuários de dispositivos portáteis não têm consciência de que seu aparelho está rodando um sistema operacional, tudo é feito de maneira transparente. O Android vem oferecer uma série de recursos para tornar os dispositivos mais funcionais mantendo a transparência. Por se tratar de uma plataforma aberta, a comunidade de desenvolvedores pode contribuir para a criação de aplicações. No presente artigo foi apresentada uma introdução dessa nova plataforma para uma posterior utilização na criação de aplicações.

6. Referências

[Aless08] Alessandro de Oliveira Faria, Linux Magazine 48 ed., junho de 2008.

[Anj08] Julio Anjos, Comparativo APIs Android x JavaME, Universidade Federal do Rio Grande do Sul UFRGS, julhos de 2008

[Code09] Disponibiliza do SDK <http://code.google.com/android/adc.html>, acessado no dia 15 de maio de 2009

[Fórum] Fórum dos desenvolvedores <http://forum.portalandroid.org/>, acessado no dia 06 de maio de 2009

[G1And09] Ulrich Bantle e Rafael Peregrino da Silva, fevereiro de 2009 <http://www.linuxmagazine.com.br/materia/analise_preliminar_do_android_g1_operacaeo_e_recursos>

[iMast09] iMasters, Aplicativos moveis, maio 2009 <http://imasters.uol.com.br/noticia/12644/tecnologia/google_pode_perder_a_marca_android/>

[Joao08] João José Junior, android-slides, Universidade Federal de Santa Catarina, dezembro de 2008

[Lech09] Ricardo R.Lecheta, Google Android aprenda a criar aplicações para dispositivos móveis com o Android SDK, Novatec Editora Ltda, 2009

[OHA] Site oficial do grupo OHA <http://www.openhandsetalliance.com/>, acessado no dia 05 de maio de 2009