使用任何工具,连续在终端发送例如点击命令,来测试App是否会发生一场:
// 获取屏幕点击位置 - 使用这个位置坐标,去adb连续点击,测试高频次呼叫,是否引起崩溃
// adb命令 :
./adb shell input tap 96 207
你还监听,点击的位置:
getTouchPosition();
@SuppressLint("ClickableViewAccessibility")
private void getTouchPosition() {
RelativeLayout root_layout = findViewById(R.id.root_layout);
root_layout.setVisibility(View.VISIBLE);
root_layout.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
/**
* 点击的开始位置
*/
case MotionEvent.ACTION_DOWN:
doWhLog("起始位置:(" + event.getX() + "," + event.getY());
break;
/**
* 触屏实时位置
*/
case MotionEvent.ACTION_MOVE:
doWhLog("实时位置:(" + event.getX() + "," + event.getY());
break;
/**
* 离开屏幕的位置
*/
case MotionEvent.ACTION_UP:
doWhLog("结束位置:(" + event.getX() + "," + event.getY());
break;
default:
break;
}
/**
* 注意返回值
* true:view继续响应Touch操作;
* false:view不再响应Touch操作,故此处若为false,只能显示起始位置,不能显示实时位置和结束位置
*/
return true;
}
});
}
代码里的需要doWhLog自行替换成Log.d
XML布局代码:
<RelativeLayout
android:visibility="gone"
android:id="@+id/root_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"/>