2012-02-18 21 views
0

我正在擴展一個定製的內核分支,它起源於Froyo內核的2.2 。構建過程本身沒有問題;只需輸入「make」 並完成。但我不確定我需要做什麼才能使Android SDK中的其他工具知道新的內核 ;尤其是 模擬器,adb和Eclipse調試器。將定製的Android內核版本與SDK集成

我試過各種東西,比如在系統上運行模擬器和在命令行上運行-userdata參數,這些似乎是可行的,儘管我遇到了讓我不確定的虛假問題。一個常見問題 我看到有時應用程序「掛起」,顯示他們的用戶界面,但 即使點擊主頁或菜單按鈕時也拒絕離開。我嘗試關閉緩存,嘗試 。但是真正的問題在於,我不知道內核構建應該如何傳遞給SDK的 。

我應該複製生成結果(.IMG文件) 〜/ .android /也許?或者在 SDK文件夾中的某個地方?

的工作配方將是很好的,但更好的是內核的構建和SDK工具如何工作在一起的 理解。 例如http://source.android.com/source/using-eclipse.html是 偉大的食譜,但我仍然沒有看到如何亞行和模擬器知道 從哪裏加載.IMG文件。

回答

1

當你創建的Android圖片Android的網頁建議與emulator命令運行它。但是你可以用這種方式運行內置映像,因爲android 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 2012-02-18 23:06:26

+0

但是我仍然沒有看到新的模擬器(從你的cmd行)如何被eclipse和類似AVD構建器的工具所使用。我需要在那裏配置什麼,或者eclipse是否注意環境。我似乎記得從終端運行eclipse選擇了這個,但運行Eclipse.app不。順便說一句,這在Mac OSX上是全部的。 – Bradjcox 2012-02-18 23:09:11

+0

要構建必須運行make sdk命令的工具。但如何將它們與eclipse連接,我不知道。你可以從eclipse單獨運行它們。 – Yury 2012-02-18 23:14:03

0

我已經根據Yury提供的寶貴線索編寫了完整的答案。解決方案是將這些設置添加到我的.bashrc。 eclipse中的工具(模擬器,adb,ddms)使用這些設置從ANDROID_TARGET_OUT中獲取內容,而不是從SDK中的預構建副本中獲取它們。 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 

最後,複製隨SDK提供的的.classpath wiki上到內核中分佈的根目錄下文件,以及「導入現有文件」到Eclipse中。現在所有的Java組件都應該在包資源管理器中正確打開和構建。非常方便探索,但不要忘記,你必須使用普通的製作來構建這個真實的東西。

/Volumes/DroidImg是我爲MAC-OS工作制作的一個保存案例的磁盤映像;改變這部分路徑以適應。