But first, let's clarify the difference between a process and a thread.
A process is an operating system-level entity. Each application can run in one or more processes.
A thread is a runtime-level, specifically in the Java Runtime Environment (JRE).
An application can execute in multiple processes, and within each process, several threads (Java Threads) can be created.
Back to Android. In the previous post, we discussed the basic components of an app and learned that each component can serve as an entry point. By default, application components run in a single default process. However, each component (
<activity>
, <service>
, <receiver>
, <provider>
) can specify the android:process=”<name>”
attribute in the Android manifest. Setting a custom value for this field tells the system in which process the component should run.Important: When a new process is started, a separate instance of the application is created, and
Application.onCreate()
is called again. If you initialize modules or libraries in this method that are meant to be used only in the main process, make sure to check which process is running during initialization.For more details on processes and threads, you can refer to the official documentation.