Escolar Documentos
Profissional Documentos
Cultura Documentos
Operacional
ANDROID
Equipe
▣ Neemias Santos
▣ Segismar Junior
2
Breve História do Android
3
Arquitetura do Android
4
Camadas
Android 5ª
4ª
3ª
2ª
1ª
5
System Apps
6
Java API Framework
7
Bibliotecas C/C++ nativas
8
Android Runtime
9
Camada de abstração de hardware (HAL)
10
Linux Kernel
Principais Serviços:
- Segurança;
- Gerenciamento de memória
- Gerenciamento de processos
- Pilha de protocolo de redes
- Modelo de drives
11
Linux Kernel
Como vimos anteriormente o Android usa uma versão modificada do kernel do Linux. Dentre as
principais modificações, podemos citar:
• Blinder: Em todo sistema operacional com suporte à memória virtual os processos rodam em
diferentes regiões de memória. Isso significa que nenhum processo tem acesso direto à região
de memória de outro processo ou thread.
12
Linux Kernel
• Logger: O Android possui um sistema global de logs, implementado através de um módulo do
kernel. É criado quatro arquivos de dispositivo em “/dev/log”, onde cada um representa um
buffer diferente. Para as aplicações acessarem o sistema de log, deve-se abrir, escrever ou ler
num destes arquivos de dispositivo. A implementação deste módulo no kernel encontra-se em
“drivers/misc/logger.c”.
13
Linux Kernel
• Wakelocks: Se um dispositivo Android ficar um tempo sem ser usado, entrará em modo de baixo
consumo para garantir economia de bateria, visto que a energia em dispositivos móveis é um recurso
escasso, diferente de um computador pessoal que é o principal alvo do sistema Linux. O módulo de
wakelock permite que as aplicações desabilitem o mecanismo de baixo consumo. Sua implementação
encontra-se em “kernel/power/wakelock.c”.
• Oom handling: Faz o controle do uso de memória do sistema operacional e encerra processos se
verificar que a memória disponível esta abaixo de um valor mínimo aceitável. É implementado em
‘‘drivers/misc/lowmemorykiller.c’’.
• 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’’.
14
2.
O Sistema de
Arquivos Principais diretórios
15
Sistema de Arquivos
*Semelhante ao Linux
16
O sistema operacional Android gerencia os arquivos para facilitar o acesso dos usuários ao seu
Sistema de Arquivos
conteúdo.
17
O Android implementou uma biblioteca chamada Bionic para usar como biblioteca do sistema.
Sistema
Contém de Arquivos
os diretórios:
• / - diretório raiz (Android e Linux)
• /Cache – armazenamento de dados para execuções rápidas (Android)
• /Data - contém dados do usuário armazenado sem uma partição separada de MTD
(Android).
• /Dev – arquivos de dispositivos (Linux e Android)
• / Init – inicialização (Android)
• /Proc - kernel e arquivo de processo (Linux e Android)
• /Root – Diretório home para o super usuário (Linux e Android)
• /System – Sistema (Android)
18
Sistema de Arquivos
19
3. Conhecendo processos
Processo do BOOT importantes para o Android
20
Etapas do
BOOT
21
Inicialização e execução do código de boot presente na ROM
22
O Bootloader
23
O Kernel
24
O processo Init
25
O processo Init
Uma das principais funções desse processo é a execução das informações contidas em um arquivo
de configuração chamado “Init.rc”.
Este arquivo opera de forma semelhante ao /etc/Inittab presente no Linux. É o “Init.rc” que diz
como o sistema fará o restante do processo de boot, englobando a execução dos serviços básicos do
Android, dentre eles:
• Console: Inicia o shell ash presente no sistema Android;
• Vold: Volume daemon — controla a montagem de volumes no sistema de arquivos;
• Media: Inicializa servidores multimídia;
• Installd: Servidor de instalação de pacotes/aplicações;
26
Zygote/ Dalvik
27
System Server
28
4.
Gerenciamento de
processos e
memória Nos Bastidores do Android
29
Dalvik Virtual Machine X Android Runtime
30
Dalvik Virtual Machine X Android Runtime
31
Prioridade e status de processos
32
Prioridade e status de processos
33
Memória Virtual
▣ Segmentação.
▣ Realocação.
▣ Paginação.
▣ Proteção.
34
Comunicação entre processos
35
Escalonamento de CPU
36
Escalonamento de CPU
37
E os Deadlocks ?
38
Desenvolvimento no Android
39
Desenvolvimento no Android
40
API do Android
41
Referências
• http://developer.android.com
• https://joaotorresjunior.wordpress.com/2015/08/21/processo-de-boot/
• de Oliveira, R.; Carissimi, A.; Toscani, S. – “Escalonamento em Linux” Disponível em: http://www.inf.ufrgs.br/~asc/livro/secao94.pdf
• https://docplayer.com.br/1012682-Sistema-operacional-android.html
• http://www.decom.ufop.br/imobilis/sequencia-de-boot-para-o-carregamento-do-android/
• https://pt.slideshare.net/guilhermealarcao/apr-android
• Wikipédia – “Deadlock”. Disponível em: http://pt.wikipedia.org/wiki/Deadlock
• https://pt.slideshare.net/locutorleandrojr/gerenciamento-de-arquivos-nos-sistemas-operacionais
• Pereira, L. C. O.; Silva, M. L. – “Android Para Desenvolvedores”. 1 ed., Brasport, 2009.
42
Obrigado
Perguntas?
43