LoginSignup
0
1

More than 3 years have passed since last update.

【備忘録】基本情報設定(gradle)

Last updated at Posted at 2020-11-02

戻る

gradleの設定

アプリの基本的な設定情報はgradleとmanifestsで管理されているらしい。
manifestsにベタ打ちでもいいが、gradleを活用した方が捗りそうだ

gradle.propertiesに値を設定

流れ的には
1. gradle.properties(プロジェクト・プロパティー)に値を追加
2. build.gradle(モジュール:app)でpropertiesの値を取得するように記述
こうすることで、build時に必要な値を生成してくれる

試しにアプリ自体と内部のDBのバージョン情報追加してみる

gradle.properties
   #アプリの基本情報
   version_major=1
   version_minor=0
   db_name=DB_name
   db_version=1

こんな感じになる
image.png

build.gradleで値を取得

上でgradle.propertiesに追加した値を受け取るにはこんな感じで書く。
image.png

build.gradle
        versionName = project.property("version_major") + "." + project.property("version_minor");
        archivesBaseName = "samplepack-" + defaultConfig.versionName

上の行では先ほどのversion_majorとversion_minorの値を組み合わせて、
アプリのversionNameを生成している。
次の行ではversionNameを使ってarchivesBaseNameを生成している。
この値はアプリをbuildした際のファイル名に使われる。
因みにこの2行が書いてあるdefaultConfigの部分は元々アプリ内で定められた変数にしか値を登録できないようだ。

次にbuildTypesの方、

build.gradle
    buildTypes {
        debug {
            buildConfigField "String", "dbName", "\"${project.property("db_name")}_DEV\""
            buildConfigField "String", "dbVersion", "\"${project.property("db_version")}\""
            buildConfigField "String", "env", "\"DEV\""
        }
        release {
            buildConfigField "String", "dbName", "\"${project.property("db_name")}_PRD\""
            buildConfigField "String", "dbVersion", "\"${project.property("db_version")}\""
            buildConfigField "String", "env", "\"PRD\""
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

ここではdefaultConfigと違い、自由に値を作ることができる。
特にありがたいのは、debugとreleaseのそれぞれの場合で、違い値を生成してくれる機能だ
今回の場合はDB名の後ろに_DEV/_PRDの記述を追加しているのと、
envという変数の中身をDEV/PRDで切り替えている。
これによって、開発と運用で違うデータソースやURLに接続させることが容易になり、
1つのソースで管理することができる。

BuildConfig.javaの生成

ここまでの設定をすると、~\app\build\generated\source\buildConfig\~
の中に、BuildConfig.javaというファイルが生成される

BuildConfig.java
/**
 * Automatically generated file. DO NOT MODIFY
 */
package sample.pack;

public final class BuildConfig {
  public static final boolean DEBUG = Boolean.parseBoolean("true");
  public static final String APPLICATION_ID = "sample.pack";
  public static final String BUILD_TYPE = "debug";
  public static final int VERSION_CODE = 1;
  public static final String VERSION_NAME = "1.0";
  // Fields from build type: debug
  public static final String dbName = "DB_name_DEV";
  public static final String dbVersion = "1";
  public static final String env = "DEV";
}

この値はnewすればどこでも取り出せる。

MainActivity.java
        //アプリ情報表示
        BuildConfig conf = new BuildConfig();

        Log.d("package名",conf.APPLICATION_ID);
        Log.d("version名",conf.VERSION_NAME);
        Log.d("DB名",conf.dbName);
        Log.d("DBのversion",conf.dbVersion);
        Log.d("環境",conf.env);

ログを出力するとこんな感じ
image.png

戻る

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