• Nenhum resultado encontrado

Android Core. Felipe Silveira felipesilveira.com.br. Aula 2

N/A
N/A
Protected

Academic year: 2021

Share "Android Core. Felipe Silveira felipesilveira.com.br. Aula 2"

Copied!
27
0
0

Texto

(1)

Android Core

Felipe Silveira

(2)
(3)

Inicialização

Boot ROM Boot Loader Kernel Init Zygote System Server

(4)
(5)

Boot ROM

A. O código de ROM de inicialização irá detectar a partição de inicialização que contém o bootloader.

B. Uma vez que a partição de inicialização (que contém o boot) é identificada, o boot ROM irá carregar na memória RAM o código do bootloader (inteiro ou suas primeiras

instruções, dependendo da arquitetura) e é feito um "salto de execução" (jump) para a posição de memória onde se encontra o bootloader.

(6)

Bootloader

O bootloader é um programa especial, separado do kernel do Linux, que é usado para inicializar a memória e carregar o kernel para a RAM. É análogo a softwares como o GRUB.

init.s - Inicializa pilhas, coloca zero nos segmentos BSS

e invoca o método _main() em main.c

main.c - Inicializa hardware (relógios, placa, teclado,

(7)
(8)

Bootloader

A. O primeiro estágio do carregador de inicialização irá detectar e configurar a memória RAM externa.

B. Uma vez que a RAM externa esteja disponível e o sistema pronto a executar algo mais complexo o

bootloader irá carregar o "main bootloader" e colocá-lo na memória RAM externa.

(9)

Bootloader

C. O segundo estágio do carregador de inicialização é o primeiro grande programa que será executado. Este estágio do bootloader pode conter código para criar

sistemas de arquivos, memória adicional, suporte de rede e outras coisas. Em um telefone celular, também pode ser responsável por carregar o código para o "CPU modem" e pela criação de proteções de memória de baixo nível e

(10)

Bootloader

D. O próximo passo é encontrar a localização do kernel na mídia de inicialização (Boot media) e colocá-lo na

memória RAM. Ele também irá colocar alguns parâmetros de inicialização na memória para serem lidos pelo kernel.

E. Por fim, o bootloader irá executar um salto para o

kernel do Linux e o kernel assume a responsabilidade do sistema.

(11)
(12)

Kernel

A. Uma vez que as unidades de memory management e caches foram inicializados, o sistema será capaz de usar memória virtual e lançar processos no user space.

B. O kernel irá procurar no sistema de arquivos raiz pelo código do processo init (que se encontra em em

system/core/init) e lançá-lo como um processo no user space.

(13)

Init

Mecan­ismo de ini­cial­iza­ção dos proces­sos bási­cos do sistema.

A imple­men­tação do init encontra-se nos fontes do Android em “system/core/init/init.c”.

(14)

Init

No init.rc está con­fig­u­rada grande parte do restante da ini­cial­iza­ção do sis­tema, incluindo a exe­cução dos

serviços bási­cos do Android, den­tre eles:

con­sole: ini­cia o shell ash.

ser­vice­m­an­ager: ini­cia o binder (respon­sável pela

comu­ni­cação entre os processos).

vold: vol­ume dae­mon — con­trola a mon­tagem de vol­

(15)

Init

adbd: android debug­ger bridge dae­mon — servi­dor

para comu­ni­cação com o cliente adb.

media: ini­cia os servi­dores mul­ti­me­dia (áudio, vídeo,

etc).

boot­sound: toca um som no boot, lendo um arquivo em

/system/media/audio/ui/boot.mp3.

installd: servi­dor de insta­lação de pacotes/aplicações (*.

(16)

Init

O init.rc é escrito na linguagem "Android Init Language", que é formada pelas estruturas:

Action: Actions representam sequências de comandos,

que são iniciados com a ocorrência de um trigger. A sintaxe é:

on <trigger>

<command> <command> <command>

(17)

Init

Service: Services são programas inicializados pelo init e

que podem ou não ser reiniciados quando , por algum motivo, são finalizados. Sintaxe:

service <name> <pathname> [ <argument> ]* <option>

(18)

Init

Options e Commands: Os options e commands são

usados na declaração de Services e Actions, respectivamente.

(19)
(20)

Init

A. O processo init no Android irá procurar um arquivo chamado init.rc. Ele é um script que descreve os serviços do sistema, o sistema de arquivos e outros parâmetros que precisam ser configurados.

B. O processo init irá então analisar o script de

(21)

Zygote

O zygote é o pai de todos os proces­sos Java. Tudo que roda em Java é cri­ado por este processo, que instan­cia uma máquina vir­tual Dalvik para exe­cu­tar um processo ou serviço Java.

Ele esta imple­men­tado em C++, e seu código-fonte encontra-se em

(22)

Zygote

O Zygote é responsável basicamente por duas operações:

1) Prover uma infraestru­tura para a exe­cução de apli­ cações Java.

2) Ini­ciar o Sys­tem Server, que geren­cia a base dos serviços do sis­tema opera­cional Android.

(23)
(24)

System Server

O system server é o primeiro componente Java a rodar no sistema. Ele vai iniciar todos os serviços Android, como o Telephony Manager e o bluetooth.

Localizado em

frameworks/base/services/java/com/android/server/Syste mServer.java.

(25)
(26)

System Server

Serviços inicializados pelo system server:

●Power Man­ager ●Activ­ity Manager ●Tele­phony Registry ●Pack­age Manager ●Con­text Manager

●Sys­tem Con­text Providers ●Bat­tery Service ●Alarm Man­ager ●Sen­sor Service ●Win­dow Manager ●Blue­tooth Service ●Mount Ser­vice ●...

(27)

System Server

Ao final da execução do system server, o Activ­ity Man­

ager ini­cia alguns proces­sos bási­cos, den­tre eles o com. android.launcher, que é a apli­cação respon­sável pela

inter­face grá­fica padrão do Android.

Após a execução do System Service, a inicialização é considerada finalizada e e broadcast

Referências

Documentos relacionados

Devido ao aumento de animais mestiços nos programas de melhoramento genético, diversos estudos foram realizados no Brasil, tanto para raças puras quanto produtos de cruzamentos

Por esse motivo, as preparações orais de ferro não devem ser administradas uma hora antes ou duas horas após a ingestão de antiácidos.. Se ambos os fármacos forem receitados,

A análise dos questionários permite-nos avaliar os aspetos logísticos, os temas, os formadores e tentar ir (cada vez mais) de encontro às expetativas dos nossos utilizadores Após

Ao participar da Promoção, os participantes estarão automaticamente: (i) autorizando, com exclusividade, a utilização e exploração das receitas em qualquer

A nossa proposta de pesquisa compõe-se de uma sequência didática para o ensino dos tópicos: planos, cilindros e quádricas, onde foi explorada a visualização com o traçado dessas

DATA: 17/out PERÍODO: MATUTINO ( ) VESPERTINO ( X ) NOTURNO ( ) LOCAL: Bloco XXIB - sala 11. Horário Nº Trabalho Título do trabalho

Controlador de alto nível (por ex.: PLC) Cabo da válvula Tubo de alimentação do ar de 4 mm Pr essão do fluido Regulador de pressão de precisão Regulador de pressão de

O objetivo desta revisão sistemática foi determinar as taxas de sobrevivência ao fim de 1, 5 e 10 anos de dentes autotransplantados com formação radicular completa ou