一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Android系統(tǒng)啟動過程從下往上的一個過程

Dbwd_Imgtec ? 來源:未知 ? 作者:李倩 ? 2018-04-04 16:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Google官方提供了一張經(jīng)典的四層架構(gòu)圖,從下往上依次分為:Linux內(nèi)核、系統(tǒng)庫和Android運行時環(huán)境、框架層、應(yīng)用層,其中每一層都包含大量的子模塊或子系統(tǒng)。

Android系統(tǒng)啟動過程從下往上的一個過程:

Loader - > Kernel - > Native - > Framework - > App

1、Loader

Boot ROM:當手機處于關(guān)機狀態(tài)時,長按Power鍵開機,引導(dǎo)芯片開始從固化在ROM里的預(yù)設(shè)出代碼開始執(zhí)行,然后加載引導(dǎo)程序到RAM;

Boot Loader:這是啟動Android系統(tǒng)之前的引導(dǎo)程序,主要是檢查RAM,初始化硬件參數(shù)等功能。

2、Kernel

到這里才剛剛開始進入Android系統(tǒng).

啟動Kernel的0號進程:初始化進程管理、內(nèi)存管理,加載Display,Camera Driver,Binder Driver等相關(guān)工作;

啟動kthreadd進程(pid=2):是Linux系統(tǒng)的內(nèi)核進程,會創(chuàng)建內(nèi)核工作線程kworkder,軟中斷線程ksoftirqd,thermal等內(nèi)核守護進程。kthreadd進程是所有內(nèi)核進程的鼻祖。

Android基于Linux 提供核心系統(tǒng)服務(wù),

例如:安全、內(nèi)存管理、進程管理、網(wǎng)絡(luò)堆棧、驅(qū)動模型。Linux Kernel也作為硬件和軟件之間的抽象層,它隱藏具體硬件細節(jié)而為上層提供統(tǒng)一的服務(wù)。如果你只是做應(yīng)用開發(fā),就不需要深入了解Linux Kernel層

3、Native

啟動init進程(pid=1),是Linux系統(tǒng)的用戶進程,init進程是所有用戶進程的鼻祖。

init進程啟動Media Server(多媒體服務(wù))、servicemanager(binder服務(wù)管家)、bootanim(開機動畫)等重要服務(wù);

init進程還會孵化出installd(用于App安裝)、ueventd、adbd、lmkd(用于內(nèi)存管理)等用戶守護進程;

init進程孵化出Zygote進程,Zygote進程是Android系統(tǒng)的第一個Java進程,Zygote是所有Java進程的父進程,Zygote進程本身是由init進程孵化而來的。

4、Framework

Zygote進程,是由init進程通過解析init.rc文件后fork生成的,Zygote進程主要包含:- 加載ZygoteInit類,注冊Zygote Socket服務(wù)端套接字;-加載虛擬機;- PreloadClasses;-PreloadResouces。

Zygote進程fork出System Server進程,System Server是Zygote孵化的第一個進程,地位非常重要。

System Server進程:負責啟動和管理整個Java framework,包含ActivityManager,PowerManager等服務(wù)。

Media Server進程:負責啟動和管理整個C++ framework,包含AudioFlinger,Camera Service等服務(wù)。

5、App

Zygote進程孵化出的第一個App進程是Launcher,這是用戶看到的桌面App;

Zygote進程還會創(chuàng)建Browser,Phone,Email等App進程,每個App至少運行在一個進程上。

所有的App進程都是由Zygote進程fork生成的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3973

    瀏覽量

    130208
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1392

    瀏覽量

    117463

原文標題:Android系統(tǒng)架構(gòu)及啟動流程

