I just started on application development and wanted to learn properly everything about how Android works.

I came across four bullet points (https://developer.android.com/guide/components/fundamentals) that explain that Android sets each app as a different Linux user and that each process has its own virtual machine (VM). Here's the part confusing me, one of the bullet points (third one) doesn’t specify which process are encompassed in a virtual machine.

• Each process has its own virtual machine (VM), so an app's code runs in isolation from other apps.

This is the first time on the page it mentions a process which is why I am confused.

My question is which processes are running in a virtual machine? - Is it the main Linux process only? - is it ALL of the processes within the Linux process?

If so, how can processes communicate between each other if each one of them are running in isolation (in VM)?

Thank you for your time.


None of the apps are running in a virtual machine. Really, the page is trying to explain that there's a separate instance of the JVM for each application process. It's quite a misleading description.

FYI, there's no such thing as a "main Linux process". Linux is the kernel, which is not a process; rather, it is above all of the processes, in charge of creating, scheduling, and destroying them, and mediating their access to the hardware.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.