码迷,mamicode.com
首页 > 系统相关 > 详细

系统进程 zygote(二)—— zygote.rc 脚本

时间:2015-07-17 09:32:27      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:

夕阳已在沉沉的淡化,这黄昏的美,有谁能描画?莽莽的天涯,哪里是我的家,哪里是我的家?爱人呀,我这般的想着你,你那里可也有丝毫的牵挂?—— 徐志摩·海边的梦

ilocker:关注 Android 安全(新入行,0基础) QQ: 2597294287

上篇笔记中学习到:zygote 进程是由 init 进程根据 zygote.rc 脚本中的命令,以 service 的方式启动的。

在 linux 系统中,service 通常是一种被称为守护进程 (daemon) 的程序。它通常在系统启动时启动,并一直运行于后台,直到系统关闭时终止。如 Apache 服务器的 httpd 守护进程,一直监听 80 端口以等待 http 请求。service 程序通常通过 service 命令来启动或停止。

在 \system\core\rootdir 目录中有 4 个 zygote 相关的启动脚本:

 技术分享

因为 android 5 已开始支持 64bit 程序,所以在 init.rc 中根据系统属性 ro.zygote 的值来引入不同的脚本:

 技术分享

由此也可知,属性 ro.zygote 的值可为:zygote32、zygote64、zygote32_64、zygote64_32。

这几个脚本的主要不同:

  • init.zygote32.rc:zygote 进程对应的执行程序是 app_process (纯 32bit 模式)
  • init.zygote64.rc:zygote 进程对应的执行程序是 app_process64 (纯 64bit 模式)
  • init.zygote32_64.rc:启动两个 zygote 进程 (名为 zygote 和 zygote_secondary),对应的执行程序分别是 app_process32 (主模式)、app_process64。
  • init.zygote64_32.rc:启动两个 zygote 进程 (名为 zygote 和 zygote_secondary),对应的执行程序分别是 app_process64 (主模式)、app_process32。

下面仅贴出 init.zygote32_64.rc 的内容:

 1 service zygote /system/bin/app_process32 -Xzygote /system/bin --zygote --start-system-server --socket-name=zygote
 2     class main
 3     socket zygote stream 660 root system
 4     onrestart write /sys/android_power/request_state wake
 5     onrestart write /sys/power/state on
 6     onrestart restart media
 7     onrestart restart netd
 8 
 9 service zygote_secondary /system/bin/app_process64 -Xzygote /system/bin --zygote --socket-name=zygote_secondary
10     class main
11     socket zygote_secondary stream 660 root system
12     onrestart restart zygote

如果读不懂脚本内容,可以看:\system\core\init\readme.txt。

app_process 的源码位于 \frameworks\base\cmds\app_process 路径下,仅有一个 app_main.cpp 文件,入口函数是 main。

学习资料:(1)http://blog.csdn.net/luoshengyang/article/details/6768304 (2)《深入解析 Android 5.0 系统》

系统进程 zygote(二)—— zygote.rc 脚本

标签:

原文地址:http://www.cnblogs.com/ilocker/p/4653406.html

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