tgoop.com/AndroidSobes/319
Last Update:
Может ли приложение быть запущено в нескольких процессах?
Короткий ответ – Да.
Но для начала давайте разберемся чем процесс отличается от потока.
Процесс – это сущность на уровне ОС. Каждая программа может быть запущена в одном или нескольких процессах.
Поток – это сущность на уровне Runtime Environment.
Программа может выполняться в нескольких процессах. В каждом из процессов может быть создано несколько потоков (Java Threads).
Вернемся к андроиду. В предыдущем посте мы рассмотрели базовые компоненты и узнали, что каждый из компонентов может быть точкой входа в приложение. По умолчанию компоненты приложения работают в дефолтном процессе, но каждый из компонентов <activity>
, <service>
, <receiver>
, <provider>
может иметь поле android:process="<name>"
в андроид манифесте. Кастомное значение этого поля явно говорит системе в каком процессе будет работать компонент.
Важно: При старте нового процесса создается инстанс приложения и снова вызывается Application.onCreate()
. Если в этом методе вы инициализируете модули или библиотеки, которые используются только в главном процессе, то не забывайте проверять, в каком процессе вы находитесь в момент инициализации.
Подробнее про процессы и треды читайте в документации.
#System
BY Android Interview Review
Share with your friend now:
tgoop.com/AndroidSobes/319