LoginSignup
8
6

More than 5 years have passed since last update.

Android build.gradleの設定を調べてみた

Last updated at Posted at 2016-11-08

Androidのビルドが遅いなーと感じていたので、高速化するためにもbuid.gradleを少し調べてみました。

Build Type + Product Flavor = Build Variants
なんですかそれってところから調べました

Build Typeとは

名前の通りbuild の種類みたいです。
debug用とかリリース用とかそういった感じの。

例えばdebug用のapkには後ろにdebugとつけたり設定できます。
(apkをわけられるので、同じ端末にデバッグ用とリリース用を共存させられる)

難読化処理を掛けるのも、リリース用のみでいいので、リリースだけやるみたいな感じで振り分けできます。

Product Flavor
とは、アプリケーションのビルドをカスタムするときに使うみたいです。今回ならminSdkVersionの切り替えで使ってます。

Build Variants
上記2つを組み合わせたものをBuild Variants と読んでいるみたいです。

説明めんどくさくなったのでとりあえずコード貼ります。

build.gradle
apply plugin: 'com.android.application'

android {

    defaultConfig {
        //デフォルトで設定しておく内容
        compileSdkVersion 23
        buildToolsVersion "24.0.0"
        applicationId "org.test.gao.testApp"
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }

    productFlavors {
        // Define separate dev and prod product flavors.
        dev {
            //21以上からビルド時にキャッシュが効くようになっているので、21(Android5.0)以降の端末をdebugで使用している際はそちらで
            minSdkVersion 21
        }
        prod {
            //実際にリリースするときはAndroid4.0以上がほとんどなので、4.0から指定
            minSdkVersion 14
        }
    }

    // 追加
    signingConfigs {
        debug {
            //ここにkeyStoreの設定を行うことでビルドを自動化出来る
            //storeFile file("debug.keystore")
            //storePassword "android"
            //keyAlias "androiddebugkey"
            //keyPassword "android"


        }
        release {
            // 追加
            //storeFile file("release.keystore")
            //storePassword "生成時に決めたpass"

            //keyAlias "生成時に決めたkeyAlias"

            //keyPassword "android"



        }
    }
    buildTypes {
        //debug時に使う内容
        debug {
            //apkのうしろにdebugを追加
            applicationIdSuffix ".debug"
            //デバック環境なのでdebug出来るように
            debuggable true
            //signingConfig signingConfigs.debug

        }
        release {
            //本番環境なのでdebugできないように
            debuggable false
            //この設定をtrueにしないと証明書付きのapkが作成されない
            zipAlignEnabled true
            //ビルド時にkeystoreを自動で使う場合に書く
            //signingConfig signingConfigs.release

            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'

}

参考記事
http://nextdeveloper.hatenablog.com/entry/2014/06/18/145745
http://qiita.com/kojionilk/items/0b34ad03497dae1093ff

8
6
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
8
6