일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- viewholder
- high order function
- 안드로이드스튜디오
- fragment
- Fragment에서 Activity의 함수 사용하기
- 뷰변경 감지
- binding adapter
- 코딜리티
- ActivityTestRule
- 코틀린
- adapter
- 안드로이드13
- 구분선
- Fragment 수동 추가
- Android
- searchview
- IntentTestRule
- 재사용
- LayoutManger
- 생명주기
- 고차함수
- espresso
- 안드로이드
- recyclerview
- 스와이프
- Error:Execution failed for task ':app:mergeDebugResources'
- ui test
- 안드로이드개발레벨업교과서
- 테마 아이콘
- 리사이클러뷰
Archives
- Today
- Total
룬아님의 취중코딩
안드로이드 Flavor관련 팁 본문
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에서 요청하지 않게된다.
반응형
Comments