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

时间:2019-04-27 18:30:35

标签: java android command

我正在从事一个旨在帮助残疾人更好地使用其Android设备的项目(主要用于教育)。我们提出了有关替代输入设备的一些想法,并使用输入命令在屏幕上重播了该信息。此刻,我们必须使手机扎根并使用输入命令

input tab x y

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

是否有其他方法可以重播输入?我知道appstore上的许多应用程序也可以非常快速地执行制表符,而无需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;
            }
        }

1 个答案:

答案 0 :(得分:0)

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

然后,我们重新编写所有算法,以对输入流进行处理,并在输入中嵌入时间。然后,我们可以伪造我们想要的任何输入集。调试非常有效,并成为我们的goto方法。