文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    詳解STM32啟動過程

    本章教程主要跟大家講STM32H7的啟動過程,這里的啟動過程是指從CPU上電復(fù)位執(zhí)行第1條指令開始(匯編文件)到進入C程序main()函數(shù)入口之間的部分。
    發(fā)表于 11-14 11:24 ?2098次閱讀

    Linux和Windows系統(tǒng)啟動過程的簡單分析

    拷貝到內(nèi)存的指定位置開始運行,Windows系統(tǒng)啟動之后就識別盤符(C,D等盤),再接著的就是啟動應(yīng)用程序,這時就可以看到Windows桌面了。 Linux
    發(fā)表于 08-28 11:27

    android--系統(tǒng)啟動--init進程啟動過程如何

    android--系統(tǒng)啟動--init進程啟動過程
    發(fā)表于 05-29 10:35

    關(guān)于Android系統(tǒng)啟動的理解

    雖然第2章Android系統(tǒng)啟動看得比較暈,但還是想把些總結(jié)性的內(nèi)容做個筆記,加深自己對Android系統(tǒng)啟動的理解。1. init進程
    發(fā)表于 07-28 07:05

    Android系統(tǒng)啟動流程總結(jié)

    Android系統(tǒng)是如何啟動的?Android系統(tǒng)啟動過程是怎樣的?
    發(fā)表于 10-22 07:14

    FreeRTOS系統(tǒng)啟動過程

    FreeRTOS系統(tǒng)啟動過程主要分為三部分:匯編部分、main函數(shù)初始化部分、開啟任務(wù)調(diào)度部分。對于匯編部分主要是設(shè)置些中斷向量表、設(shè)置堆和棧等些C語言運行需要的條件,當這些部分設(shè)置完成時候
    發(fā)表于 12-13 07:07

    嵌入式Linux系統(tǒng)的構(gòu)成和啟動過程

    文章目錄、嵌入式Linux系統(tǒng)構(gòu)成二、嵌入式Linux系統(tǒng)啟動過程在我們的周圍,大量的嵌入式設(shè)備都是基于Linux系統(tǒng)來構(gòu)建的,嵌入式Linux與主機Linux相比有著自己的
    發(fā)表于 12-16 06:20

    系統(tǒng)啟動過程

    系統(tǒng)啟動過程系統(tǒng)啟動過程主要由下幾步組成(以硬盤啟動為例):1. 開機2. BIOS 加電自檢 ( Power On Self Test -- POST ),內(nèi)存地址為 0ffff:
    發(fā)表于 10-11 12:17 ?2347次閱讀

    嵌入式uCLinux內(nèi)核啟動過程分析

    分析uCLinux的啟動過程,可以加快系統(tǒng)啟動速度、正確建立應(yīng)用環(huán)境。本文要研究的就是uCLinux操作系統(tǒng)內(nèi)核的啟動過程。
    發(fā)表于 08-15 16:51 ?855次閱讀

    嵌入式系統(tǒng)內(nèi)核引導(dǎo)啟動過程淺析

    嵌入式系統(tǒng)內(nèi)核引導(dǎo)啟動過程淺析
    發(fā)表于 10-30 10:26 ?6次下載
    嵌入式<b class='flag-5'>系統(tǒng)</b>內(nèi)核引導(dǎo)<b class='flag-5'>啟動過程</b>淺析

    走進Linux之systemd啟動過程

    Linux系統(tǒng)啟動方式有點復(fù)雜,而且總是有需要優(yōu)化的地方。傳統(tǒng)的Linux系統(tǒng)啟動過程主要由著名的init進程(也被稱為SysV init啟動系統(tǒng)
    發(fā)表于 04-27 19:14 ?3379次閱讀

    MCU和SOC啟動過程對比

    :電源->Bootloader(引導(dǎo)操作系統(tǒng)啟動)->Linux內(nèi)核->文件系統(tǒng)(根據(jù)功能劃分,如div中是硬件,home是工作目錄,帶訪問權(quán)限)x86Intel 如winsows OS啟動過程:電源 ->BIOS-》windo
    發(fā)表于 10-25 19:21 ?9次下載
    MCU和SOC<b class='flag-5'>啟動過程</b>對比

    stm32啟動過程

    不同作用的空間在單片機里面占了三空間,單片機引導(dǎo)哪個空間資源啟動,由BOOT1和BOOT0決定!正常來說般是從flash啟動?。。《?/div>
    發(fā)表于 12-16 16:57 ?8次下載
    stm32<b class='flag-5'>啟動過程</b>

    logd的啟動過程和內(nèi)容

    logd作為native service,系統(tǒng)啟動過程通過讀取rc文件來啟動,相關(guān)的屬性定義在如下logd.rc文件中。 2.2.1 logd啟動過程 logd啟動后會存在三
    的頭像 發(fā)表于 11-23 16:54 ?1320次閱讀
    logd的<b class='flag-5'>啟動過程</b>和內(nèi)容

    stm32啟動過程詳解

    啟動過程。本文將詳細介紹STM32的啟動過程。 、復(fù)位電路 對于STM32微控制器來說,復(fù)位是啟動的第步。任何
    的頭像 發(fā)表于 12-08 15:47 ?2360次閱讀