summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
author Siarhei Vishniakou <svv@google.com> 2019-08-16 11:12:52 -0500
committer Siarhei Vishniakou <svv@google.com> 2019-09-23 18:26:56 +0100
commitde4bf150c5685643daa1fa17f697e8b1cf3ea9ec (patch)
tree4fc193f901d6c5b986d4bd143e1c1ef8926c716d /libs
parent6cd19a422afe967eb20c5c3eee2b36a29f52c495 (diff)
Do not report latency for injected events
When reporting the latency of touch events, ensure that injected events are excluded. These events can have arbitrary timestamps, and would not result in meaningful data. Also do not report events for statistics if inputfilter is enabled. Move the statistics reporting from InputTransport to InputDispatcher. This ensures that there's only 1 instance of the mStatistics object. This also provides easy access to the inputfilterenabled state. Bug: 13894199 Test: Change the reporting period to 0 (to report every event immediately) Inject events in various ways and ensure they don't go to statsd $ m statsd_testdrive && ./out/host/linux-x86/bin/statsd_testdrive 34 $ adb shell input tap 100 100 $ adb shell monkey 1000 Next, relaunch the statsd_testdrive script and touch the screen Observe that events are reported. Change-Id: Ief8040599a347e084e75584ed3164c60a6dbc4ad
Diffstat (limited to 'libs')
-rw-r--r--libs/input/Android.bp1
-rw-r--r--libs/input/InputTransport.cpp15
-rw-r--r--libs/input/LatencyStatistics.cpp2
3 files changed, 1 insertions, 17 deletions
diff --git a/libs/input/Android.bp b/libs/input/Android.bp
index 7749e66c4d..8efaf3d90b 100644
--- a/libs/input/Android.bp
+++ b/libs/input/Android.bp
@@ -57,7 +57,6 @@ cc_library {
"libutils",
"libbinder",
"libui",
- "libstatslog",
],
sanitize: {
diff --git a/libs/input/InputTransport.cpp b/libs/input/InputTransport.cpp
index 8a2fc2a2d0..366c93cf1f 100644
--- a/libs/input/InputTransport.cpp
+++ b/libs/input/InputTransport.cpp
@@ -34,7 +34,6 @@
#include <utils/Trace.h>
#include <input/InputTransport.h>
-#include <statslog.h>
using android::base::StringPrintf;
@@ -538,9 +537,6 @@ status_t InputPublisher::publishMotionEvent(
msg.body.motion.pointers[i].coords.copyFrom(pointerCoords[i]);
}
- if (source == AINPUT_SOURCE_TOUCHSCREEN) {
- reportTouchEventForStatistics(eventTime);
- }
return mChannel->sendMessage(&msg);
}
@@ -567,17 +563,6 @@ status_t InputPublisher::receiveFinishedSignal(uint32_t* outSeq, bool* outHandle
return OK;
}
-void InputPublisher::reportTouchEventForStatistics(nsecs_t evdevTime) {
- if (mTouchStatistics.shouldReport()) {
- android::util::stats_write(android::util::TOUCH_EVENT_REPORTED, mTouchStatistics.getMin(),
- mTouchStatistics.getMax(), mTouchStatistics.getMean(),
- mTouchStatistics.getStDev(), mTouchStatistics.getCount());
- mTouchStatistics.reset();
- }
- nsecs_t latency = nanoseconds_to_microseconds(systemTime(CLOCK_MONOTONIC) - evdevTime);
- mTouchStatistics.addValue(latency);
-}
-
// --- InputConsumer ---
InputConsumer::InputConsumer(const sp<InputChannel>& channel) :
diff --git a/libs/input/LatencyStatistics.cpp b/libs/input/LatencyStatistics.cpp
index e343578e00..394da22a62 100644
--- a/libs/input/LatencyStatistics.cpp
+++ b/libs/input/LatencyStatistics.cpp
@@ -84,7 +84,7 @@ void LatencyStatistics::reset() {
bool LatencyStatistics::shouldReport() {
std::chrono::duration timeSinceReport = std::chrono::steady_clock::now() - mLastReportTime;
- return mCount != 0 && timeSinceReport > mReportPeriod;
+ return mCount != 0 && timeSinceReport >= mReportPeriod;
}
} // namespace android