LoginSignup
0
0

More than 5 years have passed since last update.

Android productFlavorのメモ

Posted at

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
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0