Androidアプリで使っているライブラリの依存関係を見える化する
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なんですね。
関連(するかもしれない)記事
おススメ