Dalvik与Zygote流程之间的关系是什么?

时间:2016-10-19 05:21:42

标签: android dalvik

我只是想知道:

  • 谁创建了this.disposable = this.gameStream$.subscribe((data)=>{ this.timer_data = data this.list_players = data console.log(this.timer_data) }) this.disposable.unsubscribe(); // ==> this will trigger the teardown logic to be called

  • dalvik_Vm进程是在vm中运行还是相反?

3 个答案:

答案 0 :(得分:7)

Dalvik VMDan Bornstein撰写 每个Android应用程序都在一个单独的进程中运行,拥有自己的Dalvik VM。

  

Zygote是一个守护进程,是启动应用程序的唯一任务。这意味着Zygote是所有App流程的父级。当app_process启动Zygote时,它会创建第一个Dalvik VM并调用Zygote的main()方法。一旦Zygote启动,它就会预加载所有必需的Java类和资源,启动System Server并打开一个socket / dev / socket / zygote来监听启动应用程序的请求。

答案 1 :(得分:1)

添加一些示例来说明Zygote是所有App进程的父级。 合子PID:481,我的应用程序处理PPID:481,您可以使用ps命令进行检查。

UID            PID  PPID C STIME TTY          TIME CMD
root           481     1 0 09:17:54 ?     00:00:03 zygote
u0_a132      28993   481 78 09:07:53 ?    00:23:46 com.languouang.helloworld
u0_a132      29013   481 0 09:07:53 ?     00:00:01 com.languouang.helloworld:countservice
u0_a132      29296   481 1 09:09:04 ?     00:00:09 com.languouang.helloworld:mall
u0_a132      30427   481 1 09:16:42 ?     00:00:15 com.languouang.helloworld:faq

答案 2 :(得分:0)

Zygote实际上是启动过程启动时发生的init进程的子进程。 它负责加载执行我们的Dalvik字节码的Dalvik虚拟机。而且,它会将所有必需的资源,所有共享的Java类和资源预加载到内存中。