System Server 和 Service Manager联系

 Service Manager:

由init 进程启动。Service Manager和zygote进程奠定了Android的基础。所以从启动顺序上来看,Service Manager和zygote是一个级别的,

都是由init启动, 而System Server是由zygote进程fork出来的。init 进程通过创建子进程启动这些服务,创建的 service 都属于 native 服务,运行在 Linux 空间。

service servicemanager /system/bin/servicemanager
    class core
    user system
    group system
    critical
    onrestart restart healthd
    onrestart restart zygote
    onrestart restart media
    onrestart restart surfaceflinger
    onrestart restart drm

servicemanager:启动 Binder IPC,管理所有的 Android 系统服务。ServiceManager是一个守护进程,负责管理Server并向Client提供查询Server的功能。

内部维护一个list来记录已经注册的所有的service,统一管理,向Client提供查询服务。

 

System Server:

Init进程启动zygote后, 由zygote启动的第一个java应用,System Server会启动Android的核心服务,如:ActivityManager, WindowManager, PackageManager,etc.

SystemServer通过ServiceManager.addService()调用,使用Binder IPC把上面那些核心服务注册到ServiceManager负责维护的Server列表。

service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
    class main
    socket zygote stream 660 root system
    onrestart write /sys/android_power/request_state wake
    onrestart write /sys/power/state on
    onrestart restart media
    onrestart restart netd

zygote通过fork 并启动 System Server 核心进程。上面脚本的含义为作为孵化进程 (-Xzygote 参数),通过 system/bin/app_process 启动zygote 服务,同时启动

SystemServer(--start-system-server 参数)进程。

System Server 进程的主要功能:
1)加载 android servers 底层函数库
2)启动 android 系统中的 native 服务
3)创建、注册并启动 Android 的系统服务,在独立线程中运行
4)创建 Looper 消息循环,处理 System Server 进程中的事件消息

System Server 创建 Android 系统服务对象,通过Binder注册到 Service Manager 进程。启动过程中最核心的一步是“启动 Android 系统的各种系统服务”,这
些系统服务构成了整个 Android frameworks的基础,通过 Binder IPC 为上层应用提供各种功能。

 

转载于:https://www.cnblogs.com/zsdlut/p/5015809.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值