Zygote进程的Socket通信相关的代码会被fork出来的进程继承,但应用进程不需要Socket,这方面怎么做的?

来源:2-1 谈谈对zygote的理解

慕工程2504881

2019-12-13

写回答

1回答

小旋风_qsh

2019-12-17

Zygote在收到孵化进程的消息,执行forkAndSpecialize,当返回的pid == 0 即为孵化出的应用进程,会调用

zygoteServer.closeServerSocket();将socket关闭;

if (pid == 0) {
      //pid为0,表示当前代码执行逻辑运行在新创建的进程中,调用handleChildProc处理进程
               zygoteServer.closeServerSocket();
               IoUtils.closeQuietly(serverPipeFd);
               serverPipeFd = null;
               handleChildProc(parsedArgs, descriptors, childPipeFd, newStderr);
               return true;
           } else {

5
0

剖析Framework面试 冲击Android高级职位

一手助力冲刺Android高级职位,一手把握系统底层原理,理清面试思路,提升技术段位

1406 学习 · 187 问题

查看课程