A injeçao de dependecia é um conceito bem importante a ser utilizado.
Uma explicacao interessante que eu acho é a seguinte: Imagine que seu celular é o seu modulo do programa.
Agora imagine que o carregador é uma dependencia.
Um sistema fortemente acoplado é similar a um carregador preso ao celular. Entao se for preciso trocar o carregador. É necessario trocar todo conjunto celular e carregador.
Na inversao de controle temos uma gaveta cheia de carregador e o sistema envia a que ele acredita ser melhor para nossa aplicacao. Nem sempre o melhor.
Na injeção de dependencia temos por exemplo um celular e uma gaveta com diversos carregadores. E podemos decidir qual acreditamos ser melhor para nossa aplicaçao.
Como posso fazer isso em um desenvolvimento Android usando Android Studio?