Android Core Aula 2: Inicialização de um sistema Android

42 %
58 %
Information about Android Core Aula 2: Inicialização de um sistema Android
Technology

Published on March 17, 2014

Author: felipesilveira

Source: slideshare.net

Description

Segunda aula do curso "Android Core" ministrada no INATEL em 2013.
Aprenda mais sobre cada fase de inicialização de um sistema android: Boot ROM, Bootloader, Kernel, Init.rc, Zygote, System Server e o fluxo de chamadas de cada um destes componentes.

Android Core Felipe Silveira felipesilveira.com.br Aula 2

Inicialização

Inicialização Boot ROM Boot Loader Kernel Init Zygote System Server

Boot ROM

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.

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, console)

Bootloader

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.

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 opções de segurança.

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.

Kernel

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.

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”. Tratamento do arquivo de con­fig­u­ração init.rc

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­ umes de mídia no sis­tema de arquivos.

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 (*. apk).

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>

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> <option>

Init Options e Commands: Os options e commands são usados na declaração de Services e Actions, respectivamente.

Init

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 inicialização e iniciar os processos de serviço do sistema.

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 frameworks/base/cmds/app_process/app_main.cpp.

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.

Zygote

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.

System Server

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 ●...

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 ACTION_BOOT_COMPLETED é lançado.

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

Android Core Aula 2: Inicialização de um sistema Android ...

1. Android Core Felipe Silveira felipesilveira.com.br Aula 2 . 2. Inicialização . 3. Inicialização Boot ROM Boot Loader Kernel Init Zygote System Server
Read more

Android Core - felipesilveira.com.br

Android Core. Android Core. Curso ... Bibliotecas de acesso a recursos do sistema; Implementação do Android Framework; ... Aula 2 Inicialização de ...
Read more

Android Core - felipesilveira.com.br

Android Core Felipe Silveira felipesilveira.com.br Aula 2. Inicialização. Inicialização Boot ROM Boot ... sistema pronto a executar algo mais complexo o
Read more

Aula Android - Documents

Share Aula Android. Embed ...
Read more