移动光标更顺畅(远程应用程序)

eme*_*ieu 5 java android client-server

我正在编写Android远程应用程序.当我触摸并移动Android应用程序时,服务器计算机上的光标也会移动,但它会延迟大约一秒钟.

我的应用程序只是两个线程:客户端发送坐标,服务器接收它们,这就是全部.我的解决方案是通过ObjectInputStream传递dx,dy并使用Robot :: mouseMove移动光标.

你能给我一些防止光标延迟的建议吗?(顺利地像RemoteDroid ^^)

我的塞弗:

    public void run() {         
            ..........
            while(true) {

                    // get dx, dy from ObjectInputStream
                    ........

                    moveMouseByDelta(dx, dy);
            }
            ...........
    }

    private void moveMouseByDelta(int dx, int dy)
    {
        try {
            Point p = MouseInfo.getPointerInfo().getLocation();
            int currentX = p.x;
            int currentY = p.y; 
            Robot robot = new Robot();
            robot.mouseMove(currentX + dx, currentY + dy);              
        } catch (AWTException e) {
            e.printStackTrace();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我的客户端(Android远程应用):

private void touchTouchPad(MotionEvent event) 
{
    int x = (int)event.getX();
    int y = (int)event.getY();
        switch(event.getAction()) {
           ............
            case MotionEvent.ACTION_MOVE:
                if(leftMouseHold) {
                    if(clientThread != null) {
                        int dx = x - xMouse;
                        int dy = y - yMouse;
                        xMouse += dx;
                        yMouse += dy;
                        clientThread.sendDelta(dx, dy);
                    }
                }
                break;
            ..............
        }
}
Run Code Online (Sandbox Code Playgroud)

(这不是我的功课,这是我的学习)

编辑:添加更多信息

mKo*_*bel 1

我只谈论 Windows 操作系统,这没什么不寻常的,因为 RDP 的 BW 限制为 56-64Kb/秒,

1 / 冻结、减速和延迟是由两个设备的分辨率(以像素为单位的 480x320 和全高清 PC 显示器之间)之间的转换引起的,如果差异(以像素为单位)越大,则运动越不自然,

2/冻结和延迟是由于数据连接波动引起的

最糟糕的是当这两个因素同时存在时,那就很有趣了