Android模拟器多点触控

时间:2015-05-04 23:30:41

标签: android

根据Android documentation,可以使用系留设备上的配套应用在模拟器中测试多点触控操作。但是,文档非常吝啬...我希望有人可以在这里填空。

  1. 文档说明"创建AVD时,请务必添加硬件属性Multi-touch screen support,并将其设置为true。" 如何添加硬件属性多点触控屏支持"?我在AVD编辑器中看不到任何此类选项:
  2. AVD Editor

    1. 文档还说"再次使用端口转发。这次港口是1969年的#34; 我该怎么办?

    2. 是否有任何其他设置或技巧(文档未讨论)需要让应用与模拟器通信?

2 个答案:

答案 0 :(得分:3)

该文件有点过时了。例如,现在转发的端口应该是1970年,而且只有这一个。

如果您安装位于$SDK/tools/apps/SdkController/的SDK Controller应用,则可以在该应用中看到正确的说明。

  1. 要启用多点触控支持,您需要在-screen multi-touch参数中添加emulator

  2. 只需要转发1970年。在您的计算机上运行adb forward tcp:1970 localabstract:android.sdk.controller

  3. 是的!如果您使用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位版本的问题:

  1. 在第279行,将__attribute__((packed))添加到SDKCtlMessage struct,或
  2. 在第922行,将memcpy(msg + 1, data, size);替换为memcpy(&(msg->msg_type) + 1, data, size);
  3. 我还没有亲自尝试过,但很想知道它是否有效以及 SDKController 应用程序的全部工作因为我还没有设法超越& #34;等待连接"。尽管它确实显示了" Emulator Connected"当模拟器加载但在此之后停止,如果我回去,即使我没有,也没有传感器或多点触控通过。