Zygote

zygote 孵化器是 Android 应用进程的模板,通过其 fork 出来。 Zygote初始化最后进入 select 循环, 等待客户端的请求 fork 应用进程。

frameworks/base/core/java/com/android/internal/os/ZygoteServer.java

Runnable runSelectLoop(String abiList) {    ......    while(true) {        StructPollfd[] pollFds = new StructPollfd[fds.size()];        ......        try {            Os.poll(pollFds, -1);        }        for (int i = pollFds.length -1 ; i >= 0; i--) {            if ((pollFds[i].revents & POLLIN) == 0) {                continue;            }            if (i == 0) {                ZygoteConnection newPeer = acceptCommandPeer(abiList);                peers.add(newPeer);                fds.add(newPeer.getFileDescriptor());            } else {                ZygoteConnection connection = peers.get(i);                final Runnable command = connection.processOneCommand(this);                return command;                ......            }        }    }}

frameworks/base/core/java/com/android/internal/os/ZygoteConnection.java

Runnable processOneCommand(ZygoteServer zygoteServer) {    ......    pid = Zygote.forkAndSpecialize(...);    try {        if (pid == 0) {            // in child            ......            return handleChildProc(...);        } else {            // In the parent            handleParentProc(...)            return null;        }    }}

更多相关文章

  1. Android(安卓)Activity 属性介绍
  2. 面向忙碌开发者的 Android
  3. Android多媒体应用——ImageSwitcher
  4. 面向忙碌开发者的 Android
  5. android 启动流程
  6. Android初小试---一分钟傻瓜式打包
  7. Android开发中 AndroidManifest.xml配置之service,receiver标签配
  8. 享受Android应用程序的Java技术盛宴
  9. android 应用程序数据共享shareuserid篇+ContentResolver+Conten

随机推荐

  1. 对TabHost、TabWidget的理解分析
  2. Android四大布局之表格布局行列位置控制
  3. android 5大数据存储
  4. 【起航计划 006】2015 起航计划 Android
  5. Android的属性Property系统
  6. android ndk 开发之 在 框架层使用 jni
  7. Android Animation 详解
  8. Content Provider初谈和Android联系人信
  9. android 拉伸图片
  10. Android存储设备(U盘,SD卡)状态监测(《An