Android app启动流程(android系统启动流程)

上一节回顾了一下Android的系统架构,这一节,主要来看看Android系统是怎么启动的。

Android系统架构浅析-「Android取经之路」

概述:

系统启动流程

BootRom->BootLoader->Linux Kernel->Init->Zygote->SystemServer->Launcher(UI)

BootLoader层:主要包括Boot Rom和Boot Loader

Kernel层:主要是Android内核层

Native层:主要是包括init进程以及其fork出来的用户空间的守护进程、HAL层、开机动画等

JAVA Framework层:主要是AMS和PMS等Service的初始化

Application层:主要指SystemUI、Launcher的启动

       

Android架构--图片来源于gityuan

Android 系统启动流程:

第一步:手机开机后,引导芯片启动,引导芯片开始从固化在ROM里的预设代码执行,加载引导程序到到RAM,bootloader检查RAM,初始化硬件参数等功能

第二步:硬件等参数初始化完成后,进入到Kernel层,Kernel层主要加载一些硬件设备驱动,初始化进程管理等操作。在Kernel中首先启动swapper进程(pid=0),用于初始化进程管理、内管管理、加载Driver等操作,再启动kthread进程(pid=2),这些linux系统的内核进程,kthread是所有内核进程的鼻祖;

第三步:Kernel层加载完毕后,硬件设备驱动与HAL层进行交互。初始化进程管理等操作会启动INIT进程 ,这些在Native层中

第四步:init进程(pid=1,init进程是所有进程的鼻祖,第一个启动)启动后,会启动adbd,logd等用户守护进程,并且会启动servicemanager(binder服务管家)等重要服务,同时孵化出zygote进程,这里属于C Framework,代码为C 程序;

第五步:zygote进程是由init进程解析init.rc文件后fork生成,它会加载虚拟机,启动System Server(zygote孵化的第一个进程);System Server负责启动和管理整个Java Framework,包含ActivityManager,WindowManager,PackageManager,PowerManager等服务;

第六步:zygote同时会启动相关的APP进程,它启动的第一个APP进程为Launcher(UI),然后启动Email,SMS等进程,所有的APP进程都有zygote fork生成。

下一节我们来一起看看Init进程,这个所有进程的鼻祖是如何启动的。

(0)

相关推荐

  • CentOS系统如何启动流程?CentOS系统启动流程的图文教程

    当我们按下开机键后,系统背后的秘密我们是否了解呢?这里,我带大家探索一下linux系统开机背后的秘密. 1.加电自检 主板在接通电源后,系统首先由POST程序来对内部各个设备进行检查,自检中如发现有错 ...

  • App启动页设计实例和技巧,启动即让人心动

    作为UX/UI设计使,究竟如何才能巧妙而富有创意的结合简单图片,文字,图标以及logo之类常见元素,设计出让用户眼前一亮,心动而忍不住想要尝试,而非直接离开的web或mobile app启动页呢?以下 ...

  • 如何使用eclipse新建android app并测试运行结果

    在开发环境配置成功的前提下,使用eclipse新建一个android application,并使用AVD测试运行结果.下面详细的来看看. 新建android app 01 在开发之前,确保你的电脑已 ...

  • 在电脑上运行android app的方法

    本文将会介绍4种在电脑上运行android app的方法,如下: 1 使用google官方提供的android模拟器 2 使用第三方提供的模拟器Bluestacks 3 使用第三方提供的模拟器Geny ...

  • 网付app怎么添加收银员?网付app绑定收银员流程介绍

    网付是一款专门为传统商家量身打造的收银APP,网付支持移动端APP收款,手机在哪就可以在哪收款,同时支持PC收款,POS机收款,二维码收款.接下来小编就给大家说说网付app添加收银员的方法流程,小伙伴 ...

  • Android APP破解技术有哪些?如何加密防破解?

    Android APP破解技术有哪些?如何加密防破解?Android APP安全性令人堪忧,APKtool等工具可轻易将其破解,开发者在开发Android APP的同时,如何防破解是一个令人头疼的难题 ...

  • 手把手教你怎么去除Android APP里面的广告

    很多朋友对安卓APP的软件广告非常讨厌,那么接下和小编一起学习怎么去除Andriod APP 的广告吧. 操作方法 01 下载java环境. 上网搜索java环境,选择与系统匹配的即可. 02 安装j ...

  • 苹果App Store上传应用流程详解

    苹果App Store上传应用流程详解,在向AppStore提交应用之前,开发者首先要成为苹果iOS开发者项目的成员,每年向苹果缴纳99美元或199美元的费用(具体申请方法后期更新). 操作方法 01 ...

  • PhoneGap-开发Android APP环境搭建

    如果有朋友不擅长于用原生开发编写IOS APP或Android APP的话,可以考虑用PhoneGap(www.phonegap.com)试试看.它本身支持的插件也不少哦,安装也较简单,下面记录下自己 ...