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 と読んでいるみたいです。
説明めんどくさくなったのでとりあえずコード貼ります。
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