Android14 记录前台应用的包名和类名功能描述增加属性记录前台应用与 activity具体修改实现frameworks/basediff--git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java index d1b55a4..20ad138100644---a/services/core/java/com/android/server/wm/RootWindowContainer.javab/services/core/java/com/android/server/wm/RootWindowContainer.java -2509,62509,9classRootWindowContainerextendsWindowContainerDisplayContentfalse/* deferPause */);}privatestaticStringsLastTopPkg;privatestaticStringsLastTopAct;booleanresumeFocusedTasksTopActivities(TasktargetRootTask,ActivityRecordtarget,ActivityOptionstargetOptions,booleandeferPause){-2565,62568,34classRootWindowContainerextendsWindowContainerDisplayContent}}try{finalTaskfocusedStackgetTopDisplayFocusedRootTask();if(focusedStack!null){finalActivityRecordtopRunningActivityfocusedStack.topRunningActivity();if(topRunningActivity!null){StringpkgtopRunningActivity.packageName;Stringactivityunknown;if(topRunningActivity.mActivityComponent!null){activitytopRunningActivity.mActivityComponent.flattenToShortString();}elseif(topRunningActivity.intent!nulltopRunningActivity.intent.getComponent()!null){activitytopRunningActivity.intent.getComponent().flattenToShortString();}if(!pkg.equals(sLastTopPkg)||!activity.equals(sLastTopAct)){SystemProperties.set(persist.sys.top_package,pkg);SystemProperties.set(persist.sys.top_activity,activity);Slog.d(topAppInfo,Top app changed: pkg / activity);sLastTopPkgpkg;sLastTopActactivity;}}}}catch(Exceptione){Slog.e(topAppInfo,Failed to set top app props,e);}returnresult;}后续使用发现部分 className 太长导致超出属性值范围故使用 shortClassNamelog04-23 11:42:40.217 798 870 E topAppInfo: java.lang.IllegalArgumentException: value of system property persist.sys.top_activity is longer than 91 bytes: com.google.android.inputmethod.pinyin/com.google.android.apps.inputmethod.pinyin.firstrun.PinyinFirstRunActivityframeworks/basediff--git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java index20ad138..c57d56b100644---a/services/core/java/com/android/server/wm/RootWindowContainer.javab/services/core/java/com/android/server/wm/RootWindowContainer.java -2577,152576,23classRootWindowContainerextendsWindowContainerDisplayContentStringactivityunknown;if(topRunningActivity.mActivityComponent!null){-activitytopRunningActivity.mActivityComponent.flattenToShortString();activitytopRunningActivity.mActivityComponent.getShortClassName();}elseif(topRunningActivity.intent!nulltopRunningActivity.intent.getComponent()!null){-activitytopRunningActivity.intent.getComponent().flattenToShortString();activitytopRunningActivity.intent.getComponent().getShortClassName();}if(!pkg.equals(sLastTopPkg)||!activity.equals(sLastTopAct)){-SystemProperties.set(persist.sys.top_package,pkg);-SystemProperties.set(persist.sys.top_activity,activity);if(pkg!nullpkg.length()91){pkgpkg.substring(0,91);}if(activity!nullactivity.length()91){activityactivity.substring(0,91);}SystemProperties.set(persist.sys.top_package,pkg);SystemProperties.set(persist.sys.top_activity,activity);Slog.d(topAppInfo,Top app changed: pkg / activity);sLastTopPkgpkg;sLastTopActactivity;