flavor毎に異なるソースコード/リソースファイルを使用する
$ tree app/src/
app/src/
├── androidTest
├── ko
│ ├── java
│ │ └── model
│ │ └── Greeter.java
│ └── res
├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ └── example
│ │ └── flavor
│ │ └── MainActivity.java
│ └── res
├── otsu
│ ├── java
│ │ └── model
│ │ └── Greeter.java
│ └── res
└── test
build.gradle
android {
...
productFlavors {
ko {
applicationIdSuffix ".ko"
}
otsu {
applicationIdSuffix ".otsu"
}
}
sourceSets {
ko {
java.srcDirs = ['src/ko/java']
res.srcDirs = ['src/ko/res']
}
otsu {
java.srcDirs = ['src/otsu/java']
res.srcDirs = ['src/otsu/res']
}
}
...
}
src/main/
MainActivity.java
package com.example.flavor;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import com.example.nobu.flavor.R;
import model.Greeter;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = (TextView) findViewById(R.id.message);
textView.setText(Greeter.message());
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.example.flavor.MainActivity">
<TextView
android:id="@+id/message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
src/ko
Greeter.java
package model;
public class Greeter {
public static String message() {
return "Hello, world";
}
}
src/otsu
Greeter.java
package model;
public class Greeter {
public static String message() {
return "こんにちは、世界!!";
}
}
src/koを使ってbuild
$ ./gradrew assembleKo
src/otsuを使ってbuild
$ ./gradrew assembleOtsu