- 6
- 0
- 约3.07千字
- 约 5页
- 2021-01-08 发布于天津
- 举报
An droid启动过程详解
An droid从Lin ux系统启动有 4个步骤;
(1) init进程启动
⑵Native服务启动
⑶ System Server, An droid 服务启动
(4) Home 启动
总体启动框架图如:
Heme
”??? 加真削gg 丸疋皿裁打呦珈內加〕
Dalvi k VM
Aeti^-ity Manager
Package Manas er
Handle
Window Manager
Zygote ForkSendee
ril-dacmon
media
bootsound
bQtanim
PropertyService
init
Zyjrote
第一步:initial 进程(system\core\init)
init进程,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开 始运行,并已初始化所有的设备驱动程序和数据结构等) 之后,就通过启动一个用户级程序
init的方式,完成引导进程。in it始终是第一个进程.
In it.rc
In it.marvell.rc
In it进程一起来就根据ini t.rc和ini t.xxx.rc脚本文件建立了几个基本的服务:
servicema namger
zygote
最后Init并不退出,而是担当起 property service的功能。
1.1脚本文件
in it@System/Core/l nit
Init.c : parse_config_file(lnit.rc)
@parse_c on fig_file(l nit.marvel.rc)
解析脚本文件:Init.rc和Init.xxxx.rc(硬件平台相关)
In it.rc 是 An droid 自己规定的初始化脚本 (An droid In it Lan guage, System/Core/I nit/readme.txt)
该脚本包含四个类型的声明:
Actio ns
Comma nds
Services
Opti ons.
1.2服务启动机制
我们来看看In it是这样解析.rc文件开启服务的。
打开.rc 文件,解析文件内容 @ system\core\init\init.c
将 service 信息放置至U service_list 中。@ system\core\init parser.c
restart_service()@ system\core\init\init.c
service_start
execve(…).建立 service 进程。
第二步 Zygote
Servicema nager和zygote进程就奠定了 An droid的基础。Zygote这个进程起来才会建立起真 正的An droid运行空间,初始化建立的 Service都是Navtive service.在.rc脚本文件中zygote 的描述:
service zygote /system/b in/app_process -Xzygote /system/b in --zygote --start-system-server
所以 Zygote 从 main(…)@frameworks\base\cmds\app_main.cpp 开始。
(1) mai n(…)@frameworks\base\cmds\app_mai n.cpp
建立 Java Run time
run time.start(com.a ndroid.i nternal.os.Zygotel nit, startSystemServer);
(2) run time.start@A ndroidR un time.cpp
建立虚拟机
运行: ernal.os.Zygotelnit : main 函数。
main()@ernal.os.Zygotelnit〃 正真的 Zygote。
registerZygoteSocket();〃 登记 Listen 端口
startSystemServer();
进入Zygote服务框架。
经过这几个步骤,Zygote就建立好了,利用 Socket通讯,接收 ActivityManangerService 的
请求,Fork应用程序。
第三步 System Server
startSystemServer@ernal.os.ZygoteInit 在 Zygote 上 fork 了一 个进程: com.a ndroid.server.SystemServer.于是 SystemServer@(SystemServer.java)就建立了。 An droid 的所有服务循环框架都是建立 SystemServer@(SystemServer.java)上。在 Syst
原创力文档

文档评论(0)