diff --git a/adapter/ohos/osal/frame_trace_adapter_impl.cpp b/adapter/ohos/osal/frame_trace_adapter_impl.cpp index 4333b66f1c1ac3dd8682e9f32580ffe6c2c3100f..5d52dca7e4938c8997e846d57f3fc945890ac31f 100644 --- a/adapter/ohos/osal/frame_trace_adapter_impl.cpp +++ b/adapter/ohos/osal/frame_trace_adapter_impl.cpp @@ -16,6 +16,7 @@ #include "frame_trace_adapter_impl.h" #include #include "frame_trace.h" +#include "parameters.h" namespace OHOS::Ace { #ifdef __aarch64__ @@ -26,6 +27,7 @@ const char* FRAME_TRACE_SO_PATH = "/system/lib/platformsdk/libframe_trace_intf.z static bool g_judgeFrameTrace = false; static bool g_accessFrameTrace = false; +constexpr char INTERVAL_LIMIT[] = "ffrt.interval.limit"; bool FrameTraceAdapterImpl::AccessFrameTrace() { @@ -71,4 +73,9 @@ bool FrameTraceAdapterImpl::IsEnabled() } return false; } + +void FrameTraceAdapterImpl::SetFrameTraceLimit() +{ + OHOS::system::SetParameter(INTERVAL_LIMIT, "true"); +} } diff --git a/adapter/ohos/osal/frame_trace_adapter_impl.h b/adapter/ohos/osal/frame_trace_adapter_impl.h index 6671f6c2ef6ee6d81601b8a8c4c20405dedebe19..053657a9dfa19d52865f1c4de09a2ce991b48330 100644 --- a/adapter/ohos/osal/frame_trace_adapter_impl.h +++ b/adapter/ohos/osal/frame_trace_adapter_impl.h @@ -28,6 +28,7 @@ public: void SlowExecute(std::function&& func) override; bool EnableFrameTrace(const std::string&traceTag) override; bool IsEnabled() override; + void SetFrameTraceLimit() override; private: bool AccessFrameTrace(); diff --git a/frameworks/base/thread/frame_trace_adapter.h b/frameworks/base/thread/frame_trace_adapter.h index af8af36cb9fb14af16232edf6e6b0db8a2b03e17..fdf2f8a071649dbe90dc0cc41a859a21c307b071 100644 --- a/frameworks/base/thread/frame_trace_adapter.h +++ b/frameworks/base/thread/frame_trace_adapter.h @@ -35,6 +35,7 @@ public: { return false; } + virtual void SetFrameTraceLimit() {} }; } #endif diff --git a/frameworks/core/components_ng/gestures/recognizers/long_press_recognizer.cpp b/frameworks/core/components_ng/gestures/recognizers/long_press_recognizer.cpp index 2ba30c29c0772bee1a249d8356354803d82a6e0f..77801d394087a0ad002d05a2b3e2d190ffa13423 100644 --- a/frameworks/core/components_ng/gestures/recognizers/long_press_recognizer.cpp +++ b/frameworks/core/components_ng/gestures/recognizers/long_press_recognizer.cpp @@ -16,6 +16,7 @@ #include "core/components_ng/gestures/recognizers/long_press_recognizer.h" #include "base/perf/socperf_client.h" +#include "base/thread/frame_trace_adapter.h" #include "base/utils/utils.h" #include "core/components_ng/gestures/gesture_referee.h" #include "core/components_ng/gestures/recognizers/gesture_recognizer.h" @@ -33,8 +34,10 @@ constexpr int32_t MAX_FINGERS = 10; void LongPressRecognizer::OnAccepted() { - constexpr int32_t ACTION_LONG_PRESS_BOOST_CMDID = 10051; - SocPerfClient::GetInstance().PerfRequest(ACTION_LONG_PRESS_BOOST_CMDID, ""); + FrameTraceAdapter* ft = FrameTraceAdapter::GetInstance(); + if (ft != nullptr) { + ft->SetFrameTraceLimit(); + } if (onAccessibilityEventFunc_) { onAccessibilityEventFunc_(AccessibilityEventType::LONG_PRESS); }