Happy My Life

日常とか技術とか

Androidアプリ開発者のためのAndroidソースコードリーディング入門

最近なにかとAndroidアプリを作る機会があるのだが、その最中にある出来事の一つとして、"ググっても解決方法が分からない"というのがある。クラス名、メソッド名でググってもリファレンスしか検索結果に表示されないなど。特にマイナーなAndroid Frameworkのクラスを使おうとしている時がそう。イライラが頂点に達する瞬間でもある。

あと、Android フレームワークの使い方を調べるときは、大抵Android developersのリファレンスマニュアルを見ているのだが、"説明がまったくないメソッドに出くわし"たり、"マニュアル通りに設定しているのに、その通り設定されなかった"という出来事もあったりする。

そんな時はAndroid フレームワークソースコードを読んで解決している。先の"マニュアル通りに設定して動かなかった"原因は、設定したパラメータが実はAndroidフレームワークの中で利用されてなかったというのが原因だった。

そんな時は、Androidソースコードを読んで解決している。オープンソース万歳。

Androidソースコードはよく整頓されているし、コメントも(英語だけど)豊富だし、ソースも(私が書いたものよりは)綺麗なので、コツさえ掴めば読むのはそんなに難しくないはず。JavaC++の知識は要求されるのは仕方ないとしても、ソース読むだけならそんなに難しくないはず、たぶん。

って事で、Androidソースコードを読めるようになって、問題解決能力をUPしよう、というのがこのエントリーの趣旨。

ソースコードをダウンロード

ってことで、何より先にAndroidソースコードをダウンロードしなくちゃいけない。通常であれば、repoというgitをラッピングしたAndroid特有のツールを使ってダウンロードするのだが、今回はGithubOESFのアカウントからダウンロードする。

というのは、メリットとして、

  • 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 ―プロが教えるテクニック & ツールAndroid Hacks ―プロが教えるテクニック & ツール
株式会社ブリリアントサービス

オライリージャパン 2010-09-04
売り上げランキング : 521

Amazonで詳しく見る
by G-Tools