AndroidAMS架构图
2019-09-20 11:31:54 0 举报
AndroidAMS架构图以及binder
作者其他创作
大纲/内容
开始
Zygote进程启动
最终在Zygote.MethodAndArgsCaller()中
ServiceManger->main()
引导程序BootLoader启动
调用Process中的start方法
CameraService
ZygoteProcess用于保持与Zygote进程的通讯状态
SystemServiceManger
当AMS有请求过来
传入创建的应用程序的用户id
ActivityManagerService
Linux内核启动
应用进程启动
ZygoteProcess.Start
openZygoteSocketlfNeed()
SystemServer服务进程创建ActivityMangerService(Client)
service_maner.c的main()方法
WindowManagerService
创建ServiceManger(由init进程通过解析 init.rc文件)
N
Y
4.唤醒 loop
挂起
Binder机制
2.调用open() mmap 初始化
AMS调用startProcessLocked向Zygote发送请求
在SystemService进程启动
3.向binder驱动发送指令
5.do_add_service调用服务注册函数将服务注册到服务目录
PackageManagerService
6.添加完成
没有任务休眠
Service_manger(服务端)
注释init.rc文件是init启动之后解析的
zygoteSendArgsAndGetResult()其中會有一个openZygoteSocketlfNeeded()455参数返回ZygoteState
Binder线程池
SystemService进程启动
其他系统服务
ZygoteState类主要用于与Zygote进程通讯的状态
Binder驱动
8.唤醒 发送指令 告诉AMS服务注册完成
解析init文件
Launch应用程序
binder_open打开binder驱动
AMS注册 所有service_manager之外的都是可无端
打开Socket链接
收藏
0 条评论
下一页