2017-12-11 11 views
2

안드로이드 모듈과 맛의 주요 차이점은 무엇입니까? https://developer.android.com/studio/projects/add-app-module.html모듈과 맛의 Android 차이점

모듈이 앱의 소스 코드, 리소스 파일 및 모듈 수준의 빌드 파일 및 안드로이드 매니페스트 파일과 같은 응용 프로그램 레벨 설정을위한 컨테이너를 제공하는 모듈 정의에서

. 각 모듈은 독립적으로 구축, 테스트 및 디버깅 할 수 있습니다.

그러나 나는 맛에 관해서도 똑같이 말할 수 있습니다.

누군가이 두 가지 주요 차이점을 지적 할 수 있습니까?

답변

0

모듈은 완전히 다른 파일 집합입니다. 맛은 대부분의 코드 또는 구성을 공유 할 수 있으며 사소한 차이 만 있습니다. 맛 반면

+0

합니다. ? –

+0

맛을 app/src/flavorName으로 정의 할 수 있으며 코드도 완전히 다른 집합입니다. Moduls도 코드를 공유 할 수 있지만 좋은 습관은 아닐 것입니다. 맛의 차이점은 구현에 달려 있습니다. –

+0

예, 반대 할 수는 없습니다 - 모듈을 공유하여 코드를 공유하십시오. 이 두 엔티티는 다른 경우에 사용하기위한 것일 뿐이지 만 원할 경우 비슷한 두 가지 항목을 사용할 수 있습니다. –

0

모듈은 프로젝트의 일부 더 많거나 적은 구성/구현

모듈에 대한 구체적인 예 : 당신은, 예를 들어, 라이브러리가 여러 개의 모듈을 가질 수 있습니다 만드는 경우 도서관 자체와 데모 프로젝트. 그들 각각의 모듈

있습니다 : 귀하가 일부 온라인 기능을 갖춘 응용 프로그램을 만들고있다 : 각 모듈은 자신의 코드

맛에 대한 구체적인 예를 가지고있다. 이를 위해 여러 환경 (테스트 용 서버 env, 실제 버전 용 환경)이 있습니다. 이 짧은 결론이다

맛 (기본 폴더를 사용하여) 자신의 코드를 공유 할 수 있습니다 (필요한 경우 자체 구현) 당신은

참고 자체 구성과 모든 환경에 대한 빌드 맛을 만들 수 있습니다 . 모듈과 Flavors는이 짧은 설명보다 훨씬 강력하지만 가장 중요한 차이점을 지적 할 것입니다.

EDIT : 주요 차이점은 특히 gradle과 관련된 프로젝트의 구조입니다. 당신은 다음과 같은 구조를 얻을 수 있도록

모듈은 항상 자신의 Gradle을 파일이 :

projectName.gradle 
    module1.gradle 
    module2.gradle 
    ... 

맛이 모듈의 Gradle을 파일에 정의되어 있습니다 :

예를 들어, module1.gradle는 다음과 같이 수 : 당신이 볼 수 있듯이

// some other gradle stuff before 

buildTypes { 
    dev { 
     // your config 
    } 
    debug { 
     // your config 
    } 
    release { 
     // your config 
    } 
} 

, 당신은 맛과 모듈을 혼합 할 수 있습니다. 이제 module1에는 2 개의 모듈과 다른 종류의 프로젝트가 있습니다. 프로젝트 폴더에서

, 당신은 당신의 파일 탐색기에서 구조를 다음 있어야합니다 : 그 약간의 차이가 무엇

/project 
    /module1 
    /src 
     /main 
     /dev 
     /debug 
     /release 
    /module2 
+0

구체적인 예는 묻지 않았지만 주요 차이점을 물었습니다. app/src/flavorName 디렉토리를 만들면 모듈과 동일한 "프로젝트 레벨의 일부"에있게됩니다. –

+0

차이점을보다 분명하게하기 위해이 예제를 만들었습니다. 그래도 어떤 질문이 있습니까? – beal

+0

풍미와 moduls가 나타나는 방식은 게시물에서 유효한 포인트 일뿐입니다. 차이점은 있지만, 나는이 두 가지 사이의 ** 키 차이 **라고 부르지 않을 것입니다. 내가 할 수있는 기능은 무엇입니까?하지만 다른 기능과는 상관없는 기능은 무엇입니까? –