2010年06月29日
Android2.2(Froyo)のダウンロードとビルド
6/24にAndroid2.2(Froyo)のソースが公開されました。さっそくビルドしてみたので、その方法を簡単に紹介します。
準備
Android2.1がビルドできた環境を用意してください。ここではその説明は省略。
私はx86_64のUbuntu 9.04を使っています。
ダウンロード
froyoのブランチを明示してrepo init します。
$ mkdir android-froyo $ cd android-froyo/ $ repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo $ repo sync
私がやったときには74分かかりました。
2010.7.7追記
androidのソースリポジトリにfroyo-releaseというブランチとandroid-2.2_r1, android-2.2_r1.1というタグができています。
タグとブランチはどちらも repo init の -bオプションで指定できるようです。
これらのブランチの用途は明記されていませんが、おそらくは
froyo = 開発ブランチ
froyo-release = リリースブランチ
のようです。今日の時点ではfroyo-releaseブランチの先頭にandroid-2.2_r1.1のタグが打たれています。
ブランチだとダウンロードしたときによって内容が変わっていくので、おすすめはタグを指定することです。つまり
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b android-2.2_r1.1 $ repo sync
android-2.2_r1 からandroid-2.2_r1.1への変更点についてはこちらに書きました。
ビルドとエミュレータの起動
まずはデフォルトの状態でビルドしてみます。
$ cd android-froyo/ $ . build/envsetup.sh $ lunch (リターン入力) $ make -j4 2>&1 |tee make.log
私の環境では27分くらいかかりました。
ここでビルドしたエミュレータは以下のようにして起動します。
$ emulator -show-kernel & $ adb logcat
DalvikVMのJITを有効にする
デフォルトのビルドでは安定性が重視されているらしく、DalvikVMのJITは有効になっていません。JITを有効にするためには以下の設定で再ビルドします。
export TARGET_ARCH_VARIANT=armv5te-vfp export WITH_JIT=true make clean make -j4 showcommands 2>&1 |tee make.log
showcommandsはビルド時に実行したコマンドをダンプするためのまじないです。(Linuxカーネルのビルド時の V=1 と同様。)
これでmake.log を見て意図したとおりにビルドされたか確認します。
この他にもTARGET_ARCH_VARIANT=armv7-a-neonなどを試したのですが、emulatorだとSEGVで落ちます。(emulator では-kernel prebuilt/android-arm/kernel/kernel-qemu-armv7 でv7用のカーネルを指定する)
実機では動くのでqemuの問題のようです。
V8 JavaScriptエンジンを有効にする
export JS_ENGINE=v8
を追加してビルドすればJavaScriptエンジンにV8が使われるようになりますが、emulatorだとけっこう不安定のようです。V8 BenchmarkもSun spiderも落ちてしまいます。
デフォルトではRAMサイズは96MBです。これを増やすには-memoryオプションが便利です。
RAMサイズ256MBで起動する場合は
$ emulator -show-kernel -memory 256 & $ adb logcat