您的位置:首页 > 移动开发 > Android开发

复习一下Android系统的启动过程

2014-12-05 17:34 225 查看
再次将Android系统的启动过程复习了一下

linux启动后,会启动第一个用户级进程init(代码位置: system/core/init/init.c),init做的事情有很多,其中就包括了解析运行init.rc脚本。

脚本中会启动一个叫做Zygote的进程(代码位置:frameworks/base/cmds/app_process/app_main.cpp),Zygote做的事情包括:

Android Runtime

- Start a Dalvik VM

- Call Zygote's main()

Zygote

- Register Zygote socket

- Preload all Java classes

- Preload resources

- Start System Server

- Open socket

- Listen for connections

Zygote进程启动SystemServer进程之后,SystemServer进程做的事情包括:

For each service:

-Init service

- Reg. w/ Service Manager(Service Manager进程是在init进程解析init.rc脚本的时候创建的,Service Manager is started by init before any other service)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: