Androidアプリで使っているライブラリの依存関係を見える化する

2019/02/02

Androidアプリを開発していてライブラリの依存関係を調べたくなったときは gradlew app:dependenciesを使うのが一般的です。詳しくは「Androidアプリで使っているライブラリの依存関係を調べる」にまとめてあります。

このやり方、準備不要で手軽なんですが、アウトプットが大量なので確認するの結構大変なんですよね。

もう少し直観的に調べる方法はないかな、と思っていたら、gradle-dependency-graph-generator-pluginという、依存関係をグラフにして画像化してくれるプラグインを見つけました。

公式サイトにある通り、bulid.gradleにプラグインの設定を追加します。

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath "com.vanniktech:gradle-dependency-graph-generator-plugin:0.5.0"
  }
}

apply plugin: "com.vanniktech.dependency.graph.generator"

あとはgradleでgenerateDependencyGraphタスクを実行すればOK。

自分の環境だとapp\build\reports\dependency-graphに以下の3ファイルが出力されました。

  • dependency-graph.dot
  • dependency-graph.png
  • dependency-graph.svg

拡張子dotで分かるようにグラフ描画エンジンにはGraphvizを使っているんですね。結果確認はpngだけ見れば十分です。


以下余談。古いバージョンは別途Graphvizをインストールする必要があったんですが、最新版(Ver0.5.0)ではインストールされていなくても動きます。

なぜかと言うと、graphviz-javaというライブラリを使うようになっているから。

graphviz-javaは

  • Graphvizがインストールされていたらそのまま使う
  • Graphvizがインストールされていなかったらviz.jsというGraphvizのJavaScript実装を使う
  • JavaScriptはV8エンジン or Nashornを使って動かす

と、力業感あふれるライブラリです。これを使っているのでGraphvizがなくてもOKなんですね。




関連(するかもしれない)記事


おススメ