珍しく仕事ネタ。
詳細は省くけど、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:もう16年ぐらい前、当時はHSP 2.5か2.6ぐらいで、かなり機能に制限があった
コメント