2014-01-29 8 views
3

안드로이드에 Gradle을를 사용하는 변종 :빌드가 ... 다음과 같은 고려가 Gradle을을 사용하여 안드로이드 Studio의 맛에 관한 한 나는 질문이 스튜디오

당신은 당신의 빌드 3 개 맛이있다; Flavor1, Flavor2 및 Flavor3.

모든 3 가지 맛은 동일한 파일에 의존합니다. 간단하게하기 위해 MainActivity.java라고 부릅니다. 또한 3 가지 모든 맛은 자체적으로 정의 된 상수 파일을 가지며 Constants.java라고 부릅니다.

Constants.java 이외에 Flavor1과 Flavor2는 동일한 소스 코드를 사용합니다. 즉, Flavor1과 Flavor2는 main, MainActivity.java 및 다른 파일에서 다음 파일을 사용합니다. 간단하게하기 위해 AnotherActivity.java를 호출합니다.

이제 Flavor3는 MainActivity.java를 사용하지만 다른 한편으로는 추가 사용자 정의가 필요하고 AnotherActivity.java에 대한 일부 변경이 필요합니다.

File Structure: 
src 
-main 
--java 
---MainActivity.java 
---AnotherActivity.java 

-Flavor1 
--java 
---Constants.java 
-Flavor2 
--java 
---Constants.java 
-Flavor3 
--java 
---Constants.java 
---AnotherActivity.java 

Gradle을을 사용하여 안드로이드 스튜디오에 중복 클래스 파일 오류가 발생하지 않고 빌드 의존성이 유형의 작업을 수행 할 수있는 방법이 있습니까?

감사합니다.

최고 감사합니다, 크리스토퍼 스티븐

답변

5

나는 자원 만이 방법이 머지 것으로 나타났습니다. 소스 파일은 단일 빌드 경로로 병합됩니다. Constants.java에서했던 것처럼 AnotherActivity.java를 각 flavor에 복사해야합니다. 리팩터링을 통해 원본을 약간 줄여서 복제본을 만드는 것이 최선이라고 생각하십시오. src/main/java에있는 AbstractAnotherActivity.java를 사용하여이를 수행 할 수 있습니다.

Android Studio에서 빌드 변형을 선택하면 패키지보기에서 선택한 변형의 소스 만 표시됩니다.

0

클래스는 완전히 동일한 이름의 Gradle 맛을 사용할 때 다른 클래스를 완전히 대체합니다. 코드 재사용을 피하는 가장 좋은 방법은 MainActivity에 모든 공유 코드를 포함 시켜서 복제하지 않는 것입니다 (그렇지 않으면 여러 위치에서 변경해야 함). AnotherActivity 클래스의 추가 코드/재정의를 참조하십시오.