Cursos / Informática para Internet / Dispositivos Móveis / Aula
Como já discutimos anteriormente, uma das vantagens que o Android trouxe para o mundo da programação móvel foi a liberdade e facilidade de utilização das funcionalidades do dispositivo, assim como acesso a qualquer parte do software nativo da plataforma. Na plataforma Android, é possível substituir as aplicações nativas do aparelho, como, por exemplo, criar uma tela de controle de chamadas personalizada. Outro grande ponto em relação a essa liberdade do Android é que essas aplicações desenvolvidas por usuários, consideradas não nativas ao sistema, são tratadas da mesma maneira que aplicativos nativos, otimizando assim o desempenho e aumentando as possibilidades.
O Android também permite, durante o desenvolvimento, acessar as diferentes APIs que o dispositivo fornece, possibilitando assim a criação de aplicativos que usem o potencial completo do aparelho. Também, através de mensagens conhecidas como Intents (ou intenção, em português), é possível acessar outros aplicativos que estão no aparelho. Ou seja, você pode desenvolver sobre as APIs para utilizar recursos como câmera, GPS, acelerômetros, etc., e também pode aproveitar aplicativos já existentes no celular, como envio de e-mails, mensagens de texto ou até mesmo o tocador de músicas, através dos Intents.
Assim como é em Java, no Android, as aplicações são executadas em máquinas virtuais. Cada aplicação é executada em sua própria máquina virtual, independente das demais aplicações. É possível, entretanto, através de estruturas que estudaremos mais adiante, compartilhar dados entre as diversas instâncias da máquina virtual e das aplicações.
Como vemos na Figura 1, a arquitetura da plataforma Android está dividida em cinco partes. Discutiremos então cada uma dessas partes, de cima para baixo.
Na parte superior da figura, ou seja, na camada mais externa, estão as aplicações. O Android já vem com diversas aplicações de uso comum instaladas, como calendário, cliente de e-mail, browser, contatos, entre outros. Todas essas aplicações são capazes de responder a Intents específicos, possibilitando-nos usar essas aplicações a partir de uma aplicação que tenhamos desenvolvido.
Em seguida, na camada abaixo das aplicações, estão os frameworks de aplicação da plataforma. Sendo uma plataforma aberta, o Android dá aos usuários a liberdade de utilizar todo o hardware disponível nos aparelhos, bem como executar tarefas em segundo plano, mandar mensagens, entre outras várias funcionalidades que estão disponíveis aos desenvolvedores, da mesma maneira que estiveram disponíveis aos fabricantes durante o desenvolvimento das aplicações nativas do aparelho. Ou seja, é utilizando essa camada que o desenvolvedor pode utilizar o potencial completo do aparelho de forma fácil, utilizando métodos predefinidos que irão controlar todo o hardware do aparelho, fazendo com que o desenvolvedor não precise fazer o controle direto desses componentes.
Na sequência, encontramos as bibliotecas que estão funcionando por baixo de todas as aplicações. O Android disponibiliza um grande conjunto de bibliotecas conhecidas e poderosas. Existem bibliotecas para exibição multimídia, baseadas no pacote de bibliotecas OpenCORE. Há também a biblioteca SQLite, responsável pelas operações de banco de dados e que será estudada em aulas futuras. Para os fãs de jogos em 3D, o OpenGL, em sua versão mobile, conhecida como OpenGL ES, também está incluso no pacote de bibliotecas nativas do Android. Esses são apenas alguns exemplos das bibliotecas que podem ser acessadas pelas aplicações, através dos frameworks.
Ainda na mesma camada, porém em um local separado, está o Android Runtime. Esse Runtime é responsável pelas bibliotecas centrais que vão suportar a linguagem Java. É nessa parte da arquitetura que as máquinas virtuais vão rodar, sendo capazes de acessar o kernel do Linux que está por baixo e, assim, gerenciar melhor os recursos do dispositivo.
Na sequência, temos a camada HAL, abreviação de Hardware Abstraction Layer, ou camada de abstração de hardware, em português. Essa camada é responsável por fornecer interfaces para facilitar o acesso, por parte do desenvolvedor, a funcionalidades de hardware do dispositivo Android, como Bluetooth ou câmera.
Por fim, no núcleo da plataforma, está o Linux Kernel. Como já dissemos anteriormente, o Android foi baseado no Linux e é com base nele que roda todos os seus processos. O núcleo do Linux é utilizado no Android para gerenciar memória, processos, threads e outros recursos críticos ao sistema. Essa é a parte do sistema que, por questões de segurança, é fechada aos desenvolvedores. É também a camada responsável por mediar a comunicação entre o software e o hardware.
Versão 5.3 - Todos os Direitos reservados