All activities inside an application run in one process?
Это зависит от значения атрибута android:process
в манифесте приложения.
, если атрибут android:process
не определен для тегов приложения / действия в манифесте, по умолчанию все действия будут выполняться водин процесс (имя процесса будет именем пакета, определенного в манифесте)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.so.test" android:versionCode="1" android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Activity1">
</activity>
<activity android:name=".Activity2">
</activity>
<activity android:name=".Activity3">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
В приведенном выше манифесте все действия выполняются в процессе com.so.test
, вывод команды ps в оболочке adb:
# ps
app_39 668 33 84492 20672 ffffffff afd0c51c S com.so.test
Если для действия задано android:process
, будет создан новый процесс с тем же идентификатором пользователя, и действие будет выполняться в этом процессе.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.so.test" android:versionCode="1" android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:process="com.so.p1">
<activity android:name=".Activity1">
</activity>
<activity android:name=".Activity2" android:process="com.so.p2">
</activity>
<activity android:name=".Activity3" android:process="com.so.p3">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Если манифест определен, как указано выше
Activity1 runs in com.so.p1 process
Activity2 runs in com.so.p2 process
Activity3 runs in com.so.p3 process
вывод ps в оболочке adb
# ps
app_39 650 33 83192 20900 ffffffff afd0c51c S com.so.p1
app_39 659 33 83188 20864 ffffffff afd0c51c S com.so.p2
app_39 668 33 84492 20672 ffffffff afd0c51c S com.so.p3
Если нужно запустить Activity в другом процессе, не определенном в этом манифесте, оба APK должны быть подписаны одним и тем же сертификатом.