Как улучшить скорость ввода команды в Android? - PullRequest
0 голосов
/ 27 апреля 2019

Я работаю над проектом, цель которого - помочь инвалидам лучше использовать свои устройства Android (в основном для образовательных целей).Мы пришли к некоторой идее об альтернативном устройстве ввода и использовали команду ввода, чтобы воспроизвести это на экране.На данный момент мы должны выполнить рутинг телефона и использовать команду ввода

input tab x y

Но для выполнения одной вкладки потребовалось около 3 секунд, что слишком медленно.После глубокого изучения документов я наткнулся на sendevent.c и понял, что он открывает и закрывает файл интерфейса для каждой команды.В любом случае я могу записать ввод непосредственно в этот файл, что может улучшить задержку для каждой отдельной вкладки?

Есть ли альтернативный способ воспроизведения ввода?я знаю много приложений в appstore, которые могут очень быстро выполнять вкладку без рута.

Большое спасибо

Редактировать: Это блок кода, который я использую:

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 голосов
/ 27 апреля 2019

Так что я сделал это для некоторых клавиатур. То, что мы делали, было записано событий, как они происходили в файле журнала. Затем мы написали код, который воспроизводил этот файл, создав поток, затем прочитав его и выполнив прямое касание / клавиатура / другие события в том же порядке в то же время, в спящем режиме, пока ему не понадобится создать следующую команду. Это работало довольно хорошо, но отладка была медленной.

Затем мы переписали все наши алгоритмы для работы с потоками входов со временем, встроенным во вход. Затем мы могли бы подделать любой набор данных, который мы хотели. Это сработало невероятно быстро для отладки и стало нашим методом goto.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...