繁体   English   中英

Android模拟器多点触控

[英]Android emulator multi-touch

根据Android文档 ,可以使用绑定设备上的配套应用在模拟器中测试多点触摸动作。 但是,文档简直是轻率的...我希望有人可以在此处填写空白。

  1. 该文档说:“在创建AVD时,请确保添加硬件属性多点触摸屏支持,并将其设置为true。” 如何“添加硬件属性多点触摸屏支持”? 我在AVD编辑器中看不到任何此类选项:

AVD编辑器

  1. 文档还说“再次使用端口转发。这次的端口是1969”。 我该怎么办?

  2. 是否需要其他任何设置或技巧来使应用程序与仿真器对话,而文档没有讨论这些设置或技巧?

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

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

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

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

  3. 是! 如果您使用64位仿真器运行图像,则会发现它不起作用:(似乎是由于对齐导致的仿真器错误。https://code.google.com/p/android/issues/细节?ID = 29735

    要变通解决此问题,您可以使用32位仿真器,也可以自己修复。

正确添加以上您需要运行的帖子:

$ 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);

我还没有亲自尝试过,但是很想知道它是否可以工作,并且SDKController应用程序的全部工作都可以使我无法通过“等待连接”。 尽管在加载模拟器时它确实显示“ Emulator Connected”,但在此之后立即停止,即使我没有返回,也没有传感器或多点触摸通过。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM