apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.parkhaas.base"
minSdkVersion 18
targetSdkVersion 19
versionCode 1
versionName "0.1.0"
}
productFlavors {
Tistory {
applicationId 'com.parkhaas.tistory'
versionCode 1
versionName "0.1.0"
}
NaverBlog {
applicationId 'com.parkhaas.naverblog'
versionCode 1
versionName "0.1.0"
}
DaumBlog {
applicationId 'com.parkhaas.daumblog'
versionCode 1
versionName "0.1.0"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
versionNameSuffix '-debug'
}
}
applicationVariants.all { variant ->
variant.outputs.each { output ->
String apkName = "aridheart_" + variant.productFlavors.name[0] + "_" + variant.versionName + ".apk"
output.outputFile = new File(output.outputFile.parent, apkName)
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:21.0.3'
compile project(':myLibrary')
}
build.gradle 내용을 이렇게 하고.
Override 하고 싶은 리소스 파일들은
app
ㄴ src
ㄴ DaumBlog
ㄴ main
ㄴ NaverBlog
ㄴ Tistory
ㄴ res
ㄴ values
ㄴ strings.xml
와 같이 main 에서 Java 와 res 의 구조를 지켜서 정의하면 된다.
main 의 strings.xml 에 있는 item 들중에 변경하고 싶은 item 만 productFlavors 들에 있는 strings.xml 에서 정의하면 된다.
이를테면 app_name 같은 거.
위 build.gradle 을 사용하면
자동으로 생성되는 디버그 APK 파일은 app / build / outputs / apk 폴더아래에
> aridheart_Tistory_0.1.0-debug.apk
의 형태로 떨어진다.
이렇게 생생된 각각의 APK 들은
각각의 packageName 을 가지는 완전히 별개의 앱이 된다. (한 디바이스에 세가지를 모두 설치 하는 게 가능하다)
keystore 를 넣어서 release 로 빌드하게 되면 뒷부분의 -debug 는 없이 생성된다.
생성되는 파일명을 다른 형태로 만들고 싶다면,
build.gradle. 파일에서 파일명 정의 하는 부분
String apkName = "aridheart_" + variant.productFlavors.name[0] + "_" + variant.versionName + ".apk"
을 자기 입맛에 맞게 수정하면 된다.
'공부하는 하스씨 > 안드로이드' 카테고리의 다른 글
[스크랩] Android studio의 유용한 플러그인 (0) | 2017.02.13 |
---|---|
Mockito 매뉴얼 한글화 (2010년) (0) | 2016.08.01 |
[삽질] Failed to resolve '라이브러리' 문제 (0) | 2015.10.21 |
[삽질] FloatMath.sin() 메소드가 안보인다 (ㅡㅜ) (0) | 2015.10.14 |
[삽질기] org.apache.http 관련 패키지가 참조되지 않는다!!!! (0) | 2015.10.14 |