Жизненный цикл Dagger 2 компонента, модуля и области применения

Я прочитал много постов и учебных пособий о кинжале 2:

http://frogermcs.github.io/dependency-injection-with-dagger-2-custom-scopes/

https://github.com/codepath/android_guides/wiki/Dependency-Injection-with-Dagger-2

http://fernandocejas.com/2015/04/11/tasting-dagger-2-on-android/

https://github.com/konmik/konmik.github.io/wiki/Snorkeling-with-Dagger-2

От чего зависит жизненный цикл компонента (графа объектов) в Dagger 2?

и т.п.

Но я все еще не понимаю жизненный цикл компонента и его связь с модулем и областью применения. Я хочу убедиться, что я не создаю несколько экземпляров объекта, когда мне нужен только Singleton. Надеюсь, что кто-то может пролить свет на это:

Каков жизненный цикл компонента, встроенного в класс приложения?

Каков жизненный цикл компонента, встроенного в класс Activity или Fragment?

Если мне нужен экземпляр-одиночка из компонента, нужно ли аннотировать компонент с помощью @Singleton или пользовательской области видимости и создавать этот компонент в классе приложения?

Если я создаю компонент в классе приложения, означает ли это, что все экземпляры объектов, доступные через этот компонент, будут одноэлементными во всем приложении, пока приложение не будет убито или перезапущено?

У меня есть компонент с настраиваемой областью действия, скажем, @ActivityScope, и я создаю этот компонент в Activity. Будут ли экземпляры объекта, внедренные через этот компонент, автоматически уничтожаться после вызова onDestroy () этого действия?

Опять же, у меня есть компонент с настраиваемой областью действия, скажем, @ActivityScope, и я создаю этот компонент в ActivityA и ActivityB, будут ли ActivityA и ActivityB совместно использовать одни и те же экземпляры объектов из этого компонента или у них будут свои собственные экземпляры одного и того же объекта?

Ответы на вопрос(1)

Ваш ответ на вопрос