码迷,mamicode.com
首页 > 移动开发 > 详细

Android技术20:Android的初始化流程

时间:2014-08-14 01:11:17      阅读:393      评论:0      收藏:0      [点我收藏+]

标签:android   blog   http   io   for   2014   cti   linux   

Android系统是如何启动的呢,应用程序是如何启动。下面简要介绍下初始化流程。

1.Android系统的初始化

1.1Android系统会首先启动Linux基础系统,然后引导加载Linux内核并启动初始化进程Init

Linux Kernel---->Init(pid=1)

1.2启动守护进程Daemons

    启动Usb守护进程,管理USB连接

    启动Android Debug Bridge守护进程管理ADB连接

    启动Debuggerd Debug守护进程

    启动无线接口守护进程管理无线通信

1.3启动守护进程的同时,会启动Zygote进程

    创建初始化Dalvik初始化实例

    加载socket请求的需要的类和监听

    创建虚拟机实例来管理应用程序的进程

 

         |  Daemons

init----

         |  Zygote

1.4接下来,初始化Runtime进程

     初始化服务管理器Service Manager

     注册服务管理器,以它作为默认的Binder服务Context管理器

1.5启动系统服务System Service

     Runtime向Zygote发送一个请求,Zygote为系统服务创建一个Dalvik虚拟机实例,并启动系统服务,系统服务将启动原生系统服务,主要包括Audio Flinger和Surface Flinger,这些本地系统服务将注册到服务管理器。系统服务将启动Android管理服务,将管理服务都被注册到服务管理器上。

1.6系统加载完成,等待应用程序启动

1.7Activity Manager管理器向Zygote发出一个Socket请求,Zygote通过fork机制创建一个Dalvik虚拟机进程,来运行应用程序

    所有的应用程序进程都是Zygote进程的子进程,每一个应用程序一个进程一个虚拟机。

bubuko.com,布布扣

    

 

Android技术20:Android的初始化流程,布布扣,bubuko.com

Android技术20:Android的初始化流程

标签:android   blog   http   io   for   2014   cti   linux   

原文地址:http://www.cnblogs.com/forsta/p/3911426.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!