Ответ 1
Все, что я когда-либо узнал об этом, я узнал на этой странице .
Изменить. Я также просто наткнулся на Руководство по разработке действий и задач. В нем будет рассмотрена точная тема, которую вы - спросил он. Я многому научился:)
Таким образом, в основном процессы могут содержаться в одном и том же стек. Правильно ли я?
Основываясь на моем понимании, вы правы. Я понимаю, что Процессы являются единицами фактического исполнения, а Задачи - об ассоциации, чтобы добиться результата. В качестве примера на вышеупомянутой странице, если вы создаете намерение, которое открывает веб-страницу, созданная им деятельность создается в процессе веб-браузеров, но связана с вашими задачами приложений. Таким образом, задача становится виртуальным стеком операций, запущенных на разных процессах, в зависимости от приложения, которое предоставило Activity.
Другой вопрос: что такое реальный значение "контекст приложения"? процесса или задачи?
Это хороший вопрос. Основываясь на чтении страницы выше, я понимаю, что контекст приложений связан с процессом. Я основываю это на интерпретации этой строки на этой странице, но может быть и другая информация:
Обычно новый экземпляр активность запускается в процесс приложения, которое определило его, поэтому все экземпляры действия, выполняемые в тот же процесс
И последний вопрос: приложение класс (который в основном одноэлементный) представляет процесс или задачу?
С той же интерпретацией, что и выше, моя догадка о том, почему объект приложения представляет Singleton, состоит в том, что все ваши действия приложений запускаются в одном процессе и этот процесс привязан к Приложению. Я не знаю, что это точка проектирования, но, по-видимому, она является последствием текущего дизайна.
Изменить: есть некоторые предостережения. Похоже, что ваше приложение может распространяться на несколько процессов, поэтому я предполагаю, что объект приложения и контекст действуют как механизм для объединения всех процессов вместе. Я почти уверен, что ваша ментальная модель уже допустила это, предполагая, что процессы были из разных приложений, поэтому его единственная небольшая разница, чтобы позволить ей войти в один процесс.
Элемент манифеста имеет атрибут android: процесс с описанием следующим образом:
Название процесс, в котором деятельность должна запустить. Обычно все компоненты приложение запускается в процессе по умолчанию созданный для приложения. В нем есть то же имя, что и приложение пакет. Элементы атрибут процесса может установить другой по умолчанию для всех компонентов. Но каждый компонент может переопределить значение по умолчанию, позволяя вам распространять ваши приложения на нескольких процессах. Если имя, присвоенное этому атрибуту начинается с двоеточия (':'), нового процесс, частный для приложения, создается, когда это необходимо, и активность проходит в этом процессе. Если имя процесса начинается с нижнего регистра символа, действие будет выполняться в глобальный процесс с таким названием что у него есть разрешение на это. Эта позволяет использовать компоненты в разных приложения для совместного использования процесса, сокращение использования ресурсов.