Andoidアプリの開発をやっていると、SDKのソースコードを見たくなるときがあります。幸いなことに、AndridのSDKのソースコードも公開されているので、ネットの情報を参考に早速見れるように設定してみました。自分の備忘録代わりに手順をまとめておきます。
OS:Ubuntu 9.04 Desktop 日本語Remix版 (32bit)
Eclipse:3.5 Galileo Java Developer
1 gitのインストール
手元の環境にgitがインストールされていなかったので、gitをインストールしておきます。
sudo apt-get install git
なお、AndroidのソースコードはAndroid Open Source Project から入手できるのですが、ここの説明ではrepoというツールを使うように書いています。
ネット上のやり方を調べてみると、repoを使う、という記述が見当たらなかったので、説明を読んでみるとどうもこれはSDKをコンパイルしたり、コミットしたりする際に使うツールのようです。
ということで、今回はソースコードを見るだけなので、repoはインストールしませんでした。
2 リポジトリのクローン
SDKのソースコード一式を保存するディレクトリを作成します。ここでは、~/work/android/mydroid に保存しておくことにします。
cd ~/work/android
mkdir mydroid
cd mydroid
gitのリポジトリを複製します
git clone git://android.git.kernel.org/platform/frameworks/base.git
このままでもよいのですが、落としてきた時点では最新のソースコードに対応しているので、古いSDKのバージョンでソースコードを追いかけるには不都合があります。
そこで、利用したいSDKのバージョンに合わせたタグに変更します(ここでは、Android SDK 1.6 Release2にしています)。
git checkout android-sdk-1.6_r2
なお、タグ名は、
git tag -l
や、Android Open Source Projectで調べるとわかります。
または、ブランチを作成するのであれば、
git checkout -b android-sdk-1.6_r2
としてもOKです。なお、git checkout を行うと、作業ディレクトリの内容もそのタグに合わせた内容に変更されるはずです。
gitの操作そのものについてはここでは触れませんので、別途調べてください(概要だけなら簡単だと思います)。
3 シンボリックリンクの作成
このwebサイトの説明によると、android.jarファイルと同じディレクトリにsourcesディレクトリを作成し、その配下にソースコードをコピーすれば、Eclipseから見れるようになるようです。手元の環境では、androidのバージョン毎にディレクトリが分かれていて、その中にandroid.jarファイルがあります。
例えば、Android1.6の場合(android-4)だと、
cd (SDKのディレクトリ)/platforms/android-4
ln -s ~/work/android/mydroid/base/core/java ./sources
となります。なお、上記では、コピーではなくシンボリックリンクを使いましたが、どちらでもよさそうです(Windowsの場合は、ファイルをコピーになると思います)。
もし、他のバージョンのSDKを使う場合は、同様にリンクをはれば(ファイルをコピーすれば)よいと思います。
なお、余談ですが、ディレクトリ名の sources は綴りの最後に『s』が必要ですので、ご注意してください(最初つけ忘れて戸惑いました)。
さらに、core配下にないソースコードの場合も、同様にコピーすれば見ることができるようになります。例えば、上記だけでは、BitmapFactory.javaは見えません。ソースを探してみると、mydroid/base/graphics/java/graphics 配下にあることがわかります。したがって、
cd ~/work/android/mydroid/base/core/java/android
ln -s ../../../graphics/java/android/* .
としてリンクをはって(またはファイルをコピーして)やり、Eclipseを再起動すれば、ソースを見ることが出きるようになりました。他のソースも同様だと思います。
4 確認
うまくSDKのソースがみれるか確認してみます。Eclipseを立ち上げ、適当なAndroid Project(android 1.6のもの)を開いて、Activityを見ると、
のように、ソースコードを見ることができました。また、デバッガでコードを追いかけることも可能でした(もちろんブレークポイントは設定できません)。
これでかなり便利になりそうです。
参考にしたサイト
Browsing Android Source in Eclipse :3でも触れたサイトです。
EclipseからAndroid SDK Frameworkのソースコードを辿る(閲覧する)
EclipseからAndroidのソースを見るには :Windowsでの作業例をあげています
EclipseでAndroidのフレームワークのコードを読む方法 :ファイルをコピーするのではない別のやり方を紹介しています
Android Open Source Project のGitWeb :ここを見るとgitで落としてきた時のリポジトリのURLに関する情報が多少わかります
改訂履歴
2010/9/25:ローカルのgitリポジトリのタグを変更する操作を追加しました
2011/3/28:git checkout -b についての説明を追加しました