将定制Android内核构建与SDK集成

将定制Android内核构建与SDK集成,android,android-2.2-froyo,android-source,Android,Android 2.2 Froyo,Android Source,我正在扩展一个源于2.2的定制Android内核分支 弗罗约内核。构建过程本身没有问题;只需输入“make” 一切都结束了。但我不确定我需要做什么才能使新的 Android SDK中其他工具已知的内核;尤其 模拟器、adb和Eclipse调试器 我尝试过各种方法,比如使用-system和 -命令行上的userdata参数,并且这些参数似乎有效, 尽管我遇到了一些让我不确定的零星问题。常见问题 我看到的是,有时应用程序会“挂起”,显示其用户界面,但 即使单击“主页”或“菜单”按钮,也拒绝离开。我已

我正在扩展一个源于2.2的定制Android内核分支 弗罗约内核。构建过程本身没有问题;只需输入“make” 一切都结束了。但我不确定我需要做什么才能使新的 Android SDK中其他工具已知的内核;尤其 模拟器、adb和Eclipse调试器

我尝试过各种方法,比如使用-system和 -命令行上的userdata参数,并且这些参数似乎有效, 尽管我遇到了一些让我不确定的零星问题。常见问题 我看到的是,有时应用程序会“挂起”,显示其用户界面,但 即使单击“主页”或“菜单”按钮,也拒绝离开。我已经 已尝试关闭缓存。但真正的问题是我不知道 对内核构建应该如何传达给用户有一个良好的心理模型 SDK

我应该将生成结果(.img文件)复制到 ~/.android/也许?或者去世界上的某个地方 SDK文件夹

一份有效的食谱固然不错,但最好是一份 了解内核构建和SDK工具如何协同工作。 例如 很适合烹饪,但我还是不知道adb和emulator是怎么知道的
从何处加载.img文件。

构建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
如您所见,我明确指定了所有图像和所有路径。这是在emulator中运行映像的命令<代码>输出文件夹是在android源根文件夹的构建过程中创建的


p.S.内核通常指Android的Linux内核。就你而言,我认为你已经改变了Android框架。

我根据尤里提供的宝贵线索撰写了一份完整的答案。解决方案是将这些设置添加到my.bashrc。eclipse中的工具(emulator、adb、ddms)使用这些设置从ANDROID_TARGET_中获取内容,而不是从SDK中的预构建副本获取内容。缓存内容是标准建议

# 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复制到内核发行版的根目录中,并将其“导入现有文件”到Eclipse中。所有Java组件现在都应该在PackageExplorer中正确打开和构建。非常方便探索,但别忘了你必须使用普通的make来构建真正的东西


/Volumes/DroidImg是我为MAC-OS工作制作的一个保留大小写的磁盘映像;更改路径的这一部分以适应。

是的,我使用的fork包括linux内核和他们称为“中间件”的java位。说到内核,我指的是组合,但我仍然不知道eclipse和AVD builder等工具是如何选择和使用新的仿真器(来自cmd行)的。我是否需要在那里配置一些东西,或者eclipse是否关注环境。我似乎记得,从终端运行eclipse时会发现这一点,但运行eclipse.app时不会。顺便说一下,这些都是在MacOSX上完成的。要构建这些工具,您必须运行makeSDK命令。但我不知道如何将它们与eclipse连接起来。您可以将它们与eclipse分开运行。