Zygote和System进程的启动过程】的更多相关文章

##init脚本的启动 +------------+ +-------+ +-----------+ |Linux Kernel+--> |init.rc+-> |app_process| +------------+ +-------+ +-----------+ create and public server socket linux内核加载完成后,运行init.rc脚本 service zygote /system/bin/app_process -Xzygote /system/bi…
1.基本过程 init脚本的启动Zygote Zygote进程的启动 System进程的启动 Android应用进程启动过程 2.init脚本的启动 +------------+ +-------+ +-----------+ |Linux Kernel+--> |init.rc+-> |app_process| +------------+ +-------+ +-----------+ create and public server socket linux内核加载完成后,运行init.…
Android启动过程中的第一个进程init.在启动过程中会启动两个关键的系统服务进程ServiceManager和Zygote. 本文要介绍的就是Zygote进程的启动,Zygote俗称孵化器,专门用于生产(启动)新的进程.Zygote是在Init.rc(aosp/system/core/rootdir)里描写叙述并由init进程启动的.相关代码例如以下: service zygote /system/bin/app_process -Xzygote /system/bin --zygote…
1.  init 根据init.rc 运行 app_process, 并携带‘--zygote' 和 ’--startSystemServer' 参数. 2.  AndroidRuntime.cpp::start() 里将启动JavaVM,并且注册所有framework相关的系统JNI接口. 3.  第一次进入Java世界,运行ZygoteInit.java::main() 函数初始化Zygote. Zygote 并创建Socket的server 端. 4.  然后fork一个新的进程并在新进程…
1.儿子Activity在启动过程中的流程组件 在Android Activity启动过程http://blog.csdn.net/jltxgcy/article/details/35984557一文中,我们已经具体分析了Activity的启动过程,对于子Activity组件在进程内的启动过程.我们仅仅分析它们之间的不同. 主要是2处.1是不须要创建新的任务栈.2是不须要创建新进程和子线程.表如今上一篇文章的总图中.就是没有第4步.并且第5步指向的Laucher子线程. 第1点,体如今例如以下代…
简述 Android设备启动过程中,先是Linux内核加载完,接着Android中的第一个进程init启动,它会启动一些需要开机启动的进程. Zygote就是进程init启动起来的.Android中所有应用程序进程,以及运行系统关键服务的System进程都是由Zygote创建的.它通过复制自身的形式创建其它进程.Zygote在启动时会在内部创建一个虚拟机实例,因此,通过复制Zygote得到的其它应用程序进程和System进程都可以快速地在内部获得一个虚拟机地拷贝.Zygote启动完成后就立即将S…
所在位置: 图书 -> 在线试读 -> Android内核剖析 第9章 Framework的启动过程 9.3 zygote的启动 前面小节介绍了Framework的运行环境,以及Dalvik虚拟机的相关启动方法,zygote进程是所有APK应用进程的父进程,接下来就详细介绍zygote进程的内部启动过程. 9.3.1  在init.rc中配置zygote启动参数 init.rc存在于设备的根目录下,读者可以使用adb pull /init.rc ~/Desktop命令取出该文件,文件中和zyg…
此前的文章我们学习了init进程.Zygote进程和SyetemServer进程的启动过程,这一篇文章我们就来学习Android系统启动流程的最后一步:Launcher的启动流程,并结合本系列的前三篇文章的内容来讲解Android系统启动流程.建议读这篇文章前要通读本系列的前三篇文章,否则你可能不会理解我在讲什么. 1.Launcher概述 Android系统启动的最后一步是启动一个Home应用程序,这个应用程序用来显示系统中已经安装的应用程序,这个Home应用程序就叫做Launcher.应用程…
根Activity启动过程 Launcher启动MainActivity的过程主要分为6个步骤: 一.Launcher向ActivityManagerService发送一个启动MainActivity的进程间通信请求: 二.ActivityManagerService首先将MainActivity的信息保存下来,再向Launcher组件发送一个进入中止状态的进程间通信请求: 三.Launcher进入中止状态后,向ActivityManagerService发送一个已经进入中止状态的进程间通信请求…
1.Zygote简介 在Android系统中,DVM(Dalvik虚拟机).应用程序进程以及运行系统的关键服务的SystemServer进程都是由Zygote进程来创建的,我们也将它称为孵化器.它通过fock(复制进程)的形式来创建应用程序进程和SystemServer进程,由于Zygote进程在启动时会创建DVM,因此通过fock而创建的应用程序进程和SystemServer进程可以在内部获取一个DVM的实例拷贝. 关于init启动zygote我们在上一篇文章已经提到了,这里就不赘述了,这篇文…