Android开机流程简述

 以下内容大部分总结自《Android进阶解密》

名词解释

名词解释
init进程linux内核加载完成后启动,Linux系统用户空间的第一个进程,入口函数在init.cpp main,是Zygote的父进程
属性服务(property_service)一个socket的服务端。对ctl. ro. persist. 等不同开头的系统属性分别处理
僵尸进程子进程终止但父进程不知道,系统进程表中仍保留子进程的信息,这个子进程则称为“僵尸进程”
init.rc配置脚本。启动Zygote进程的脚本写在这里。
Zygote(孵化器)进入java层的第一个进程,Android所有进程的父进程

关于init.rc

  • 启动服务的脚本。Android 8.0后对init.rc进行拆分,每个服务对应一个rc文件。Zygote启动脚本在init.zygoteXX.rc中。(如init.zygote64.rc)

  • 以init.zygote64.rc为例,启动zygote的脚本语句如下:

    service zygote /system/bin/app_process64 -Xzygote /system/bin --zygote --start-system-server

开机流程流程图

Zygote启动时序图

  • AndroidRuntime.start:cpp。运行时相关,包括启动虚拟机、为虚拟机注册jni方法

  • ZygoteInit.main:java。创建socket等待AMS;启动SystemServer进程

待续...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值