카테고리 없음
안드로이드 Flavor관련 팁
룬아님
2022. 4. 11. 23:53
Dev, Alpha, Beta, Production의 Flavor가 있고 Production을 제외한 다른 Flavor에서 같은 코드를 사용할 때
특정 Flavor를 제외하고 다른 Flavor에서는 같은 소스 코드를 사용해야할 때가 있을 수도 있다.
가장 간단한 방법으로는 Dev, Alpha, Beta에 같은 코드를 모두 복사하여 넣어주는 방법이 있지만 하나의 코드를 수정할 때 Flavor 마다 수정해야 하는 불편함과 사이드 이펙트를 감수해야했다.
이를 해결하기 위하여 gradle을 이용하였다.
sourceSets {
dev.java.srcDirs += 'src/beta/test'
alpha.java.srcDirs += 'src/beta/test'
beta.java.srcDirs += 'src/beta/test'
}
Beta Flavor의 패키지에 test라는 디렉토리를 만들고 그곳에 공통적으로 사용될 코드를 넣고 sourceSets에서 각 Flavor의 srcDirs에 beta의 test 디렉토리의 경로를 추가해준다.
특정 Flavor에서만 uses-permission을 요구하지 않고 싶을 때
디버깅을 위해서 Production에서는 필요하지 않은 permission을 manifest에 추가했을 때에 실제 출시를 해야하는 Production에는 포함하고 싶지 않을 때가 있다.
<uses-permission
android:name="android.permission.SYSTEM_ALERT_WINDOW"
tools:node="remove" />
Production의 manifest에서 remove를 추가하여 permission을 선언해주면 해당 permission은 해당 Flavor에서 요청하지 않게된다.
다중 manifest 파일 병합 | Android 개발자 | Android Developers
manifest 병합 및 manifest 병합 도구에 관해 자세히 알아보세요.
developer.android.com
반응형