I have developed an Android application that has 1 process and 2 services. But I noticed that "Google Services" has 2 processes and 1 service. How can it have 2 processes? I did some reading at Processes and Threads to try to understand more about processes. It talks about having a manifest entry, but without a concrete example I don't get it. Can someone explain how an Android application can have more than 1 process and provide a concrete example of that?
Asked
Active
Viewed 2.2k times
2 Answers
53
You can specify android:process=":remote"
in your manifest to have an activity/service run in a seperate process.
The "remote" is just the name of the remote process, and you can call it whatever you want. If you want several activities/services to run in the same process, just give it the same name.
<activity android:name=".RemoteActivity" android:label="@string/app_name" android:process=":RemoteActivityProcess"/>

ddewaele
- 22,363
- 10
- 69
- 82
-
4your answer and blog look good. I am accepting your answer and voting for it. If I need some clarification later I hope you will provide. – Marie Jul 04 '11 at 21:19
-
1The blog post link is dead, please fix it, as this is really interresting. – Jojje Dec 06 '16 at 10:36
-
Link shows some kind of lotteries. Please fix the link. – CopsOnRoad Sep 10 '17 at 14:51
7
If you are looking for examples, do check out hogwarts library, it shall provide you facilities for multi-processes programming in Android.
Basically there are following things you need to have in order to run a service in its "own" process.
- in AndroidManifest.xml, make sure the service's process attribute is ":remote" or something like it with a ":" prefix
- use startService() calling to bring up the service from your activity.
- use AIDL for ipc.
- Make everything transfer between processes Parcelable. (this is actually the requirement for point 3)

YoussefDir
- 287
- 1
- 3
- 16

zhao chang
- 211
- 3
- 8