From 858c37f3ba96cc9018acc4cb9a11935d7afeb8d8 Mon Sep 17 00:00:00 2001 From: jusiyao Date: Wed, 5 Nov 2025 17:29:58 +0800 Subject: [PATCH 1/3] change preload flag Signed-off-by: jusiyao --- .../app_manager/include/appmgr/app_state_data.h | 1 + .../inner_api/app_manager/src/appmgr/app_state_data.cpp | 4 +++- services/appmgr/src/app_state_observer_manager.cpp | 9 +++++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/interfaces/inner_api/app_manager/include/appmgr/app_state_data.h b/interfaces/inner_api/app_manager/include/appmgr/app_state_data.h index 487aa95f96..41a3cecf02 100644 --- a/interfaces/inner_api/app_manager/include/appmgr/app_state_data.h +++ b/interfaces/inner_api/app_manager/include/appmgr/app_state_data.h @@ -69,6 +69,7 @@ struct AppStateData : public Parcelable { int32_t state = 0; int32_t appIndex = 0; uint32_t accessTokenId = 0; + int32_t preloadMode = -1; ExtensionAbilityType extensionType = ExtensionAbilityType::UNSPECIFIED; std::vector renderPids; std::string bundleName; diff --git a/interfaces/inner_api/app_manager/src/appmgr/app_state_data.cpp b/interfaces/inner_api/app_manager/src/appmgr/app_state_data.cpp index d9e0b15001..8b66e86db1 100644 --- a/interfaces/inner_api/app_manager/src/appmgr/app_state_data.cpp +++ b/interfaces/inner_api/app_manager/src/appmgr/app_state_data.cpp @@ -27,7 +27,8 @@ bool AppStateData::Marshalling(Parcel &parcel) const && parcel.WriteInt32(static_cast(extensionType)) && parcel.WriteInt32Vector(renderPids) && parcel.WriteString(callerBundleName) && parcel.WriteBool(isSplitScreenMode) && parcel.WriteInt32(callerUid) && parcel.WriteBool(isFloatingWindowMode) && parcel.WriteInt32(appIndex) && parcel.WriteBool(isPreloadModule) - && parcel.WriteBool(isPrelaunch) && parcel.WriteBool(isFromWindowFocusChanged)); + && parcel.WriteBool(isPrelaunch) && parcel.WriteBool(isFromWindowFocusChanged) + && parcel.WriteInt32(preloadMode)); } bool AppStateData::ReadFromParcel(Parcel &parcel) @@ -48,6 +49,7 @@ bool AppStateData::ReadFromParcel(Parcel &parcel) isPreloadModule = parcel.ReadBool(); isPrelaunch = parcel.ReadBool(); isFromWindowFocusChanged = parcel.ReadBool(); + preloadMode = static_cast(parcel.ReadInt32()); return true; } diff --git a/services/appmgr/src/app_state_observer_manager.cpp b/services/appmgr/src/app_state_observer_manager.cpp index 933903110a..3b874beca4 100644 --- a/services/appmgr/src/app_state_observer_manager.cpp +++ b/services/appmgr/src/app_state_observer_manager.cpp @@ -684,7 +684,9 @@ void AppStateObserverManager::HandleOnAppProcessCreated(const std::shared_ptrGetPreloadMode() == PreloadMode::PRE_LAUNCH; - data.isPreloadModule = appRecord->GetPreloadMode() != PreloadMode::PRESS_DOWN; + data.isPreloadModule = appRecord->GetPreloadMode() == PreloadMode::PRE_MAKE + || appRecord->GetPreloadMode() == PreloadMode::PRELOAD_MODULE + || appRecord->GetPreloadMode() == PreloadMode::PRE_LAUNCH; data.preloadMode = static_cast(appRecord->GetPreloadMode()); if (data.bundleName == XIAOYI_BUNDLE_NAME && data.extensionType == ExtensionAbilityType::SERVICE) { TAG_LOGI(AAFwkTag::APPMGR, "change processType to NORMAL"); @@ -1224,7 +1226,10 @@ AppStateData AppStateObserverManager::WrapAppStateData(const std::shared_ptr(state); appStateData.uid = appRecord->GetUid(); appStateData.extensionType = appRecord->GetExtensionType(); - appStateData.isPreloadModule = appRecord->GetPreloadMode() != PreloadMode::PRESS_DOWN; + appStateData.isPreloadModule = appRecord->GetPreloadMode() == PreloadMode::PRE_MAKE + || appRecord->GetPreloadMode() == PreloadMode::PRELOAD_MODULE + || appRecord->GetPreloadMode() == PreloadMode::PRE_LAUNCH; + appStateData.preloadMode = static_cast(appRecord->GetPreloadMode()); appStateData.callerUid = appRecord->GetCallerUid(); appStateData.isFromWindowFocusChanged = isFromWindowFocusChanged; if (appRecord->GetApplicationInfo() != nullptr) { From e9d977562d4035778b80077802bd35adf1f211bd Mon Sep 17 00:00:00 2001 From: jusiyao Date: Thu, 6 Nov 2025 09:56:16 +0800 Subject: [PATCH 2/3] change preload tag Signed-off-by: jusiyao --- interfaces/inner_api/app_manager/src/appmgr/app_state_data.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/interfaces/inner_api/app_manager/src/appmgr/app_state_data.cpp b/interfaces/inner_api/app_manager/src/appmgr/app_state_data.cpp index 8b66e86db1..42718efec9 100644 --- a/interfaces/inner_api/app_manager/src/appmgr/app_state_data.cpp +++ b/interfaces/inner_api/app_manager/src/appmgr/app_state_data.cpp @@ -14,6 +14,7 @@ */ #include "app_state_data.h" +#include "app_mgr_constants.h" #include "hilog_tag_wrapper.h" #include "ui_extension_utils.h" From 13703519e55f3a9c5247f3aeaed9c591513cfe20 Mon Sep 17 00:00:00 2001 From: jusiyao Date: Thu, 6 Nov 2025 15:11:05 +0800 Subject: [PATCH 3/3] change preload tag Signed-off-by: jusiyao --- interfaces/inner_api/app_manager/src/appmgr/app_state_data.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interfaces/inner_api/app_manager/src/appmgr/app_state_data.cpp b/interfaces/inner_api/app_manager/src/appmgr/app_state_data.cpp index 42718efec9..3b5b862bb8 100644 --- a/interfaces/inner_api/app_manager/src/appmgr/app_state_data.cpp +++ b/interfaces/inner_api/app_manager/src/appmgr/app_state_data.cpp @@ -50,7 +50,7 @@ bool AppStateData::ReadFromParcel(Parcel &parcel) isPreloadModule = parcel.ReadBool(); isPrelaunch = parcel.ReadBool(); isFromWindowFocusChanged = parcel.ReadBool(); - preloadMode = static_cast(parcel.ReadInt32()); + preloadMode = parcel.ReadInt32(); return true; }