Android Studio 2あたりでビルド遅すぎ問題

珍しく仕事ネタ。

詳細は省くけど、Android Studioでアプリをビルド(gradle)したら8分とかかかって遅すぎ(速い時でも1分以上)。

メモリもjava.exeとstudio.exeで各1Gぐらい消費してる。おかげで他のアプリも重い。激重。

ぐぐってみたけど「JVMのmaxを増やせ」みたいな記述しかなくて、PCのメモリが4Gしかないし増設できないんだよー!!って心の叫びを抑えて我慢してたけど、全く別方面のアプローチから解決したので書いておく。


解決した経緯

  • Google Play Serviceを追加したらメソッド数が64K超えてしまったのでとりあえず安易にmultidex化してたけど、これだとInstant Runできないので、暇な時に何とかならないか調べた
    Androidでメソッド数が65536を超えた時の対処方法 - Qiita
  • dex-method-countでメソッド数カウントしてみたら、ほとんどがGoogle Play Serviceの、しかも使ってないライブラリで浪費してた
  • 位置情報(Fused Location)しか使ってなかったので、Google Play services and DEX method limitsを参考に、baseとlocationのみinclude
  • メソッド数が3万ぐらいに減ったので、multidex解除
  • ビルドが超早くなった(22秒ぐらい)

教訓:オールインワン系のライブラリには気をつけろ!

そういえば、昔HSP(Hot Soup Processor)で趣味プログラミングしてた頃(※1)、いろんな機能が入ったライブラリがあったんだけど、dll単体で270KiB近くあってあまり使わなかった記憶が...。

  1. ※1:もう16年ぐらい前、当時はHSP 2.5か2.6ぐらいで、かなり機能に制限があった