2012-02-18 72 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工作制作的一个保存案例的磁盘映像;改变这部分路径以适应。