一角獣は夜に啼く

ただの日記です。

思ってることとか考えたこととか適当に書きます。 主にソフトウェア開発の話題を扱う 「ひだまりソケットは壊れない」 というブログもやってます。

Support library のソースコードを Android Studio 上で読む方法

v7 recyclerview library などのソースコードを読みたかったけどどこにあるかわからなくて困ってたら同僚に 「Android SDK の中に入ってましたよー」 って教えてもらった。

前提として、Android Studio で Support library を使う場合は、SDK Manager で Extras の Android Support Repository をインストールして、build.gradle の dependencies に依存を書くことになる。 Android Support Repository をインストールすると、ファイルシステム上の Maven リポジトリとして <SDK Directory>/extras/android/m2repository/ ディレクトリが作成され、その中に各種サポートライブラリの AAR パッケージやソースコードを固めた JAR、Javadoc の JAR ファイルなどが配置される。

ソースコードを固めた JAR ファイルを Android Studio に認識させれば Android Studio 上でソースコードを読めるようになる。

環境

本エントリでは次の環境を前提としている。

方法

Android Studio 上の、例えば CardView というクラス名の上で Ctrl + B を押すと CardView の定義ファイルに移動するが、ソースコードを認識させていない場合は下記のようにクラスファイルが開く。

f:id:nobuoka:20141022135914p:plain

上の方に 「Attach Sources...」 とあるので、それをクリックしてソースコードSDK のディレクトリの中にあるソースコードが固められた JAR ファイルを選択する。

f:id:nobuoka:20141022135917p:plain

そうすると次のようにソースコードが表示されるようになる。

f:id:nobuoka:20141022135920p:plain

感想

ちまちま設定するの面倒だけど、とりあえずこの方法でソースコードを読めるようになる。

Android Studio (というか IntelliJ IDEA) が Maven リポジトリから依存ライブラリを落としてくるときに自動的にソースコードも取ってくるように設定できると思うんだけど、どうやるのかわからなかった。 Gradle の idea プラグインにそういう機能があるけど、それを使ってもソースコード取ってきてくれなかった (既存のプロジェクトの build.gradle に idea プラグインを追記して試しただけなので、方法がおかしいのかも)。

関連ページ