Ciclo de vida do Dagger 2 de um componente, módulo e escopo

Eu li muitos posts e tutoriais sobre o punhal 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

O que determina o ciclo de vida de um componente (gráfico de objeto) no Dagger 2?

etc.

Mas ainda estou confuso sobre o ciclo de vida de um componente e como ele se relaciona com o módulo e o escopo. Quero ter certeza de que não crio várias instâncias de um objeto quando quero apenas um Singleton. Espero que alguém possa lançar alguma luz sobre estes:

Qual é o ciclo de vida de um componente criado na classe de aplicativo?

Qual é o ciclo de vida de um componente criado na classe Activity ou Fragment?

Se eu quiser uma instância singleton de um componente, devo anotar o componente com @Singleton ou um escopo personalizado e criar esse componente na classe de aplicativo?

Se eu criar um componente na classe do aplicativo, isso significa que todas as instâncias de objeto disponíveis por meio desse componente serão uma instância singleton em todo o aplicativo até que o aplicativo seja eliminado ou reiniciado?

Eu tenho um componente com um escopo personalizado, digamos @ActivityScope, e eu construo esse componente em uma Activity, as instâncias de objeto injetadas por esse componente serão destruídas automaticamente depois que onDestroy () for chamado?

Novamente, tenho um componente com um escopo personalizado, digamos @ActivityScope, e construo esse componente no ActivityA e no ActivityB, ActivityA e ActivityB compartilharão as mesmas instâncias de objeto desse componente ou terão suas próprias instâncias do mesmo objeto?

questionAnswers(1)

yourAnswerToTheQuestion