我有一个扎根的Android 7手机,我想转储unix输入事件文件。使用adb,我可以使用以下命令进行操作:
adb shell getevent -t /dev/input/event7 > recorded_touch_events.txt
这会将event7文件转储到recorded_touch_events.txt中。但这仅在通过USB电缆将电话与PC连接时有效。使用Android,我可以使用以下代码转储文件:
th = new Thread(new Runnable(){
private Process exec;
@Override
public void run() {
try {
exec = Runtime.getRuntime().exec(new String[]{"su","-c","getevent -t /dev/input/event7"});
InputStreamReader is = new InputStreamReader(
exec.getInputStream());
String s;
BufferedReader br = new BufferedReader(is);
while(((s = br.readLine()) != null) && run){
// write line to text file
}
is.close();
exec.destroy();
} catch (IOException e) {
e.printStackTrace();
}
}
通过这种方式,我可以将每个读取行存储在一个文本文件中。
还有其他方法(可能更快)直接转储事件文件吗?
答案 0 :(得分:1)
getevent
用于以人类可读的形式打印输入事件。例如,在交互式调试会话期间。您无需将getevent
用于仅转储或任何其他计算机处理任务。只需打开并阅读输入文件即可。事件记录格式为very simple。
答案 1 :(得分:0)
肯定否,您做对了。