안드로이드 개발 언어를 Java로 지정 하면서 의존성 주입 또한 Java의 방식을 따름
자바 플랫폼 스펙을 규격화 하고 정의한 JSR 330번 스펙에 따르면 자바 의존성에 대한 표준을 정의 되어 있다.
안드로이드도 Java 언어를 사용하면서 자연스럽게 위 정의된 규칙을 따르고 있다.
마찬가지로 Java에서 자주 사용하던 DI 라이브러리도 사용하기 시작 했다. 처음에는 Guice 라이브러리를 사용하게 되었다.
자바를 위한 의존성 주입 라이브러리로 런타임에 의존성을 주입한다. 하지만 큰 단점으로는 *리플렉션을 사용한다는 점이다. 런타임에 로드된 클래스 정보들을 확인을 할 수 있는 장점이 있지만 비용이 큰 작업 이기 때문에 모바일 환경에서 이렇게 하면 앱의 퍼포먼스에 영향을 줄수가 있다.
리플렉션을 사용하지 않는 라이브러리로 마찬가지로 의존성 주입 기능을 한다. 어노테이션 프로세서로 자동 코드를 컴파일 타임때 생성을 하여 퍼포먼스도 좋았다. 하지만 높은 러닝 커브로 처음 접하는 개발자들에게 많이 어려웠다.
코틀린 등장 이후로 생긴 의존성 주입 라이브러리로 리플렉션을 사용하는 라이브러리이다. 그래서 퍼포먼스 측면에서 저조하다. 하지만 Dagger2에 비해 러닝 커브가 낮다.
2020년 6월에 최초 출시한 의존성 라이브러리로 안드로이드만 위한 솔루션 그리고 Dagger2 기반으로 만들어진 라이브러리로 안드로이드 표준 컴포넌트를 제공 하고 있다.