我是靠谱客的博主 聪慧板栗,最近开发中收集的这篇文章主要介绍自动把getevent转化为sendevent的工具(附java源码),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近发现了evi这个工具,这个工具是android 测试用的,和我想要做的是同样的功能。不过有的手机上没有这个指令,所以想要类似功能的可以先尝试这个工具,如果不行的话可以尝试在手机里push一个evi,或者换用分割线一下的方法。

用法很简单: 

1 输入 adb shell evi record 后,做自己想要重复执行的操作。 

2 输入 adb shell evi replay -t n ,即可重复执行操作,n代表想要重复执行的次数。

adb shell evi 
Usage:
evi record [-f <file>] [<events...>]
    - record system events to <file>
      If no -f option is supplied then the data is written
      to "/sdcard/events"
      (<events...> is the list of events to be backed up.
      For example, "1 3 5" means event1, event3 and event5.
      By default, event0, event1, event3, event4, event6
      and event7 are included.)

evi replay [-f <file>] [-t <times>]
    - replay system events from <file>
      If no -f option is supplied then "/sdcard/events" is used.
      If no -t option is supplied then events will be replayed once.




---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

根据上一篇 Android getevent/sendevent的使用,写了一个工具,专门用来把getevent转化为sendevent指令。


主要是16进制转化10进制太麻烦了,这么麻烦的东西,必须得写专门的工具来让电脑帮我完成。


这个工具的作用是把把getevent转化为sendevent指令,getevent指令中按回车空行每行转化为1秒延迟,并且组装成shell来循环执行。

(直接在工具里输入getevent事件,按q后回车结束输入)


没错,我就是想做个简易的按键录制工具。


可以直接下载我编译好的:点击下载


源码如下

   public static void main(String[] args) {

        System.out.println("请输入要转化的getevent指令(adb shell getevent)");

        Scanner scanner = new Scanner(System.in);
        StringBuilder result = new StringBuilder();
        result.append("#!/bin/shn");
        result.append("while :n");
        result.append("don");
        while (scanner.hasNextLine()) {
            String line = scanner.nextLine();
            if (line.trim().isEmpty()) {
                result.append("sleep 1n");
                continue;
            }
            if (line.trim().equals("q")) break;
            String[] temp = line.split(" ");
            result.append("adb shell sendevent ")
                    .append(temp[0] + " ")
                    .delete(result.length() - 2, result.length() - 1)
                    .append(temp[1] + " ")
                    .append(String.format("%04d", Integer.parseInt(temp[2], 16)) + " ")
                    .append(Long.parseLong(temp[3], 16) + " ");
            result.append("n");
        }
        result.append("donen");
        System.out.print(result.toString());

    }


最后

以上就是聪慧板栗为你收集整理的自动把getevent转化为sendevent的工具(附java源码)的全部内容,希望文章能够帮你解决自动把getevent转化为sendevent的工具(附java源码)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部