diff --git a/frameworks/inputmethod_ability/BUILD.gn b/frameworks/inputmethod_ability/BUILD.gn index 0d518b7e3d4be4d210624b86801185b93468fa9d..c460557257a527c2a494e2a36f33b10d6bdf9fac 100644 --- a/frameworks/inputmethod_ability/BUILD.gn +++ b/frameworks/inputmethod_ability/BUILD.gn @@ -58,7 +58,10 @@ ohos_shared_library("inputmethod_ability") { "//utils/native/base:utils", ] - external_deps = [ "hiviewdfx_hilog_native:libhilog" ] + external_deps = [ + "bytrace_standard:bytrace_core", + "hiviewdfx_hilog_native:libhilog", + ] public_configs = [ ":inputmethod_ability_native_config" ] diff --git a/frameworks/inputmethod_ability/src/input_method_ability.cpp b/frameworks/inputmethod_ability/src/input_method_ability.cpp index c14fd5ff083bae4e7634b44ef7aab4f755bcc780..4afea1cba2c1f8b630a4beeda181b5de61200102 100644 --- a/frameworks/inputmethod_ability/src/input_method_ability.cpp +++ b/frameworks/inputmethod_ability/src/input_method_ability.cpp @@ -22,6 +22,8 @@ #include "iservice_registry.h" #include "system_ability_definition.h" #include "input_data_channel_proxy.h" +#include "bytrace.h" +#include "global.h" namespace OHOS { namespace MiscServices { @@ -243,6 +245,7 @@ namespace MiscServices { { IMSA_HILOGI("InputMethodAbility::ShowInputWindow"); eventTarget_->Emit(eventTarget_, "keyboardShow", nullptr); + FinishTrace(BYTRACE_TAG_MISC); } void InputMethodAbility::DissmissInputWindow() @@ -254,6 +257,7 @@ namespace MiscServices { bool InputMethodAbility::InsertText(const std::string text) { IMSA_HILOGI("InputMethodAbility::InsertText"); + StartTrace(BYTRACE_TAG_MISC, TraceState::ToString(TraceState::TRACE_INSERT_TEXT)); if (inputDataChannel == nullptr) { IMSA_HILOGI("InputMethodAbility::InsertText inputDataChanel is nullptr"); return false; diff --git a/frameworks/inputmethod_controller/BUILD.gn b/frameworks/inputmethod_controller/BUILD.gn index 71457b1784d173ec8ccfd012ecfeeae9a8763f86..1f154416c0227c6039b54a6f5b727987537d290d 100644 --- a/frameworks/inputmethod_controller/BUILD.gn +++ b/frameworks/inputmethod_controller/BUILD.gn @@ -53,7 +53,10 @@ ohos_shared_library("inputmethod_client") { "//utils/native/base:utils", ] - external_deps = [ "hiviewdfx_hilog_native:libhilog" ] + external_deps = [ + "bytrace_standard:bytrace_core", + "hiviewdfx_hilog_native:libhilog", + ] configs = [ ":inputmethod_client_native_config" ] diff --git a/frameworks/inputmethod_controller/src/input_method_controller.cpp b/frameworks/inputmethod_controller/src/input_method_controller.cpp index 5e926d3cac3692f13ed792849633ec77547c2f87..e6de31758e94bbb35642812c99a9d83819608890 100644 --- a/frameworks/inputmethod_controller/src/input_method_controller.cpp +++ b/frameworks/inputmethod_controller/src/input_method_controller.cpp @@ -17,6 +17,7 @@ #include "iservice_registry.h" #include "system_ability_definition.h" #include "global.h" +#include "bytrace.h" namespace OHOS { namespace MiscServices { @@ -104,6 +105,7 @@ using namespace MessageID; case MSG_ID_INSERT_CHAR: { MessageParcel *data = msg->msgContent_; std::u16string text = data->ReadString16(); + FinishTrace(BYTRACE_TAG_MISC); if (textListener != nullptr) { textListener->InsertText(text); } @@ -158,6 +160,7 @@ using namespace MessageID; void InputMethodController::Attach(sptr &listener) { + StartAsyncTrace(BYTRACE_TAG_MISC, TraceState::ToString(TraceState::TRACE_SHOW_KEYBOARD)); PrepareInput(0, mClient, mInputDataChannel, mAttribute); textListener=listener; } diff --git a/services/BUILD.gn b/services/BUILD.gn index 23db569208dce4acae3680aac9202642be25d925..f8b0218ba3efcf8473ea62dcc037672ca78518f9 100644 --- a/services/BUILD.gn +++ b/services/BUILD.gn @@ -81,7 +81,10 @@ ohos_shared_library("inputmethod_service") { "//utils/native/base:utils", ] - external_deps = [ "hiviewdfx_hilog_native:libhilog" ] + external_deps = [ + "bytrace_standard:bytrace_core", + "hiviewdfx_hilog_native:libhilog", + ] subsystem_name = "miscservices" part_name = "inputmethod_native" diff --git a/services/include/global.h b/services/include/global.h index 353e55090507f1d587e668f874eaa2ca54517738..8ba8f6240a30fde7dfd38fd8e2186f6d2d94eb80 100644 --- a/services/include/global.h +++ b/services/include/global.h @@ -73,6 +73,10 @@ namespace UserState { USER_STATE_UNLOCKED, // a user is unlocked. }; }; +namespace TraceState{ + TRACE_SHOW_KEYBOARD="trace_show_keyboard"; + TRACE_INSERT_TEXT="trace_insert_text"; +}; // Error Code namespace ErrorCode { diff --git a/services/src/global.cpp b/services/src/global.cpp index 7db59892b321362589e0d6c25be7cd1a6d17c8f7..4483904a518889bc049640285fb3d29d3ce8d024 100644 --- a/services/src/global.cpp +++ b/services/src/global.cpp @@ -217,6 +217,24 @@ namespace MiscServices { return "error is out of definition"; }; } + + namespace TraceState { + const char * ToString(int errorCode) + { + switch (errorCode) { + case TRACE_SHOW_KEYBOARD: { + return "trace_show_keyboard"; + } + case TRACE_INSERT_TEXT: { + return "trace_insert_text"; + } + default: { + return "trace default"; + } + } + return "trace default"; + } + } } }