2018. 12. 30. 12:11 안드로이드

 productFlavors 사용법



app gradle 설정 

빨간 부분이 추가 된 부분입니다.

android {
compileSdkVersion 27
defaultConfig {
applicationId "home.com.productflavor"
minSdkVersion 17
targetSdkVersion 27
flavorDimensions "default"
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}

productFlavors{
dev {
applicationId "home.com.productflavor.dev"

}
real {
applicationId "home.com.productflavor.real"

}
}

}

dependencies {

..........
}


프로젝트네비게이션 구조



저기 dev는 java가 파랑색인데 왜 real java는 그렇지 않은가 궁금할텐데 

그건 build variants 를 real로 설정하나 dev로 설정하나에 따라서 달라진다




소스는 단순하다 

MainActivity.java

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(this,Cons.data,Toast.LENGTH_SHORT).show();
TextView tv = findViewById(R.id.location);
tv.setText(R.string.location);
}
}

real Cons.java

public class Cons {
public static final String data="222";
}

real strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="location">real</string>
</resources>

dev Cons.java 

public class Cons {
public static final String data="111";
}

dev strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="location">dev</string>
</resources>


이렇게 두면 build Variant 가 real로 세팅되면 real이 표시되고 dev로 세팅되면 dev로 텍스트 뷰에 표시가 된다 .


프로젝트 

flavrotest.zip


posted by 욱이다