如何提高android中输入命令的速度?

问题描述 投票:0回答:1

我正在开展一个项目,旨在帮助残疾人更好地使用他们的Android设备(主要用于教育目的)。我们想出了关于替代输入设备的一些想法,并使用输入命令在屏幕上重放。目前,我们必须根据手机并使用输入命令

input tab x y

但是执行单个选项卡需要大约3秒钟,这太慢了。深入挖掘文档后,我遇到了sendevent.c,我意识到它打开并关闭每个命令的接口文件。无论如何我是否可以直接将输入写入该文件,这可能会改善每个标签的延迟?

有没有其他方法可以重播输入?我知道应用程序商店上的许多应用程序可以非常快速地执行选项卡而无需root。

非常感谢你

编辑:这是我正在使用的代码块:

int i = 0;
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        while (true){
            try {
                Process process = null;
                process = Runtime.getRuntime().exec("su", null, null);
                DataOutputStream os = new DataOutputStream(process.getOutputStream());
                String cmd = "/system/bin/input tap " + 273 + " " + (232+90) + "\n"; //760 116
                os.writeBytes(cmd);
                os.writeBytes("exit\n");
                os.flush();
                os.close();
                process.waitFor();
            } catch(Exception e) {
                Log.i("CommandSU", e.toString());
                i--;
            }
            i++;
            if (i >= 1){
                break;
            }
        }
java android command
1个回答
0
投票

所以我实际上是为一些键盘做了这个。我们所做的是记录事件,因为它们发生在日志文件中。然后我们编写了代码,通过创建一个线程重放该文件,然后将其读入并在同一时间以相同的顺序进行直接触摸/键盘/其他事件,直到需要创建下一个命令为止。这工作得相当好,但调试很慢。

然后,我们重写了所有算法,以便在输入流中嵌入时间来处理输入流。然后我们可以伪造出我们想要的任何输入集。这对于调试非常快速,并成为我们的goto方法。

© www.soinside.com 2019 - 2024. All rights reserved.