level 5
紫极散人
楼主
底层通过一个叫bootloader的系统加载器加载linux内核,然后调用init进程,进行初始化这就是安卓最开始的部分,和框架一点关系都没有这是最底层的硬件部分
init()初始化 首先是daemon(中文虚拟光驱的意思)会运行usb daemon(usdb) 用来管理usb连接android debug bridge daemon(adbd) android debug bridge连接管理 ?暂时不清楚这个是什么或许是为了下面这个的开始
debuger daemon(debuggerd) 启动debugger系统radio interface layer daemon(rild):管理无线通信连接然后init()还会运行context manager这玩意功能很大首先可以理解为相机,音乐,视频处理的进程管理同时,他还运行于安卓各种系统服务信息流程如下 应用程序---->想要调用系统服务---->不得不去向服务管理器申请许可---->通过一个叫BinderIPC的联合接口调用但是问题就在这里binderIPC和服务管理器没有任何关系,他们怎么通信?这时候一直运行系统服务的context manager就出现了,这个东西在运行时所有的系统服务都把自己的句柄(handle)信息注册到context manager,这时候binderIPC调用context manager和服务管理器进行通信
init()同时还初始化media server,这个是系统服务,用于视频和音频
init()还初始化zygote进程,zygote进程用于缩短android应用程序加载的时间,每次执行java应用程序时,zygote就会派生出一个子程序来执行应用程序,该子进程就是用来执行java应用程序的虚拟机
system server 是安卓系统的一个核心进程,它是由zygote进程创建的,在安卓启动过程中位于zygote之后,在system server中可以看到他建立的安卓中大部分服务,比如说系统服务中的activity manager service,彻底启动之后,会运行home应用,启动过程继续进行,之后不讨论
I
2013年10月08日 09点10分
1
init()初始化 首先是daemon(中文虚拟光驱的意思)会运行usb daemon(usdb) 用来管理usb连接android debug bridge daemon(adbd) android debug bridge连接管理 ?暂时不清楚这个是什么或许是为了下面这个的开始
debuger daemon(debuggerd) 启动debugger系统radio interface layer daemon(rild):管理无线通信连接然后init()还会运行context manager这玩意功能很大首先可以理解为相机,音乐,视频处理的进程管理同时,他还运行于安卓各种系统服务信息流程如下 应用程序---->想要调用系统服务---->不得不去向服务管理器申请许可---->通过一个叫BinderIPC的联合接口调用但是问题就在这里binderIPC和服务管理器没有任何关系,他们怎么通信?这时候一直运行系统服务的context manager就出现了,这个东西在运行时所有的系统服务都把自己的句柄(handle)信息注册到context manager,这时候binderIPC调用context manager和服务管理器进行通信
init()同时还初始化media server,这个是系统服务,用于视频和音频
init()还初始化zygote进程,zygote进程用于缩短android应用程序加载的时间,每次执行java应用程序时,zygote就会派生出一个子程序来执行应用程序,该子进程就是用来执行java应用程序的虚拟机
system server 是安卓系统的一个核心进程,它是由zygote进程创建的,在安卓启动过程中位于zygote之后,在system server中可以看到他建立的安卓中大部分服务,比如说系统服务中的activity manager service,彻底启动之后,会运行home应用,启动过程继续进行,之后不讨论
I