背景
Android Studioのビルド時間を少し改善出来たので、メモ書き。
確認環境
- プロジェクト
- Multi-Dexしないとビルド出来ない位のソースコード量
- PC
- Macbook Air
- CPU:Core i5 1.6GHz
- RAM:8GB
- Macbook Air
Gradleについて
DexOptions
仕事だとあまりtoolやpluginのアップデートを積極的に行えなかったりする(のに甘えて)ものでそんなにAndroid Plugin DSL Referenceを見ていなかったのですが、DexOptionsを見たらこんなのが用意されてました。
要するに時間の掛かるdex compileを別プロセスで実行することでgreatな感じにパフォーマンスが良くなる、ってことと理解しました。まだ試験段階ってことらしいですが、今回はこちらを試してみました。
試した設定
dexInProcessを有効にしてあります。ビルドしているとXmx8192mに設定しなさいって怒られたので、gradle.propertiesの設定も合わせて設定してます。
dexOptions {
javaMaxHeapSize "2g"
dexInProcess true
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
}
org.gradle.jvmargs=-Xmx8192m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
試したtask
普段開発してるときに一番使ってるであろうflavorのdebug assembleで試しました。
1回目は少し時間かかるので、何回か実行してみて慣らしが効いた状態での効果を確認しました。
gradlew clean assemble{Flavor}Debug
結果(と所感)
ビルドした結果今まで1分は確実に掛かっていたビルドが40秒程度まで早くなりました。
この辺りはjavaMaxHeapSizeやmaxProcessCountとか、そもそものPCスペックも影響すると思うので、探り探りで環境に合った設定をしてあげる必要がありそうです。