O que é o Google Android ?

 

 

O Android é um sistema operacional móvel executado sobre um kernel Linux na versão 2.6 (froyo). O Android permite que o desenvolvedor escreva seus aplicativos usando uma linguagem de programação robusta e extremamente orientado a objetos, o Java.

A Google juntamente com um grupo de empresas chamada de OHA (Open Handset Alliance)  lançaram o S.O. com intuito de unificar as linguagens de desenvolvimento e apresentar um diferencial no mercado, tanto para o usuário, quanto para o desenvolvedor.

Atualmente existem mais de 150 mil aplicativos disponíveis para o Android. Igualmente a Apple o Android possui um mercado de softwares como o iTunes, no caso da Google, se chama Android Market.

O núcleo do sistema consiste hoje em mais de 12 milhões de linhas de código, 3 milhões em XML, 2,8 milhões em C, 2,1 milhões em Java, 1,75 milhões de C++.

Arquitetura do Android

O sistema é dividido em várias partes :

Applications

Application Framework

Bibliotecas

Android Runtime

Linux Kernel

O Android em si é uma pilha de software (Software Stack), ou “software de arquitetura em pilha”, dividido em três camadas:

Sistema operacional

Middleware

Aplicações Chave

Na plataforma Android a middleware pode ser subdividida em duas camadas, na parte inferior da biblioteca (Library) ea máquina virtual (Virtual Machine; VM), e a estrutura do aplicativo de nível superior (Application Framework).


Camada de aplicação

Onde se encontra o pacote de aplicativos chave do Android como : Email, SMS, Calendário, Mapas, Navegador, programas de comunicação … e assim por diante. Todos desenvolvidos na linguagem de programação Java.

Application Framework

Camada responsável pela integração da linguagem ao núcleo de bibliotecas. Os aplicativos podem acessar uma interface unificada e padrão.
Basicamente todos os aplicativos são compostos por:

  1. Exibições do sistema: Responsável pela parte gráfica do sistema, contém uma lista, grades, caixas de texto, botões, e até mesmo um navegador embutido.
  2. Provedores de Conteúdo (Content Provider): Responsável pelo acesso / compartilhamento de informações entre aplicações. Por exemplo, um aplicativo pode acessar as informações de um contato na lista, ou fazer uma chamada, assim por diante …
  3. Gerenciador de Recursos (Resource Manager): Oferece uma variedade de recursos para utilização dos softwares, tais como: imagens, arquivos de layout, etc…
  4. Notificações (Message Manager): Responsável pela notificação na barra de status.  Pode exibir um aviso da própria aplicação (alerta) como mensagem na barra superior.
  5. Atividades (Event Manager): gerenciar todo o ciclo de vida da aplicação e de um backstack de navegação comum.
  6. Gerenciador de janelas (Window Manager):  Gerenciador das Activites (Formulários , Janelas … ) abertas no sistema.
  7. Localização: Funçoes e serviços de localização como : GPS , Google Maps …
  8. Telephony Manager: Gerenciador do dispositivo de telefonia.
  9. Package Manager: gestão do repositório do Android e de todos os softwares no sistema.
  10. Serviço XMMP : Através deste serviço é realizada uma localização de telefones celulares. Apartir do SDK 0,9 foi removido temporariamente este recurso.

Camada de Bibliotecas (Libraries)
Uma grande variedade de componentes no Android são todos compostos de bibliotecas  C / C + + , e todos os aplicativos do Android  usam esses recursos através da API.
As bibliotecas do núcleo principal estão listados abaixo:

  1. Sistema de biblioteca C – um derivado do sistema BSD e bibliotecas no padrão C (libc), desenvolvido baseado em dispositivos embarcados.
  2. Media Libraries – baseada na biblioteca multimídia da PacketVideo OpenCORE; Esta biblioteca multi-media serve de apoio para a execução de áudio e muitos formatos de vídeo. Tais como: MPEG4, H.264, MP3, AMR, AAC, JPG e PNG.
  3. Surface Manager – esta parte permite aos desenvolvedores acessar o sistema de exibição, realização de renderizações em 2D/3D e integração entre múltiplas aplicações .
  4. LibWebCore – A principal Engine de navegação web.
  5. SGL Engine gráfica 2D.
  6. Bibliotecas 3D – um padrão baseado em OpenGL Engine 1.0 3D ES. Responsável por selecionar a aceleração de hardware 3D.
  7. Free Type – padrões de bitmap, vetores, fontes …
  8. SQLite – SQLite é um banco de dados relacional open-source , que é caracterizada pela leve quantidade (apenas 500KB), para o uso em dispositivos portáteis, além de aplicações  desktop, também são utilizados no OpenOffice.org versão 2.0 que terá SQLite built-in.

Nível de Execução (Android Runtime)
Embora seja feito o uso da  linguagem de programação Java para desenvolver, não usamos a Java Runtime (J2ME) para executar programas Java, mas sim sua própria Runtime para executar.
O Android Runtime contém os seguintes dois núcleos :

Bibliotecas centrais

A biblioteca central possui um acervo de funções e classes responsaveis pela execução e manipulação dos dados entra a VM do Android (Dalvik) e a camada de aplicações. Cada aplicação em execução possui uma VM dedicada e areas da memoria Heap individuais.

Dalvik Virtual Machine

Virtual machine baseada na VM do Java, porém ela foi desenvolvida para utilizar com o mínimo de recursos o acesso a memória, assim como o já mencionado “A mesma aplicação pode executar múltiplas VM.”
Dalvik Virtual Machine tem muitas partes do Java Virtual Machine porém a compilação do bytecode da JVM é diferenciada á compilção da Dalvik, por bytecodes *.Dex.

Camada do sistema operacional (Kernel Linux )

O kernel do Android , 2.6 possui: segurança (Security), gerenciamento de memória (Memory Management), Gestão de Processos (Process Management), (pilha de rede, o continente conhecido como: pilha de rede), o modelo de driver (Driver Model), etc. Além disso, na execução da pilha de software é criada uma camada de abstração entre o hardware (Abstration Layer)

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s