Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Introdução Ao Android

Fazer download em docx, pdf ou txt
Fazer download em docx, pdf ou txt
Você está na página 1de 4

HIERARQUIA/ARQUITETURA

E ORGANIZAO DO SISTEMA
O

android um sistema operacional baseado no Kernel do Linux (no igual), tendo uma
mquina virtual java rodando sobre ele, dando suporte para o desenvolvimento de
aplicaes atravs de um conjunto de bibliotecas e servios.

A arquitetura do Sistema Operacional possui basicamente as seguintes camadas:

Aplicao
Framework de Aplicao
Biblioteca e servios
Android RumTime
Kernel Linux

APPLICATIONS
FRAMEWORKS
LIBRARIES ANDROID RUMTIME
LINUX KERNEL
APLICAES: A camada de aplicativos a que est no topo da pirmide da
arquitetura de SO Android, composta pelo conjunto de aplicaes nativas, bem como
aplicaes que tenham a ser instaladas. Dentre estes, pode-se citar: cliente de e-mail,
despertador, calendrio e etc.

FRAMEWORK: A camada de framework nativo disponibiliza aos


desenvolvedores as mesmas Applications Programming Interface (CAPIs), utilizada
para a criao de aplicaes originais de S.O.. Este framework permite que o
programador tenha o mesmo acesso ao sistema que os aplicativos da camada de
aplicativos possuem.

RUMTIME: Permite que cada thread rode sua prpria instncia de M.V.
(mquina virtual). Embora no desenvolvimento de aplicativos seja utilizada a linguagem
JAVA, as aplicaes no so executadas em uma mquina Virtual JAVA tradicional, e
sim em uma chamada Dalvik. Essa M.V. otimizada especialmente para dispositivos
mveis. A plataforma Google Android permite o desenvolvimento de apps na
linguagem JAVA. Essa M.V. construda pelos engenheiros do Google, para obter um
consumo mnimo de memria e isolamento de processos.

BIBLIOTECAS E SERVIOS: Essas bibliotecas so responsveis por


fornecer funcionalidades para manipular o udio, vdeo e etc. aqui tambm esto os
servios usados em camadas superiores, como a M.V. Dalvik. A maior parte destas
bibliotecas e servios esto desenvolvidas em C e C++.

DALVIK VIRTUAL MACHINE


As aplicaes da plataforma android rodam em instncias da M.V. Dalvik. Ela
j foi projetada para rodar em sistemas com baixa frequncia de CPU, pouca memria
RAM e S.O. livre de swap. Outra caracterstica dessa M.V. a capacidade de serem
rodados diversas instncias ao mesmo tempo, deixando o cargo do S.O., o
gerenciamento de memria, isolamento de processos e suporte a threads.
O Dalvik no uma M.V. JAVA, pois utiliza seu prprio byte code no
formato .dex.
Na inicializao de sistema, criado um processo para a M.V. denominado
Zygote. A partir deste processo, outras M.V. so instanciadas com fork() quando
necessrio.
No Zygote fica as bibliotecas compartilhadas em modo ready only.
Os processos de Android tem, alm de suas pilhas, coletores de lixo separados.
Eles devem ser independentes, porm devem respeitar o compartilhamento.

KERNEL: A camada do Kernel baseada no Kernel do S.O. Linux verso 2.6,


esta camada atua tambm como responsvel pela abstrao entre hardware e os
aplicativos.
PROCESSAMENTO: O Zygote o pai dos processos JAVA. Todos os
aplicativos desenvolvidos em JAVA so criados por este processo, que instncia uma
M.V. Dalvik para executar um processo ou servio JAVA. O Zygote tem basicamente
dois objetivos principais:
1. Prover uma infraestrutura para a execuo de aplicaes JAVA.
2. Iniciar o System Server, que gerencia a base dos servios de sistema
operacional.

Assim, como em sistemas Unix, os processos possuem PCB (Bloco de


controle de Processos), contendo entre vrios informaes, o estado do
processo.

Executando
Ponto

------- Bloqueado

(Fila de Processos)

Ponteiro Estado do Processo


Nmero do processo
Contador do programa
Registrador
Limites de memria
Linha de arg. abertas
...
Prioridade de Processos

No Android todos os processos so mantidos na memria at que haja a


necessidade de recursos processos. A ordem no qual os processos so finalizados para
liberao de recursos est associada ao nvel de prioridade da aplicao do recurso. A
prioridade de uma aplicao igual a de seu componente de maior prioridade.

1 Processo Ativo - Prioridade Crtica

2 Processo visveis Prioridade Alta

3 Processo Servio Iniciado Prioridade Alta

4 Processo Background Prioridade Baixa

5 Processo Vazio Prioridade Baixa

Gerncia de Memria

Referente gerncia de memria, o Android introduz um mecanismo (OOM


Out of Memory Handler) para terminar processos quando na falta de memria.

O kernel do Android possui algumas modificaes em relao ao Kernel do


Linux. Entre elas citamos:
- Ashmem: um novo mecanismo de compartilhamento de memria, onde dois
ou mais processos podem se comunicar atravs de uma razo compartilhada de
memria.

- Pmem: Utilizada para o gerenciamento de grande regies contguas de memria


fsica.

O Android tambm se utiliza do conceito de memria virtual (swap).

Sistemas de Arquivos

A partir da verso 2.3, o sistema de arquivos passou a ser ext4.

Diferente dos sistemas desktop, no Android, apenas o aplicativo pode acessar seu
prprio diretrio e criar subdiretrios com permisses para que outras aplicaes o
acessem.

Você também pode gostar