android启动过程分析
来源:互联网 发布:中国钢协网络竞赛成绩 编辑:程序博客网 时间:2024/05/16 05:43
1 Android是基于Linux内核的系统平台。启动时,首先通过bootloader(系统加载器),加载linux内核。在linux内核加载启动时,与普通的Linux启动过程相似,然后调用用户空间中的init进程。init进程对各种设备进行初始化,运行Android Framework所需的各种Daemon、Content Manager、Media Server 、Zygote等。
2 init进程启动Linux守护进程Daemon,具体如下:
--USB Daemon(usbd):管理usb连接
-- Android Debug Bridge Daemon(adbd):管理ADB连接。
-- Debugger Daemon:管理调试进程的请求。
--Radioi Interface Layer Daemon(rild):管理无线通信
在启动Linux守护进程的同时还需要启动Zygote进程,主要包括以下工作:
--初始化一个Dalvik虚拟机实例
--装载socket请求所需的类和监听
--创建虚拟机实例来管理应用程序的进程。
接着,需要初始化runtime进程,主要包括如下工作:
--初始化服务管理器
--注册服务管理器,以它作为默认Binder服务的Context管理器。
runtime初始化之后,runtime进程将发送一个请求到zygote,开始启动系统服务,这时zygote将为系统服务进程建立一个虚拟机实例,并启动系统服务。
系统服务具体由媒体服务器(Media Server)与系统服务器(System Server)俩个系统进
程运行。
媒体服务器进程用来启动除Surface Flinger之外的Audio Flinger、Media Player Service等本地系统服务。
系统服务器是由Zygote最初生成的基于java进程,它会启动所有Java系统服务,还包括本地系统服务Surface Flinger,如下图所示:
3 当所有Java系统服务加载完毕后,Activity Manger Service 会运行Home应用,启动过程继续进行。
- Android启动过程分析
- Android 启动过程分析
- android启动过程分析
- android 启动过程分析
- Android启动过程分析
- Android启动过程分析
- android 启动过程分析
- android 启动过程分析
- Android启动过程分析
- Android启动过程分析
- Android启动过程分析
- Android init 启动过程分析
- Android init 启动过程分析
- Android init 启动过程分析
- Android init 启动过程分析
- Android init 启动过程分析
- Android init 启动过程分析
- android 无线启动过程分析
- 在网络上隐藏自己的计算机
- [收集]c++抽象类、纯虚函数以及巧用纯虚析构函数实现接口类
- Wimax项目终结
- struts2简单的数据校验
- 陕西大荔一名警察参与绑架勒索162万后仍撕票-绑架-撕票-民警
- android启动过程分析
- Specular Highlight Removal
- TWaver 3D for Flex 3.0发布
- iOS开发技巧7
- Android 设置Activity大小不再全屏原理
- Oracle数据库impdb和expdb操作
- 为HTML5的未来制定学习计划
- XAML综述
- Linux多线程编程小结