根据Android documentation,可以使用系留设备上的配套应用在模拟器中测试多点触控操作。但是,文档非常吝啬...我希望有人可以在这里填空。
文档还说"再次使用端口转发。这次港口是1969年的#34; 我该怎么办?
是否有任何其他设置或技巧(文档未讨论)需要让应用与模拟器通信?
答案 0 :(得分:3)
该文件有点过时了。例如,现在转发的端口应该是1970年,而且只有这一个。
如果您安装位于$SDK/tools/apps/SdkController/
的SDK Controller应用,则可以在该应用中看到正确的说明。
要启用多点触控支持,您需要在-screen multi-touch
参数中添加emulator
。
只需要转发1970年。在您的计算机上运行adb forward tcp:1970 localabstract:android.sdk.controller
。
是的!如果您使用64位模拟器来运行图像,您会发现它不起作用:(似乎模拟器中存在由对齐引起的错误。https://code.google.com/p/android/issues/detail?id=29735
要解决此问题,您可以使用32位模拟器或自行修复。
答案 1 :(得分:1)
正确添加上面的帖子,你需要运行:
$ adb forward tcp:1970 localabstract:android.sdk.controller
(最新版本包括多点触控和传感器仿真)
还有人建议可以使用以下方法修复32位错误:
在 sdk-controller-socket.c 源文件中。
可以通过以下任一方法解决64位版本的问题:
__attribute__((packed))
添加到SDKCtlMessage struct
,或memcpy(msg + 1, data, size);
替换为memcpy(&(msg->msg_type) + 1, data, size);
我还没有亲自尝试过,但很想知道它是否有效以及 SDKController 应用程序的全部工作因为我还没有设法超越& #34;等待连接"。尽管它确实显示了" Emulator Connected"当模拟器加载但在此之后停止,如果我回去,即使我没有,也没有传感器或多点触控通过。