Facebook Twitter Google Maps RSS
Home Androidアプリ Android Studio + Gradle でのビルド環境切り換え方法
formats

Android Studio + Gradle でのビルド環境切り換え方法

 

現在のAndroid開発は Eclipse + Ant が主流かと思われますが、
Gradle が使用出来る Android Studio が登場したため
今回、開発現場でよくあるサーバ連携アプリやWEBコンテンツを表示するアプリでの
開発用URL、製品用URLの切り換え作業を自動化する方法を記載したいと思います。

 

1度設定すれば、クリック1発でビルド切り換えが可能であるため
Eclipse + Ant での手作業でのファイル置き換えやマージ等の作業が無くなり
ヒューマンエラーの発生を抑える事が出来ます。

 

今回の記載内容では以下の目的を想定してGradleファイルの設定をしていきます。
・デバッグ版 apk、リリース版 apk の切り換えをしたい
・開発用URL、ステージング用URL、製品用URLの切り換えをしたい

 

まず、通常の新規プロジェクトを作成した場合、以下のGradleファイルが生成されます。
—————————————————————————————————————
apply plugin: ‘com.android.application’
android {
    compileSdkVersion 20
    buildToolsVersion “20.0.0″
    defaultConfig {
        applicationId “com.example.myapp”
        minSdkVersion 15
        targetSdkVersion 20
        versionCode 1
        versionName “1.0″
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’
        }
    }
}
—————————————————————————————————————

このファイルにビルドタイプ設定、プロダクトフレーバー設定、署名定義設定を追記していきます。

・ビルドタイプ設定
デバッグ/リリース切り替え定義として以下を”buildTypes”へ追記します。
 デバッグ ・・・”debug”
 リリース ・・・”release”

 

・プロダクトフレーバー設定
リソース切り換え定義として以下を”productFlavors”へ追記します。
 開発版     ・・・”develop”
 ステージング版 ・・・”staging”
 製品版     ・・・”product”
(”develop”、”staging”、”product”は任意の文字列となります)
又、使用する署名ファイルも記載します。

 

・署名定義設定“signingConfigs”は署名用の定義となります。
“app/“ フォルダ以下の任意のフォルダに .keystore を配置しておきます。
今回は”releaseKey”という名称で”app/”配下に直に置いています。

 

—————————————————————————————————————
dependencies {
    compile fileTree(dir: ‘libs’, include: ['*.jar'])
}
apply plugin: ‘com.android.application’
android {
    compileSdkVersion 20
    buildToolsVersion “20.0.0″
    defaultConfig {
        applicationId “com.example.myapp”
        minSdkVersion 15
        targetSdkVersion 20
        versionCode 1
        versionName “1.0″
    }
    // 署名用定義
    signingConfigs {
        releaseKey {
            keyAlias ‘myApp’ // エイリアス名
            keyPassword ‘password’
            storeFile file(‘myApp.keystore’)  // カレントディレクトリはapp/直下
            storePassword ‘password’
        }
    }
    // ビルドタイプ
    buildTypes {
        debug {
            debuggable true
            applicationIdSuffix = ‘.debug’ // パッケージ名に .debug をつける
            versionNameSuffix = ‘d’        // バージョン名の末尾に d をつける
        }
        release {
            runProguard false
            proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’
        }
    }
    // プロダクトフレーバー
    productFlavors {
        develop {
            applicationId = ‘com.example.myapp’
            signingConfig signingConfigs.releaseKey
        }
        staging {
            applicationId = ‘com.example.myapp’
            signingConfig signingConfigs.releaseKey
        }
        product {
            applicationId = ‘com.example.myapp’
            signingConfig signingConfigs.releaseKey
        }
    }
}
dependencies {
    compile fileTree(dir: ‘libs’, include: ['*.jar'])
}
—————————————————————————————————————

 

次に実際に切り換えを行いたいリソースファイルの作成を行います。
各フレーバー毎に”app/src/“ディレクトリ配下にフォルダを作成し、
切り換えたいリソースを配置してきます。
フォルダ・ファイルは Gradleから自動生成してくれないため1つずつ自力で作成していきます。
今回は、URL文字列の変更を行いたいので string.xml を各フレーバーフォルダへ配置します。

 

配置後のフォルダ、ファイルは以下となります。

 

string.xml には以下のような記載をしました。
 開発用
  <string name=”url”>http://dummy_develop_url/</string>
 ステージング用
  <string name=”url”>http://dummy_staging_url/</string>
 製品用
  <string name=”url”>http://dummy_product_url/</string>

 

アプリのレイアウトファイルは以下の通り
————————————————-
<RelativeLayout
 〜〜〜
tools:context=”.MyActivity”>
 <TextView
android:text=”@string/url”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content” />
</RelativeLayout>
 ————————————————-

 

次にBuild Variants から任意の組み合わせを選択し実行します。
(Build Variantsが非表示の場合は、左側ツールバーのボタンをクリックすれば表示されます)

 

今回、全パターン(ビルドタイプ2種 ×プロダクトフレーバー3種)のapkを実際に作成してみました。
出力フォルダ(“app/build/outputs/apk”)を見てみると実際に 各apk が作成されています。

 

又、実際に動作させたapkでもリソースファイルに記載したURLが
以下のように置き換わっている事を確認出来ます。
開発用
   http://dummy_develop_url/
ステージング用
   http://dummy_staging_url/
製品用
   http://dummy_product_url/

 

以上、Gradleを使用したビルド環境切り換えについて記載いたしました。

 

Androidアプリ開発実績はこちら


 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*


*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code lang=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" extra="">