!75 二进制大小优化

Merge pull request !75 from wlh2624/0124
This commit is contained in:
openharmony_ci
2025-02-06 01:57:07 +00:00
committed by Gitee
3 changed files with 36 additions and 31 deletions
+15 -9
View File
@@ -30,11 +30,19 @@ const std::string PERMISSION_ERR_MSG =
"An attempt was made to update configuration forbidden by permission: ohos.permission.UPDATE_CONFIGURATION.";
const std::string INVALID_ARG_MSG = "The type of 'mode' must be DarkMode.";
static const std::unordered_map<int32_t, std::string> ERROR_CODE_TO_MSG {
{ UiAppearanceAbilityInterface::ErrCode::PERMISSION_ERR, "Permission denied. " },
{ UiAppearanceAbilityInterface::ErrCode::INVALID_ARG, "Parameter error. " },
{ UiAppearanceAbilityInterface::ErrCode::SYS_ERR, "Internal error. " },
};
std::string ParseErrCode(const int32_t errCode)
{
switch (errCode) {
case UiAppearanceAbilityInterface::ErrCode::PERMISSION_ERR:
return "Permission denied. ";
case UiAppearanceAbilityInterface::ErrCode::INVALID_ARG:
return "Parameter error. ";
case UiAppearanceAbilityInterface::ErrCode::SYS_ERR:
return "Internal error. ";
default:
return "";
}
}
void NapiThrow(napi_env env, const std::string& message, int32_t errCode)
{
@@ -43,8 +51,7 @@ void NapiThrow(napi_env env, const std::string& message, int32_t errCode)
napi_create_string_utf8(env, strCode.c_str(), strCode.length(), &code);
napi_value msg = nullptr;
auto iter = ERROR_CODE_TO_MSG.find(errCode);
std::string strMsg = (iter != ERROR_CODE_TO_MSG.end() ? iter->second : "") + message;
std::string strMsg = ParseErrCode(errCode) + message;
LOGI("napi throw errCode %{public}d, strMsg %{public}s", errCode, strMsg.c_str());
napi_create_string_utf8(env, strMsg.c_str(), strMsg.length(), &msg);
@@ -157,8 +164,7 @@ void JsUiAppearance::OnComplete(napi_env env, napi_status status, void* data)
napi_create_string_utf8(env, strCode.c_str(), strCode.length(), &code);
napi_value msg = nullptr;
auto iter = ERROR_CODE_TO_MSG.find(asyncContext->status);
std::string strMsg = (iter != ERROR_CODE_TO_MSG.end() ? iter->second : "") + asyncContext->errMsg;
std::string strMsg = ParseErrCode(asyncContext->status) + asyncContext->errMsg;
LOGI("napi throw errCode %{public}d, strMsg %{public}s", asyncContext->status, strMsg.c_str());
napi_create_string_utf8(env, strMsg.c_str(), strMsg.length(), &msg);
@@ -32,7 +32,7 @@ public:
class __attribute__((visibility("default"))) UiAppearanceAbilityClient : public RefBase {
public:
UiAppearanceAbilityClient() = default;
UiAppearanceAbilityClient();
~UiAppearanceAbilityClient() = default;
static sptr<UiAppearanceAbilityClient> GetInstance();
@@ -46,13 +46,11 @@ public:
private:
sptr<UiAppearanceAbilityInterface> GetUiAppearanceServiceProxy();
static sptr<UiAppearanceAbilityInterface> CreateUiAppearanceServiceProxy();
sptr<UiAppearanceAbilityInterface> CreateUiAppearanceServiceProxy();
static inline std::mutex instanceLock_;
static inline sptr<UiAppearanceAbilityClient> instance_;
static inline sptr<UiAppearanceAbilityInterface> uiAppearanceServiceProxy_;
static inline sptr<UiAppearanceDeathRecipient> deathRecipient_;
std::mutex serviceProxyLock_;
sptr<UiAppearanceAbilityInterface> uiAppearanceServiceProxy_;
};
} // namespace ArkUi::UiAppearance
} // namespace OHOS
#endif // UI_APPEARANCE_ABILITY_CLIENT_H
#endif // UI_APPEARANCE_ABILITY_CLIENT_H
+16 -15
View File
@@ -27,18 +27,18 @@ namespace OHOS {
namespace ArkUi::UiAppearance {
sptr<UiAppearanceAbilityClient> UiAppearanceAbilityClient::GetInstance()
{
if (!instance_) {
std::lock_guard<std::mutex> autoLock(instanceLock_);
if (!instance_) {
uiAppearanceServiceProxy_ = CreateUiAppearanceServiceProxy();
instance_ = new UiAppearanceAbilityClient;
}
}
return instance_;
static sptr<UiAppearanceAbilityClient> instance = new UiAppearanceAbilityClient;
return instance;
}
UiAppearanceAbilityClient::UiAppearanceAbilityClient()
{
GetUiAppearanceServiceProxy();
}
sptr<UiAppearanceAbilityInterface> UiAppearanceAbilityClient::GetUiAppearanceServiceProxy()
{
std::lock_guard guard(serviceProxyLock_);
if (uiAppearanceServiceProxy_ == nullptr) {
LOGE("Redo CreateUiAppearanceServiceProxy");
uiAppearanceServiceProxy_ = CreateUiAppearanceServiceProxy();
@@ -52,7 +52,7 @@ int32_t UiAppearanceAbilityClient::SetDarkMode(UiAppearanceAbilityInterface::Dar
LOGE("SetDarkMode quit because redoing CreateUiAppearanceServiceProxy failed.");
return UiAppearanceAbilityInterface::ErrCode::SYS_ERR;
}
return uiAppearanceServiceProxy_->SetDarkMode(mode);
return GetUiAppearanceServiceProxy()->SetDarkMode(mode);
}
int32_t UiAppearanceAbilityClient::GetDarkMode()
@@ -61,7 +61,7 @@ int32_t UiAppearanceAbilityClient::GetDarkMode()
LOGE("GetDarkMode quit because redoing CreateUiAppearanceServiceProxy failed.");
return UiAppearanceAbilityInterface::ErrCode::SYS_ERR;
}
return uiAppearanceServiceProxy_->GetDarkMode();
return GetUiAppearanceServiceProxy()->GetDarkMode();
}
int32_t UiAppearanceAbilityClient::SetFontScale(std::string &fontScale)
@@ -70,7 +70,7 @@ int32_t UiAppearanceAbilityClient::SetFontScale(std::string &fontScale)
LOGE("SetDarkMode quit because redoing CreateUiAppearanceServiceProxy failed.");
return UiAppearanceAbilityInterface::ErrCode::SYS_ERR;
}
return uiAppearanceServiceProxy_->SetFontScale(fontScale);
return GetUiAppearanceServiceProxy()->SetFontScale(fontScale);
}
int32_t UiAppearanceAbilityClient::GetFontScale(std::string &fontScale)
@@ -81,7 +81,7 @@ int32_t UiAppearanceAbilityClient::GetFontScale(std::string &fontScale)
}
int id = HiviewDFX::XCollie::GetInstance().SetTimer(
"GetFontScale", 10, nullptr, nullptr, HiviewDFX::XCOLLIE_FLAG_LOG);
auto res = uiAppearanceServiceProxy_->GetFontScale(fontScale);
auto res = GetUiAppearanceServiceProxy()->GetFontScale(fontScale);
HiviewDFX::XCollie::GetInstance().CancelTimer(id);
return res;
}
@@ -92,7 +92,7 @@ int32_t UiAppearanceAbilityClient::SetFontWeightScale(std::string &fontWeightSca
LOGE("SetDarkMode quit because redoing CreateUiAppearanceServiceProxy failed.");
return UiAppearanceAbilityInterface::ErrCode::SYS_ERR;
}
return uiAppearanceServiceProxy_->SetFontWeightScale(fontWeightScale);
return GetUiAppearanceServiceProxy()->SetFontWeightScale(fontWeightScale);
}
int32_t UiAppearanceAbilityClient::GetFontWeightScale(std::string &fontWeightScale)
@@ -101,7 +101,7 @@ int32_t UiAppearanceAbilityClient::GetFontWeightScale(std::string &fontWeightSca
LOGE("GetDarkMode quit because redoing CreateUiAppearanceServiceProxy failed.");
return UiAppearanceAbilityInterface::ErrCode::SYS_ERR;
}
return uiAppearanceServiceProxy_->GetFontWeightScale(fontWeightScale);
return GetUiAppearanceServiceProxy()->GetFontWeightScale(fontWeightScale);
}
sptr<UiAppearanceAbilityInterface> UiAppearanceAbilityClient::CreateUiAppearanceServiceProxy()
@@ -119,7 +119,7 @@ sptr<UiAppearanceAbilityInterface> UiAppearanceAbilityClient::CreateUiAppearance
return nullptr;
}
deathRecipient_ = new UiAppearanceDeathRecipient;
sptr<UiAppearanceDeathRecipient> deathRecipient_ = new UiAppearanceDeathRecipient;
systemAbility->AddDeathRecipient(deathRecipient_);
sptr<UiAppearanceAbilityInterface> uiAppearanceServiceProxy =
iface_cast<UiAppearanceAbilityInterface>(systemAbility);
@@ -134,6 +134,7 @@ sptr<UiAppearanceAbilityInterface> UiAppearanceAbilityClient::CreateUiAppearance
void UiAppearanceAbilityClient::OnRemoteSaDied(const wptr<IRemoteObject>& remote)
{
// Used for new connections after the service may be disconnected.
std::lock_guard guard(serviceProxyLock_);
uiAppearanceServiceProxy_ = CreateUiAppearanceServiceProxy();
}