2012-07-26 70 views
1

为了更好地阐明我的通用问题:了解Android模拟器:测试图像?网络连接依赖关系?

根据Google文档,我已经通过运行完整的“make full-eng”版本来获得Android模拟器的工作。不过,我想调试它,所以一旦我跑了仿真器,以及名为“$亚行外壳dmesg的”和路由,要输出的文本文件,我发现一对夫妇的怪行:

... 
<4>goldfish_new_pdev goldfish_interrupt_controller at ff000000 irq -1 
<4>goldfish_new_pdev goldfish_device_bus at ff001000 irq 1 
<4>goldfish_new_pdev goldfish_timer at ff003000 irq 3 
<4>goldfish_new_pdev goldfish_rtc at ff01000 

所以,当你运行Android完整版本,它会为您提供Goldfish作为系统映像?我想知道它是否正在测试Galaxy Nexus所需的东西。内核是Galaxy Nexus的一个修改后的maguro内核(omap项目),我将其放入构建树中。但我想要测试的平台是IceCreamSandwich。模拟器是否测试这个平台? (b/c这个日志中的输出让我相信它不是)还是模拟器测试一个“通用”图像?

此外,一个重要的另一个问题:我修改内核的“socket.h中”文件,重写一个未定义协议(FINS)的INET协议。理论上讲,手机应该启动,但没有互联网接入。手机模拟器是否关心你对互联网协议做了什么?它是否使用您的主机的网络功能?

一个进一步的跟进:在传统的基础网络堆栈的互联网协议取决于什么样的过程/系统服务/事件(即参与引导到稳定状态)的手机? (协议被定义为设置网络套接字)

+0

可能属于SO。 – 2012-07-27 03:17:05

+1

此网站为Android设备的普通用户_primarily_。虽然我们有几个“高级”用户,黑客和rooters,但您的问题可能太专业化,无法在此处获得好的答案。 (虽然我认为这是话题。)你可能需要在别处寻求你的答案;如果您找到了解决方案,请回答并回答您自己的问题(并接受答案),以便将来的读者能够受益。 – ale 2012-07-31 13:54:50

+0

我同意。尽管在这个学习过程中的某些点上,几乎没有可用的开发者工具(低级的),但我只是想知道是否所有人都知道能够让我朝正确的方向发展。我会用我发现的问题回答这个问题。 – 9exceptionThrower9 2012-07-31 17:08:41

回答

1

当时我写了这个问题,我不明白一些事情,并认为我已经在“内核级”上了解了仿真器的一些细节。首先,仿真器测试“通用”手机品牌的“金鱼内核”(Linux版本2.6.29,采用ARM架构)。这几乎就好像模拟器本身就是一种手机类型,并且你不能混合这些图像内核。例如,我尝试用金鱼内核构建Nexus S crespo手机图像(换句话说,没有crespo内核),手机只是在Google splash屏幕上“挂起”(至少不是引导循环)。

我的研究(FINS)曾在这个仿真器,但在任何支持的实际硬件的三个平台没有工作:歌Nexus S,Galaxy Nexus和摩托罗拉XOOM。我不知道为什么,因为谷歌似乎没有给用户调试的最低级别的电话(我敢肯定,实际开发人员使用这种工具来建设这些电话/测试它们)的能力。这导致了一个主要问题,它回答了我最后的后续工作:Android调试桥取决于INET协议。我的模拟器启动成功并按需运行(没有互联网,没有INET的B/C),但是这些实际的电话没有。我的假设是:如果INET被一个空协议覆盖(在这种情况下,这将是FINS,它打算在用户空间级别处理INET,但这对于电话系统来说似乎太晚了以至于不能满足),ADB守护进程(可能被分类为系统服务类型)无法正常工作/连接,因此Android硬件将崩溃。我相信仿真器比真实手机更灵活,因为硬件可能是虚拟的,并且没有像物理硬件那样的限制。

您可以咨询我的wiki /文档,我的更多细节,我的各种尝试Android手机启动过程中的斗争(我的研究团队的大网站的一部分):http://finsframework.org/mediawiki/index.php/Alexander_G._Ororbia_II

一旦有人计算出如何获得来自Nexus S,Galaxy Nexus或摩托罗拉Xoom的工作启动日志,这些日志会陷入“启动循环”(无需ADB),请让我知道,因为我将在一段时间后处理此问题(我会更新我的其他Stack Overflow-Android问题以反映这种更正)。任何更正我的理解也将不胜感激。

注意:这个答案是可编辑的,因为我仍然认为有一些方法可以让手机在没有ADB守护进程的情况下在主机上生成启动日志。