При проведении stress-тестирования Android приложений мы часто используем monkey, который с завидным постоянством кладёт приложения. Существует ли способ записывать его действия для повторного воспроизведения?
Ну можно взять сканер и парсить коммандную строку и писать это все в текстовый файл в итоге будет что-то в этом роде:
Sending Touch (ACTION_UP): 0:(0.0,205.55977)
:Sending Trackball (ACTION_MOVE): 0:(-3.0,2.0)
:Sending Trackball (ACTION_MOVE): 0:(4.0,4.0)
:Sending Touch (ACTION_DOWN): 0:(54.0,378.0)
:Sending Touch (ACTION_UP): 0:(70.23189,368.46057)
:Sending Touch (ACTION_DOWN): 0:(252.0,457.0)
:Sending Touch (ACTION_UP): 0:(248.2985,455.55615)
:Sending Touch (ACTION_DOWN): 0:(268.0,137.0)
:Sending Touch (ACTION_UP): 0:(267.8827,123.57899)
:Sending Touch (ACTION_DOWN): 0:(101.0,261.0)
:Sending Touch (ACTION_UP): 0:(98.0403,268.6024)
:Sending Touch (ACTION_DOWN): 0:(10.0,478.0)
:Sending Touch (ACTION_UP): 0:(17.424154,477.805)
:Sending Flip keyboardOpen=true
:Sending Touch (ACTION_DOWN): 0:(114.0,427.0)
:Sending Touch (ACTION_UP): 0:(144.14879,449.0429)
:Sending Touch (ACTION_DOWN): 0:(182.0,266.0)
:Sending Touch (ACTION_UP): 0:(181.25595,270.51382)
:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.flexaspect.android.everycallcontrol/.MainActivity;end
// Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.flexaspect.android.everycallcontrol/.MainActivity } in package com.flexaspect.android.everycallcontrol
:Sending Touch (ACTION_DOWN): 0:(126.0,43.0)
:Sending Touch (ACTION_UP): 0:(136.80482,115.796906)
:Sending Touch (ACTION_DOWN): 0:(5.0,378.0)
:Sending Touch (ACTION_UP): 0:(6.8111334,376.14938)
:Sending Touch (ACTION_DOWN): 0:(272.0,392.0)
:Sending Touch (ACTION_UP): 0:(248.82703,446.68637)
:Sending Touch (ACTION_DOWN): 0:(9.0,249.0)
:Sending Touch (ACTION_UP): 0:(16.230728,241.04366)
Ты имеешь в виду adb shell getevent -t > events.txt
?
a = adb … вот что я имею ввиду
try {
Process process = Runtime.getRuntime().exec(a);
InputStreamReader reader = new
InputStreamReader(process.getInputStream());
Scanner scanner = new Scanner(reader);
while(scanner.hasNextLine()) {
String line=scanner.nextLine();
writeFile.write("\n"+line+"\r");
System.out.println(line);
}
scanner.close();
} catch(IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}