- 由pid为0的Linux内核进程启动启动系统关键进程: 执行init.rc脚本,执行脚本中一行一行的Linux命令来启动进程守护系统关键进程:如蓝牙、铃声、接打电话、安装应用等进程名结尾带“d”的系统进程当守护的进程被杀死时,重启被杀死的进程当守护的进程无法被重启时,重启手机:如Zygote
- 由init进程执行zygote.rc脚本启动的最开始启动的时候名字并不是叫Zygote,而是app_process在app_main.cpp中当解析到命令中有“--zygote”时,将app_process的名字改为了Zygote(niceName=ZYGOTE_NICE_NAME,可能是感觉app_process不好听吧)Zygote是native进程:由c++代码启动的;Zygote创建一个Server端的Socket,实现与其他进程通信提前加载系统资源、系统类;从而让APP进程不用重复加载系统资源、系统类;如Activity的Class、系统主题等ZygoteInit.java还去fork出了SystemServer这个java进程启动App时,Zygote还负责fork出App进程
- Zygote它负责开进程Binder效率太高了,而开进程又比较慢,用Binder同时发多个启动进程请求时,会让内存瞬间暴涨; 安全方面:容易被Hook;Socket:请求串行,执行完一个开进程,再执行下一个;
Android Framwork源码-PMS随记_暮冬一十四的博客-CSDN博客
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)