我想测试自定义android上不同输入设备的延迟。我制作了一个应用并将这些功能添加到其中。
public boolean dispatchGenericMotionEvent(MotionEvent event)
{
long eventTime = event.getEventTime();
long systemTime = SystemClock.uptimeMillis();
long delay = systemTime - eventTime;
Log.v("TimeDelayTest", "Delay: " + delay);
sum += delay;
count += 1;
Log.v("TimeDelayTest", "Average: " + (sum/count));
return true;
}
public boolean dispatchTouchEvent(MotionEvent event)
{
long eventTime = event.getEventTime();
long systemTime = SystemClock.uptimeMillis();
long delay = systemTime - eventTime;
Log.v("TimeDelayTest", "Delay: " + delay);
sum += delay;
count += 1;
Log.v("TimeDelayTest", "Average: " + (sum/count));
return true;
}
当我运行此应用程序并用手指触摸屏幕时,延迟范围为0-10ms,平均为5ms。
如果我使用任何其他输入源,例如操纵杆,鼠标等,则延迟为10-20ms,平均为13.5ms。
我能理解为什么Android会优先考虑触控事件,但是有谁知道怎么做?或者在哪里 Android开源项目我可以在自定义构建中找到这个并优先考虑操纵杆事件吗?