2015-05-04 56 views
2

根據Android documentation,可以使用連線設備上的伴隨應用程序在模擬器中測試多點觸控操作。但是,這些文檔相當薄弱......我希望有人能填補這裏的空白。Android模擬器多點觸控

  1. 該文檔說「創建AVD時,請確保添加硬件屬性多點觸摸屏支持,並將其設置爲true」。 如何「添加硬件屬性多點觸摸屏支持」?我沒有看到在AVD編輯任何這樣的選擇:

AVD Editor

  • 該文檔還表示,「端口轉發再次被使用這一次的端口。是1969年「。 我該怎麼做?

  • 是否有任何其他設置或技巧,未由文檔討論,需要讓應用程序與模擬器交談?

  • 回答

    3

    該文件有點過時。例如,現在轉發的端口應該是1970年,只有這個。

    如果您安裝位於$SDK/tools/apps/SdkController/的SDK控制器應用程序,則可以在該應用程序中看到正確的指令。

    1. 爲了能夠支持多點觸控,你需要在emulator的參數添加-screen multi-touch

    2. 只有1970年需要轉發。在您的電腦上運行adb forward tcp:1970 localabstract:android.sdk.controller

    3. 是的!如果你使用64位模擬器來運行圖像,你會發現它不工作:(看起來有一個錯誤在仿真器造成的對齊。https://code.google.com/p/android/issues/detail?id=29735

      要解決此問題,您可以使用32-位模擬器或者自己固定它

    1

    正確添加在上面後,你需要運行:

    $ adb forward tcp:1970 localabstract:android.sdk.controller 
    

    (最新版本包括兩個多點觸摸和傳感器仿真)

    也有人告誡說,有可能修復以下32位錯誤:

    sdk-controller-socket.c源文件。

    該問題可以在64位來解決建立由任一:

    1. 在線路279,添加__attribute__((packed))SDKCtlMessage struct,OR
    2. 在線路922,與memcpy(&(msg->msg_type) + 1, data, size);
    替換 memcpy(msg + 1, data, size);

    我沒有親自嘗試過,但會很好奇,看看它是否有效,並且SDKController應用程序覆蓋所有作品,因爲我沒有設法通過「等待連接」。儘管當模擬器加載時確實顯示「Emulator Connected」,但是如果我回去了,即使沒有,也不會傳感器或多點觸摸。