2012-02-18 18 views
0

私は、2.2 Froyoカーネルとして作成されたカスタムAndroidカーネルフォークを拡張しています。ビルドプロセス自体は問題ありません。単に "make"と入力してください。 と入力してください。しかし、新しい カーネルをAndroid SDKの他のツールに知らせるために何をする必要があるのか​​分かりません。特に エミュレータ、adb、およびEclipseデバッガです。カスタムのAndroidカーネルビルドとSDKの統合

私は、このような会とコマンドライン上 -userdata引数でエミュレータを実行しているなど、さまざまなものを試してみた、これらは私がわからない私を残し散発性の問題を打つものの、 を動作するように思われます。一般的な問題 私は、ホームやメニューボタンがクリックされても、UIが表示されているのに、アプリケーションが「ハング」して、 が去ってしまうことを拒否していることがわかりました。私は キャッシングをオフにしようとしました。しかし実際のところここでの問題は、私が カーネルビルドをどのようにしてSDKの に伝えるべきかという良い精神モデルを持っていないことです。

ビルド結果(.imgファイル)を 〜/ .android /にコピーする必要がありますか?または SDKフォルダのどこかにありますか?

作業レシピはいいかもしれませんが、カーネルビルドとSDKツールがどのように連携しているかについては、 の理解を深める方がよいでしょう。 たとえば、http://source.android.com/source/using-eclipse.htmlは レシピには最適ですが、adbとエミュレータがどのようにして.imgファイルをロードするかを知る方法はまだわかりません。

答えて

1

アンドロイドイメージを作成したら、emulatorコマンドでアンドロイドウェブページを実行することをおすすめします。しかし、あなたはアンドロイドenvsetupコマンドが以前にいくつかのパスを指定していたので、この方法でビルドされたイメージを実行することができます。

out/host/linux-x86/bin/emulator -sysdir out/target/product/generic/ -system out/target/product/generic/system.img -ramdisk out/target/product/generic/ramdisk.img -data out/target/product/generic/userdata.img -kernel prebuilt/android-arm/kernel/kernel-qemu -sdcard sdcard.img -skindir sdk/emulator/skins -skin WVGA800 -scale 0.7 -memory 512 -partition-size 1024 

だから、あなたが見ることができるように私は、すべての画像およびすべてのパスを明示的に指定します。たとえば、私はコマンドを実行し、私の建てた画像をテストします。エミュレータでイメージを実行するコマンドです。 Outフォルダは、Androidソースルートフォルダのビルド中に作成されます。

P.S.カーネルは、通常、AndroidのLinuxカーネルを指します。あなたの場合は、Androidのフレームワークを変更したと思います。

+0

はい、使用しているフォークには、ミドルウェアと呼ばれるLinuxカーネルとJavaビットが含まれています。カーネルによって、私はその組み合わせを意味しました。 – Bradjcox

+0

しかし、私はまだ(あなたのcmdラインからの)新しいエミュレータが、EclipseとAVDビルダーのようなツールでどのように使用されて使用されるのか分かりません。そこに何かを設定する必要がありますか、環境に注意を払っていますか?私は端末からeclipseを実行していることを思い出しているようだが、Eclipse.appは実行していない。これはすべてMac OSX上のものです。 – Bradjcox

+0

ツールをビルドするには、make sdkコマンドを実行する必要があります。しかし、私は知らない日食とそれらを接続する方法。 Eclipseとは別に実行できます。 – Yury

0

私はYuryが提供した貴重な手掛かりに基づいて完全な回答を作成しました。解決策は、これらの設定を私の.bashrcに追加することでした。 eclipseのツール(エミュレータ、adb、ddms)は、これらの設定を使用して、SDK内の事前に作成されたコピーから取得するのではなく、ANDROID_TARGET_OUTから取得します。 CACHEのものが標準の推奨事項です。

# Android SDK Build settings 
export ANDROID_HOME="/Volumes/DroidImg/android-sdk-macosx" 
export ANDROID_SDK_ROOT="$ANDROID_HOME" 
export ANDROID_SDK_BASE="$ANDROID_HOME" 
export ANDROID_SDK_HOME="$ANDROID_HOME" 
export ANDROID_TARGET_OUT="/Volumes/DroidImg/Droid-Kernel/out/target/product/generic" 
export USE_CCACHE=1 
export CCACHE_DIR="/Volumes/DroidImg/CCACHE_DIR" 
ulimit -S -n 1024 

最後に、Eclipseにカーネル分布のルートにウィキに文書化、および「インポート既存のファイル」としてSDKで提供さ.classpathをコピーします。すべてのJavaコンポーネントがパッケージエクスプローラで正しく開いてビルドされるはずです。探検のために非常に便利ですが、あなたは本当のためにこのものを構築するために普通のmakeを使用しなければならないことを忘れないでください。

/Volumes/DroidImgは、MAC-OS作業用に作成したケース保存ディスクイメージです。パスのこの部分をスーツに変更します。

関連する問題