Как приложение Android может иметь более одного процесса? - PullRequest
9 голосов
/ 04 июля 2011

Я разработал приложение для Android, которое имеет 1 процесс и 2 службы.Но я заметил, что «Сервисы Google» имеет 2 процесса и 1 сервис.Как это может иметь 2 процесса?Я прочитал на Процессы и потоки , чтобы попытаться понять больше о процессах.В нем говорится о наличии декларации, но без конкретного примера я ее не понимаю.Может кто-нибудь объяснить, как приложение Android может иметь более 1 процесса, и привести конкретный пример этого?

Ответы [ 2 ]

23 голосов
/ 04 июля 2011

Вы можете указать android:process=":remote" в своем манифесте, чтобы действие / служба выполнялись в отдельном процессе.

«Удаленный» - это просто имя удаленного процесса, и вы можете называть его как угодно.хочу.Если вы хотите, чтобы несколько действий / служб выполнялись в одном процессе, просто присвойте ему одно и то же имя.

<activity android:name=".RemoteActivity" android:label="@string/app_name" android:process=":RemoteActivityProcess"/>
3 голосов
/ 16 июня 2014

если вы ищете примеры, посмотрите библиотеку Хогвартса , она предоставит вам средства для многопроцессорного программирования в Android.

В основном существуют следующие вещи, которые необходимы для запуска службы в своем собственном процессе.

  1. в AndroidManifest.xml, убедитесь, что атрибут процесса службы имеет значение «: remote» или что-то подобноеэто с префиксом ":"
  2. используйте startService () для вызова службы из вашей деятельности.
  3. используйте AIDL для ipc.
  4. Сделайте все передачи между процессами Parcelable,(на самом деле это требование для пункта 3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...