サルでもできるAndroidビルドその2(ツール整備)

え〜、現時点ではGooleアプリケーションが片っ端から使えないcupcake以降のAndroidを敢えてメインで使う人がいるかどうかは別にして、次のAndroidにどんな機能が実装されるのか、興味津々という方はたくさんいらっしゃると思います。特に「敢えて」G1を購入された『人柱スピリッツ』に溢れたチャレンジャーな方々なら、なおさらのことと思います。でも、そんな層はとってもスキマな存在・・・orz
という訳で、非常にニッチ層をターゲットしていることには、あえて目を瞑り、気を取り直して次に進みたいと思います。すぐ立ち直れるタフな精神力は、テストコードが入ったり削られたりを繰り返すmasterビルドと付き合う上で必須ですw
前回のエントリで、Ubuntu 8.04LTSの仮想マシンを起動して一通りの初期設定を済ませていることを前提に話を進めます。仮想マシンUbuntuを起動しログインすると、WindowsMacOSを足して2で割って、ちょっと微妙なテイストを加味したようなデスクトップが現れます。ここで画面上部のバーから、アプリケーション→端末と選択して、ターミナルを起動します。ここから主な作業はターミナル上で行います。
UbuntuLinuxベースですので、ユーザーのホームディレクトリ(~/)を中心に作業を行うことになります。ビルド環境の構築については、Android open source projectに有益な情報があります。間違いも多いのですが、ここがコアの情報源となります。
open source projectのGet sourceを参考に、必要なツールをインストールしていきましょう。Ubuntu Linux (i386)の部分を読んでいきます。ここでインストールするのはGit/JDK/細かなツール郡となっています。ターミナル上でsudo(root権限で任意のコマンドを実行させるコマンド)越しに、以下の要領でインストールしていきます。先頭の「$」はユーザーモードのプロンプトなので、入力不要です。

$ sudo apt-get install git-core gnupg
$ sudo apt-get install sun-java6-jdk
$ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
$ sudo apt-get install valgrind

次に、Installing Repoの記述に従い、Repo(リポジトリ同期ツール)をインストールします。

$ mkdir ~/bin
$ curl http://android.git.kernel.org/repo > ~/bin/repo
$ chmod +x ~/bin/repo

パスを通すためにテキストエディタで、~/.bashrcを開いて、最後に

export PATH=~/bin:$PATH

を加えて、一度ターミナルを閉じて、開きなおしましょう。開きなおしたターミナルでは、repoコマンドをディレクトリ指定なしで使えるようになっています。後述するリポジトリ初期化時にいちいちユーザー名やメールアドレスを入れないで済むようにgitにデフォルト値を設定してしまいましょう。下記の要領です。

$ git config --global user.email "foo@gmail.com"
$ git config --global user.name "foo bar"

これで、リポジトリを初期化する下準備が整いました。さっそく作業ディレクトリを掘って、リポジトリを初期化しましょう。リポジトリは作業ディレクトリの.repoに作られますので、lsコマンドでは-aオプションをつけないとリストアップされません。見失ったときは、ls -aで探しましょうw

$ mkdir ~/mydroid
$ cd ~/mydroid
$ repo init -u git://android.git.kernel.org/platform/manifest.git

以上の設定が、最新のmasterをとってくる設定になります。cupcakeブランチが欲しい場合は3行目を以下のようにします・・・が他にも色々修正が必要になるので、忘れてくださいw

$ repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake

ls -aとすると、.repoディレクトリが作られてリポジトリが生成されていることが分かります。失敗したときには、

$ cd
$ rm -rf mydroid
$ mkdir mydroid

として、やり直しちゃいましょう。まだリポジトリの修正が必要なのですが、今日はここまでw