Comunidad Empresarial Dinamiza

 
 
  • No hay categorías

 
No te pierdas...
 

 
Publicado 02/08/2019 por admin en
 
 

안드로이드 dagger2 예제

Dagger는 Java와 Android 모두에 대해 완전히 정적인 컴파일 타임 종속성 주입 프레임워크입니다. 그것은 광장에 의해 만들어진 지금 구글에 의해 유지 이전 버전의 적응이다. 응용 프로그램은 단일 톤(클래식 패턴 에 따라), MyExample(MyExample.java) 및 그것에 종속된 활동인 MainActivity로 구성됩니다. 또는 Gradle과 함께 Android를 사용하는 경우 많은 Android 구성 요소(예: 활동)가 코드에서 인스턴스화되지 않고 Android 프레임워크에 의해 인스턴스화됩니다. 이렇게 하면 생성자 구성 요소에 대 한 종속성을 제공 하기 가 어렵습니다. 이것은 Dagger2의 매우 간단한 로그인 예입니다 – 안드로이드에서 효율적인 접근 방식. UI에서 입력을 받고 Dagger2를 사용하고 UI에 효율적으로 다시 표시합니다. @Component 구성 요소의 구현을 만드는 데 사용되는 모듈이 지정됩니다. 우리는 활동을 주입하기 위해 우리의 활동 모듈을 참조하는 동안, 우리는 또한 안드로이드 기본 유형 (활동, 조각 등)의 바인딩을 보장하는 데 필요한 안드로이드 주입 모듈을 참조. 이 연습에서는 Android 응용 프로그램에서 Dagger 2 종속성 주입 프레임워크의 사용이 입증됩니다. 간단한 앱에는 사용자가 자격 증명을 인증할 수 있는 활동이 있습니다. 구현의 결과 값은 텍스트 필드에 표시됩니다.

먼저 MyDatabase 클래스를 살펴봅니다. 우리는 이미 생성자로 표시 하는 방법을 본 @Inject. 이렇게 하면 Dagger가 이 생성기를 사용하여 MyDatabase가 종속성으로 필요할 때마다 이 생성기를 삽입하도록 지시합니다. 또한 내가 의존하는 생성자 매개 변수가 «ApplicationContext»라는 단검을 알려줍니다. 그런 다음 ContextModule을 사용하여 «ApplicationContext» 라는 종속성을 제공했습니다. 이제 구성 요소를 정의합니다. 어떤 모듈을 사용해야 하는지, 어디에 주입해야 하는지 알려야 합니다. MyDatabase를 MyPresenter에 삽입해야 하므로 단검에게 컨텍스트 모듈에 대해 알려주기만 하면 됩니다(구성 요소가 MyDatabase 생성자에서 @Inject 직접 선택하기 때문에). 우리가 주입해야 할 곳을 알려주기 위해 void를 반환하고 소비자를 매개 변수로 하는 inject라는 함수를 정의합니다. 예: 이제 첫 번째 단검 2 개념을 소개합니다. 모듈을 참조하십시오. 모듈은 하나 이상의 주사용 클래스를 정의합니다(제공 된 추가 표시로 표시).

이 사소한 경우에, 나는 인터페이스 MyExample로 MyExampleImpl의 단일 구체적인 구현을 제공했다. 이 경우 Singleton 어노팅을 사용하여 응용 프로그램에서 MyExample를 구현하는 클래스의 공유 인스턴스 하나만 사용했습니다. 프레임 워크는 Java와 Android 모두에서 사용할 수 있지만 컴파일 타임 주입에서 파생 된 고성능은 후자의 선도적 인 솔루션입니다. Dagger2 안드로이드 효율적인 접근 방식의 GitHub 저장소를 클릭 gradle 우리가 Dagger2 작업에 필요한 몇 가지 클래스를 만들 준비가 모든 것을 구축 완료 한 후. 첫째, AppModule 코드 아래에 추가된 응용 프로그램 모듈 클래스를 만들면 종속성 주입이 원래 생각했던 것보다 약간 더 복잡하다는 것이 밝혀졌습니다. 다음 기사에서, 방법-단검 2 안 드 로이드와 함께: 2, 우리는 테스트를 추가 (에스프레소와 함께) 종속성 주입을 사용 하는 일반적인 이유를 설명 하기 위해. 좁은 사용 사례, 여러 맛, 고객은 비즈니스 요구를 반영하는 합리적인 기능을 요청하여 천천히 확장 – 이것은 우리가 가지고있는 간단한 응용 프로그램입니다. 빌드 파이프라인은 자동화되어 있으며, 모든 커밋은 Travis에서 빌드를 트리거하여 테스트하는 모든 사람이 사용하는 위치에 착륙하는 *.apk 파일을 생성합니다. 현재 고객이 하나의 기능을 전환하거나 다른 기능을 사용하지 않도록 설정하는 X 또는 Y인지 확인하는 10-20 조건부 – 응용 프로그램 내부는 그렇게 복잡하지 않습니다, 추가 텍스트 변경은 안드로이드에서 자연 자원 파일에서 관리됩니다.


admin