1. 从源码位置上来讲
源码中 ActivityThread的位置:/frameworks/base/core/java/android/app/ActivityThread.java可以看到是位于 app 这个包里面的。而ZygoteInit 的源码位置如下:/frameworks/base/core/java/com/android/internal/os/ZygoteInit.java是放在internal/os下面的。(internal的意思是:内部的;内在的;国内的)

2.从功能上来讲

ZygoteInit有如下几大函数:private static void registerZygoteSocket(String socketName) static void preload() // 预加载资源 private static void handleSystemServerProcess() private static PathClassLoader createSystemServerClassLoader(String systemServerClasspath, int targetSdkVersion) private static boolean startSystemServer(String abiList, String socketName)       //启动SystemServer进程。简单来说就是建立Socket通信,预加载资源,启动SystemServer. 人如其名,就是初始化 Zygote用的。而进程的fork,是Zygote干的事情。而ActivityThread 则是 App的管家,个人觉得叫 AppProcessManager 更贴切一些。具体内容可以参考其代码。其main函数主要干了两件事:1. 创建 MainLooper.2. 创建 ActivityThread 对象.ActivityThread 干的事情才和具体的 App 有关系,而ZygoteInit 只是做Zygote的初始化工作,尽管一个App的进程是从 Zygote fork 出来的。

更多相关文章

  1. android broadcastReceiver生命周期及两种应用——四大组件之Bro
  2. Android(安卓)单独抽取 WebRtc-NS/NSX(音频降噪) 模块
  3. Android(安卓)layout xml总结(1)
  4. Andriod开发必备资料
  5. Android之 系统启动流程
  6. Android(安卓)应用安装位置
  7. Android九宫格抽奖
  8. Android中的Context对象
  9. Android(安卓)闹钟源码

随机推荐

  1. Android当前时间的获取
  2. 控制android弹出框不消失
  3. Android中控制虚拟键盘
  4. Android DownloadManager 使用
  5. 深入浅出Android Support Annotations
  6. Android常见面试题总结 1.1
  7. Android 双击退出应用
  8. SystemServer 分析
  9. Android InputMonitor
  10. Android工程师面试准备知识点