Apresentação do PowerPoint

Propaganda
Nomes: Carlos ...................................N°02
Gabriel ..................................N°07
Ianca ....................................N°09
Matheus ................................N°22
Patrick ..................................N°25
Prof.: Waldemar Jr
3° Informática
1
Histórico
• Em agosto de 2005, a Google compra a Android.Inc, uma
pequena empresa em Palo Alto, Califórnia, USA, que contava
com Andy Rubin como Co-fundador, que era uma empresa que
estava desenvolvendo um sistema operacional para celulares.
• Em 05 de novembro de 2007, é criada OHA - Open Handset
Alliance, uma aliança liderada pela Google, que teve de início 35
empresas, entre elas fabricantes de celulares, operadoras
telecomunicações, fabricantes de chips e desenvolvedores de
software.
• A partir de então, foi anunciado o Sistema Operacional Android
1.0, e o codigo fonte liberado, sendo de Licença Apache 2.0.
2
Histórico – Primeiro
Dispositivo com SO Android
• O primeiro dispositivo com o SO Android foi
lançado em 22 de outubro de 2008, era o HTC
G-1, T-Mobile, tinha um processador de
528MHz, 192MB de RAM, tela de 3,2 “ e 320 ×
480 pixels, câmera de 3.2 mega pixels, teclado
QWERTY completo de 5 linhas, trackball,
Bluetooth 2.0, Wi-Fi 802.11 b/g, GPS, tinha
117,7 x 55,7 x 17,1 milímetros e pesava 158
gramas.
3
Empresas componentes da OHA
4
Versões do SO Android
5
Hierarquia/Arquitetura e
Organização do Sistema
•O Android é um sistema operacional baseado no kernel do
Linux (não igual), tendo uma máquina virtual Java rodando
sobre o kernel do Linux, dando suporte para o
desenvolvimento de aplicações Java através de um conjunto
de bibliotecas e serviços.
•A arquitetura do SO possui basicamente as seguintes
camadas:
•Aplicação;
•Framework de Aplicações;
•Bibliotecas e serviços;
•Android Runtime;
•Kernel Linux.
6
7
Arquitetura e Organização do
Sistema - Camadas
•Aplicações: A camada de aplicativos é a que está no topo
da pirâmide da arquitetura do sistema operacional
Android, composta pelo conjunto de aplicações nativas
do mesmo, bem como aplicações que venham a ser
instaladas. Dentre estes pode–se citar: cliente de e-mail,
despertador, calendário, jogos, mapas, browser e
internet, etc.
8
Arquitetura e Organização do
Sistema - Camadas
•Framework: A camada de framework nativo disponibiliza aos
desenvolvedores as mesmas Applications Programming Interface
(APIs) – Interface de Programação de Aplicativos utilizadas para a
criação de aplicações originais do sistema operacional Android. Este
framework permite que o programador tenha o mesmo acesso ao
sistema que os aplicativos da camada de aplicativos possuem. Este
framework foi criado para abstrair a complexidade e simplificar o
reutilização de procedimentos. Essa camada funciona como um link
com a camada de bibliotecas do sistema operacional que serão
acessadas através de APIs contidas no framework.
9
Arquitetura e Organização do
Sistema - Camadas
•Bibliotecas e serviços: Essas bibliotecas são responsáveis por fornecer
funcionalidades para manipular o áudio, vídeo, gráficos, banco de dados e
browser. Algumas bibliotecas são a Bionic, a OpenGL/ES para trabalhar
com interface gráfica, e a SQLite para trabalhar com banco de dados. Aqui
também estão os serviços usados em camadas superiores, como máquina
virtual Java Dalvik. (trataremos mais desse assunto mais a frente). A maior
parte destas bibliotecas e serviços estão desenvolvidos em C e C++;
10
Arquitetura e Organização do
Sistema - Camadas
•O Android Runtime: Permite que cada thread rode sua própria instância da MV
(máquina virtual). Embora no desenvolvimento de aplicativos seja utilizada a
linguagem Java, as aplicações não são executadas em uma máquina virtual Java
tradicional, e sim em outra chama de Dalvik. Essa máquina virtual é otimizada
especialmente para dispositivos móveis. A plataforma Google Android permite o
desenvolvimento de aplicativos na linguagem Java. Essa máquina virtual foi construída
pelos engenheiros da Google, para obter um consumo mínimo de memória e
isolamento de processos. Ela permite que as aplicações escritas em linguagem Java
sejam executadas normalmente
11
Arquitetura e Organização do
Sistema - Camadas
Kernel: A camada do kernel é baseada no Kernel do sistema operacional Linux versão
2.6. Esta camada atua também como responsável pela abstração entre o hardware e
os aplicativos e é responsável pelos serviços principais do sistema operacional
Android, como o gerenciamento de memória e de processos. Várias funções do kernel
são utilizadas diretamente pelo Android, mas muitas modificações foram feitas para
otimizar memória e tempo de processamento das aplicações. Essas modificações
incluem novos dispositivos de drivers, adições no sistema de gerenciamento de
energia e um sistema que possibilita terminar processos de maneira criteriosa quando
há pouca memória disponível. O Linux 2.6 foi escolhido por já conter uma grande
quantidade de drivers de dispositivos sólidos e por ter um bom gerenciamento de
memória e processos.
12
Gerência de Memória
Memória
Referente à gerência de memória, o Android introduz um
mecanismo (OOM – Out-of- Memory Handler) para terminar processos
quando na falta de memória.
o Kernel do Android possui algumas modificações em relação ao
Kernel do Linux. Entre elas, citamos:
•Ashmem - É um novo mecanismo de compartilhamento de
memória, onde dois ou mais processos podem comunicarem-se
através de uma região compartilhada de memória.
•Pmem – Utilizado para o gerenciamento de grandes regiões
contíguas de memória física compartilhadas entre o espaço dos
usuários e drivers de Kernel.
13
Memória
•O SO Android também se utiliza do conceito de memória
virtual, bem como do conceito de Swap.
•O gerenciamento de memória em baixo nível do Android é feito
pelo Linux Kernel 2.6. A descrição da memória virtual é feita
portanto no Linux através de segmentação e paginação.
•Memória - Segmentação
A segmentação divide a memória em 2 espaços distintos, o
espaço do kernel (Kernel Space) e o espaço do usuário (User
Space). Dentro destes espaços temos os 4 segmentos básicos:
• Kernel Code.
• Kernel Data/Stack.
• User Code.
• User Data/Stack.
14
Memória - Paginação
•onde a memória é dividida em pedaços de tamanho fixo
(páginas), e segmentos de código são alocados nestes e
mapeados utilizando-se uma tabela de páginas, ao invés de
alocação de todo código de uma única vez.
•Quando a memória já preencheu todas as páginas
possíveis é necessário realizar a substituição de páginas
quando o processo em execução requisita que uma nova
página seja alocada.
•O algoritmo utilizado para esta substituição de páginas é o
Least Recentment Used (LRU).
15
Gerência de Processos
Processamento
Processo de Boot - O kernel do Linux executa o processo “init”, que inicia as
configurações básicas do sistema operacional Android e inicia outros
processos e serviços, incluindo o zygote, que é responsável por inicializar a
MV Dalvik e todos os processos e serviços Java.
Assim como no Linux, para se iniciar algum processo, é executada a
chamada Fork().
O processo zygote carrega as classes Java do núcleo, e executa os passos
iniciais de processamento. Essas classes Java podem ser reutilizadas por
outros aplicativos do Android e, portanto, nesta etapa, acelera o processo
de inicialização global. Após o processo de carregamento inicial, o zygote
aguarda novas solicitações, ficando por enquanto, ocioso.
16
Entrada/Saída
O gerenciamento de entrada e saída no Android é implementado
através do devices drivers, um device para cada dispositivo.
Todas as operações de entrada e saída são efetuadas como uma
sequência de bytes, não existindo o conceito de registro ou
métodos de acesso.
Em relação à entrada e saída de dados, o Kernel do Android
inseriu o Timed GPIO.
É o que possibilita acionar saídas de Input/Output (I/O)–Entrada
e Saída de forma temporizada. Está implementado em
‘drives/misc/timed_gpio.c’’.
17
Segurança
O kernel Linux providencia ao Android um conjunto de aspetos chave no
seu modelo de segurança:
• Um modelo de permissões baseado no utilizador - cada entidade no
sistema de ficheiros tem um dono e está atribuído a um grupo. Um
utilizador com permissões para tal pode modificar as permissões de
leitura, escrita e execução de uma entidade para o seu dono, para o grupo
e para os restantes utilizadores. Existe ainda um utilizador especial
(superuser) que pode violar estas permissões, tendo acesso completo ao
sistema de ficheiros.
• Isolamento de processos - Um processo em Linux funciona como uma
máquina virtual: tem um espaço de endereçamento próprio, um
repertório de instruções e um estado interno (i.e. estado do processador,
recursos externos, etc).
18
Benefícios
•Sistema de código aberto e gratuito;
•Milhares de aplicações disponíveis no Google Play;
•Os dados são sincronizados com todos os serviços da Google;
•Facilidade de programar pala esta plataforma;
•Interface gráfica agradável.
•Limitações
•Pouca duração da bateria de aparelhos com este sistema;
•Alguns aplicativos tem incompatibilidades para certas versões do
Android;
•Muitos Aplicativos maliciosos presentes no Google Play;
19
Download