当前位置:主页 > QQ空间代码 > Android系统历程Zygote启动进程的源代码剖析

Android系统历程Zygote启动进程的源代码剖析

来源:未知 作者:ddddaa 时间:2012-01-11 [搜索相关内容] 浏览:

  Android系统历程Zygote启动进程的源代码剖析,正在Android系统中,所有的利用法式历程和系统办事历程SystemServer都是由Zygote历程孕育(fork)出来的,那或许就是为何要把它称为Zygote(受精卵)的缘由吧。果为Zygote历程正在Android系统中有着如斯主要的职位,本文将具体剖析它的启动进程。

  接下来的socket闭头字透露表现那个zygote历程需要一个名称为zygote的socket资本,如许,系统启动后,我们便可以正在/dev/socket目次下看到有一个名为zygote的文件。那里界说的socket的类型为unixdomainsocket,它是用来作当地历程间通讯誉的,详细可以参考前里一篇文章Android进修启动篇提到的一书《Linux内核源代码景象剖析》的第七章--基于socket的历程间通讯。前里我们说到的ActivityManagerService就是通那个socket来和zygote历程通讯哀求fork一个Android系统历程Zygote启动进程的源代码剖析利用法式历程的了。

  下里我们就具体剖析每个步调。

  正在前里一篇文章Android利用法式历程启动进程的源代码剖析中,我们看到了,当ActivityManagerService启动一个利用法式的时间,就会经过Socket与Zygote历程停止通讯,哀求它for源代码k一个子历程出来作为那个行将要启动的利用法式的历程;正在前里两篇文章Android利用法式安拆进程源代码剖析和Android系统默许Home利用法式(Launcher)的启动进程源代码剖析中,我们又看到了,系统中的两个主要办事PackageManagerService和ActivityManagerService,都是由SystemServer历程来负责启动的,而SystemServer历程自己是Zygote历程正在启动的进程中fork出来的。

  领会了那个信息以后,我们就知道Zygote历程要履行的法式即是system/bin/app_process了,它的源代码位于frameworks/base/cmds/app_process/app_main.cpp文件中,进心函数是main。正在继续剖析Zygote历程启动的进程之前,我们先来看看它的启动序列图:

  正在Android系统中,所有的利用法式历程和系统办事历程SystemServer都是由Zygote历程孕育(fork)出来的,那或许就是为何要把它称为Zygote(受精卵)的缘由吧。果为Zygote历程正在Android系统中有着如斯主要的职位,本文将具体剖析它的启动进程。

  闭于init.rc文件的更多信息,请参考system/core/init/readme.txt文件。

  最后的一系列onrestart闭头字透露表现那个zygote历程重启时需要履行的号令。

  我们知道,Android系统是基于Linux内核的,而正在Linux系统中,所有的历程都是init历程的子孙历程,也就是说,所有的历程都是直接或间接地由init历程fork出来的。Zygote历程也不破例,它是正在系统启动的进程,由init历程建立的。正在系统启动剧本system/core/rootdir/init.rc文件中,我们可以看到启动Zygote历程的剧本号令:

  前里的闭头字service报告init历程建立一个名为zygote的历程,那个zygote历程要履行的法式是/system/bin/app_process,后里是要传给app_process的参数。

 QQ空间代码 使用方法:

 一、登录你的QQ空间;
 二、点“装扮空间”;
 三、将以上QQ空间免费物品对应的代码粘贴到你的浏览器地址栏中[也就是浏览器输入网址那里];
 四、在地址栏里按回车,这时你就会发现物品显示出来了,如果没有出现物品,请多按几次;
 五、点“保存装扮方案”,如果提示“无需保存”,请先随便移动一下模块位置,然后保存。OK!

 P.S.“QQ空间特区”每天都有精彩奉献给你!

上一篇:影评:源代码似8分钟的“电玩游戏”(图   下一篇:没有了
把QQ空间添加到QQ收藏 把QQ空间添加到百度藏
QQ空间相关推荐
QQ空间合作伙伴
QQ空间最新推荐
QQ空间随机推荐
QQ空间精品推荐

联系我们 - 广告服务 - 免责声明