Ответ 1
Описанное поведение полностью согласуется с документацией Основы приложений, из которой ясно, что "открытие камеры в другом процессе" t поможет вам, потому что это то, что уже происходит по умолчанию:
Когда система запускает компонент, он запускает процесс для этого приложения (если он еще не запущен) и создает классы, необходимые для компонента. Например, если ваше приложение запускает действие в приложении камеры, которое фиксирует фотографию, это действие выполняется в процессе, относящемся к приложению камеры, а не в вашем приложении.
Итак, когда приложение камеры перенесено на передний план, ваше приложение переходит в фоновый режим, что делает его одним из кандидатов, который должен быть убит системой, когда он низко в памяти по Процессы и жизненный цикл приложения. Вы наблюдаете нормальное поведение ОС. Общий объем ОЗУ не является ключевым моментом. Свободная память об объеме, доступном для процесса на переднем плане.
С учетом сказанного ответ на ваш вопрос Нет. Любой Activity
запускается и запускается в приложении (процессе), из которого он был первоначально объявлен через файл манифеста, независимо от того, из какого процесса приходит запрос на запуск.
Команда
adb shell ps | grep 'app_name'
сообщит вам, какие процессы выполняются в вашем приложении и приложении камеры.
Два приложения могут работать в одном и том же процессе, но необходимое условие для этого - та же самая подпись приложений... Из Основы приложений:
Возможно, чтобы два приложения могли использовать один и тот же идентификатор пользователя Linux... Приложения с одинаковым идентификатором пользователя также могут организовать запуск в одном и том же процессе Linux и использовать одну и ту же виртуальную машину (приложения также должны быть подписаны с помощью тот же сертификат).