Android10(Q)系统启动概述


首先用一张图看一下整体的启动流程
在这里插入图片描述
因为android系统底层是基于Linux Kernel, 所以当Kernel启动后会创建init进程,init进程是Linux系统中用户空间的第一个进程(pid=1)。可以说android中的所有其他进程的共同祖先都是init

一 init进程启动

Android 10 系统中init入口函数从init.cpp 挪到了main.cpp 源码路径 system/core/init/main.cpp


int main(int argc, char** argv) {
   
    if (!strcmp(basename(argv[0]), "ueventd")) {
   
        return ueventd_main(argc, argv);
    }
 
   //参数个数大于1时,执行下面的操作
    if (argc > 1) {
   
        //参数为subcontext,启动日志系统,
        if (!strcmp(argv[1], "subcontext")) {
   
            android::base::InitLogging(argv, &android::base::KernelLogger);
            const BuiltinFunctionMap function_map;
            return SubcontextMain(argc, argv, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值