We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
博主在博客中说到,所谓多进程模式是一个APP对应多个虚拟机,但有的资料说Dalvik虚拟机是不同于JVM的一点就是其中可以运行多个进程,所以一个APP对应一个虚拟机,而虚拟机可以运行多个进程,这两者谁对谁错,请博主给以权威资料证明
The text was updated successfully, but these errors were encountered:
http://gold.xitu.io/entry/5759e63cd342d300577fafd0 看图说话
Sorry, something went wrong.
@AnyLifeZLB @weifucheng 我来回答一下,若是有错了,请指教哈。
进程的问题:Android 中的第一个 Java 进程是 Zygote 进程,之后的进程(Android 每个应用的进程)都是从这个 Zygote 进程 fork 出来的,fork 出来的子进程的父进程都是 Zygote 进程。 PS: service 指定了 process: remote 之后的进程,其父进程也是 Zygote 进程。具体可在 adb shell 下使用 ps 命令查看。
关于虚拟机的问题:在启动 Zygote 进程之前,会由 init.rc 的进程来启动 Dalvik 虚拟机。即之后的 Zygote 进程是运行在 Dalvik 虚拟机上的。这样的话,在 fork 出来的子进程,根据 fork 的原理(copy on write),子进程会拷贝一份跟父进程相同的进程地址空间,这样子进程也会有自己的 Dalvik 虚拟机代码。即每个进程便是一个个的 Dalvik 虚拟机。这样每个 App 挂掉便不会影响其他的进程。
No branches or pull requests
博主在博客中说到,所谓多进程模式是一个APP对应多个虚拟机,但有的资料说Dalvik虚拟机是不同于JVM的一点就是其中可以运行多个进程,所以一个APP对应一个虚拟机,而虚拟机可以运行多个进程,这两者谁对谁错,请博主给以权威资料证明
The text was updated successfully, but these errors were encountered: