自分でシステムイメージを作ってデバイスに焼いたり、エミュレータで使いたい人以外にはニーズないし、本当に正しいやり方かどうかも分からないけど、とりあえずメモ。
1. mydroid/packages/app 以下にアプリのソース一式を置き、Android.mkを作る。
実際は、mydroid/packages/app 以下でなくても mydroid/external の下でもどこでも良いはず。むしろ自作アプリならexternalかまた別のディレクトリが良いかも。
Eclipse+ADTでアプリを作るとAndroid.mkが作られないので、同じくmydroid/packages/appにある他のアプリ(Emailあたり)からAndroid.mkをコピーしてきて、LOCAL_PACKAGE_NAMEを変更すれば最低限はOK。
LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_PACKAGE_NAME := TestApp include $(BUILD_PACKAGE) # additionally, build unit tests in a separate .apk include $(call all-makefiles-under,$(LOCAL_PATH))
2. mydroid/build/target/product/generic.mkを編集
generic.mkを編集するので、targetがgenericの場合しか有効にならなさそうな気がするけど、以下のような感じでPRODUCT_PACKAGESに追加したい自作アプリ名を追記する。
PRODUCT_PACKAGES := \ AlarmClock \ <省略> TestApp
3. make
mydroid全体をビルドし、system.imgなどを作る。
4. エミュレータ起動
とりあえずmakeしてできたイメージからエミュレータを起動してみる。私の場合は以下のようなスクリプトを用意して使ってる。
imagedir=~/mydroid_donut/out/target/product/generic kerneldir=~/mydroid_donut/prebuilt/android-arm/kernel skindir=~/mydroid_donut/development/emulator/skins ./emulator \ -sysdir $imagedir/system \ -ramdisk $imagedir/ramdisk.img \ -kernel $kerneldir/kernel-qemu \ -skindir $skindir \ -skin HVGA \ -system $imagedir/system.img \ -data $imagedir/userdata.img \ -sdcard $imagedir/sdcard.img
こうやって起動したAndroidには、最初から自作アプリがインストール済みの状態(ランチャーメニューに出てくる)になっている。他のtargetでもたぶん方法はほぼ一緒かと。
コメント