[记录]Android SystemServer

来源:互联网 发布:sqlmap写入webshell 编辑:程序博客网 时间:2024/06/06 19:29

SystemServer是Zygote启动的第一个进程,其主要的作用是启动各种系统服务,比如ActivityManagerService,PackageManagerService,WindowManagerService等服务。


SystemServer.run()

1. 设置全局属性,如DVM参数,Binder属性,SystemServer设定所有binder thread以foreground的优先级执行,并且特别设定binder thread number的值为31,正常APP的binder thread为15。

2. 创建一个system context,此时会调用ActivityThread.systemMain()创建出一个ActivityThread,同时在ActivityThread attach过程中调用ContextImpl:createSystemContext()真正创建出system context。

3. startBoostrapServices如ActivityManagerService,PowerManagerService,PackageManagerService等。

4. startCoreService如BatteryService等。

5. startOtherServices如TelephonyRegistry、NetworkManagementService等。

6. 调用ActivityManagerService.systemReady启动SystemUi。

7. 通过Loop.loop()进入无限循环等待message。


[参考资料]

Android情景分析之深入解析system_server

http://blog.csdn.net/hu3167343/article/details/38375167


[深入理解Android卷一全文-第四章]深入理解zygote

http://blog.csdn.net/innost/article/details/47207845


原创粉丝点击