最近なにかとAndroidアプリを作る機会があるのだが、その最中にある出来事の一つとして、"ググっても解決方法が分からない"というのがある。クラス名、メソッド名でググってもリファレンスしか検索結果に表示されないなど。特にマイナーなAndroid Frameworkのクラスを使おうとしている時がそう。イライラが頂点に達する瞬間でもある。
あと、Android フレームワークの使い方を調べるときは、大抵Android developersのリファレンスマニュアルを見ているのだが、"説明がまったくないメソッドに出くわし"たり、"マニュアル通りに設定しているのに、その通り設定されなかった"という出来事もあったりする。
そんな時はAndroid フレームワークのソースコードを読んで解決している。先の"マニュアル通りに設定して動かなかった"原因は、設定したパラメータが実はAndroidフレームワークの中で利用されてなかったというのが原因だった。
そんな時は、Androidのソースコードを読んで解決している。オープンソース万歳。
Androidのソースコードはよく整頓されているし、コメントも(英語だけど)豊富だし、ソースも(私が書いたものよりは)綺麗なので、コツさえ掴めば読むのはそんなに難しくないはず。JavaとC++の知識は要求されるのは仕方ないとしても、ソース読むだけならそんなに難しくないはず、たぶん。
って事で、Androidのソースコードを読めるようになって、問題解決能力をUPしよう、というのがこのエントリーの趣旨。
ソースコードをダウンロード
ってことで、何より先にAndroidのソースコードをダウンロードしなくちゃいけない。通常であれば、repoというgitをラッピングしたAndroid特有のツールを使ってダウンロードするのだが、今回はGithubのOESFのアカウントからダウンロードする。
というのは、メリットとして、
- gitをインストールするだけで準備OK
- ダウンロードが早い
という理由から。Androidプロジェクトの本家からダウンロードしようとすると、repoの設定が必要になってメンドいし。
今回は読むだけなので、先のOFSFのアカウントからダウンロードする方法で問題ない。本家と基本同じものなんだし。
って事で、今回はWindows版をメインに進めていく。
gitをインストール
Windows版gitのインストールは、以下のサイトで説明されているのでここでは割愛する。Androidアプリを作っている方なら特に戸惑う事なくインストールできる。
Androidのソースコードをダウンロード
git consoleを起動して [bash] % git clone http://github.com/OESF/OHA-Android-2.2_r1.1.git [/bash]
これでダウンロード開始。 OHA-Android-2.2_r1.1というフォルダが作成され、そこにダウンロードされる。ちなみに約3GBのソースコードなので、それなりの時間とHDD空き容量が必要。e-mobileからは結構大変かも。
ちなみに、このソースコードはAndroid2.2(Froyo)のものとなる。
ソースコードの構成
では早速ソースコードを覗いていく。
全体をある程度把握しておくと、後々から理解の速度が上っていくのでまずはTOPから紹介していく。
ダウンロード直後のソースコードはこんな感じ。ここにはLinuxカーネルが含まれてないけど今回は無視する(そのうち紹介するかも?)
フォルダ名 | 概要 |
---|---|
bionic | glibc互換ライブラリ |
bootable | ブート関連 |
build | ビルドツール |
cts | 互換性確認ツール |
dalvik | 仮想マシン(DalvikVM) |
development | 開発ツール(エミュレータとか) |
device | デバイス関連ファイル |
external | 外部で開発されたソフトなど |
frameworks | Android フレームワーク |
hardware | ハードウェア制御ライブラリ |
ndk | Native Development Kit |
packages | 標準インストールアプリ |
prebuilt | ビルドツール(ビルド済) |
sdk | Android SDK |
system | デバイスドライバのソース |
数に圧倒されるかもしれないが、Androidアプリケーション開発者が見るべき、知っておくべきソースコードはそんなに多くない。
さて、そのフォルダはどこか? それは次回に。
![]() | Android Hacks ―プロが教えるテクニック & ツール 株式会社ブリリアントサービス オライリージャパン 2010-09-04 売り上げランキング : 521 Amazonで詳しく見る by G-Tools |