Android16 EDLA【CTS】CtsWindowManagerDeviceAnimations存在fail项
文章目录
- [Android16 EDLA【CTS】CtsWindowManagerDeviceAnimations存在fail项](#Android16 EDLA【CTS】CtsWindowManagerDeviceAnimations存在fail项)
一、前言
EDLA Window相关的报错一般是: frameworks /base/services/core /java/com/android/server/wm 改动导致;
也有可能是server目录下的am、pm、input、inputmethod 代码修改导致;
分析窗口的问题,这里记录一下遇到的报错,后续方便快速分析解决。
本文分析的是CtsWindowManagerDeviceAnimations项的其中一些Failed。
二、分析解决
1、报错
报错如下:

报错项如下:
android.server.wm.animations.DialogFrameTests#testExplicitPositionMatchParentNoLimits
android.server.wm.animations.DialogFrameTests#testMarginsArePercentagesOfContentFrame
android.server.wm.animations.DialogFrameTests#testExplicitSizeDefaultGravity
android.server.wm.animations.SplashscreenTests#testSplashscreenContent_FreeformWindow
android.server.wm.animations.SplashscreenTests#testSetBackgroundColorActivity_FreeformWindow
2、分析修改
悬浮球视窗会导致一些Failed项,因为我发现隐藏默认打开的悬浮侧边栏,后面两个Failed项是没有的。
然后 clean wm目录的修改,编译的大包,测试没有发现该项Failed的。
修改过的wm目录的文件主要有如下:
release$ cd frameworks/base/services/core/java/com/android/server/
wallpaper/ app/ connectivity/ pm/ policy/ media/ power/ wm/ net/
audio/ notification/ display/ input/
...
release/frameworks/base/services/core/java/com/android/server/wm$ git status .
modified: ActivityRecord.java
modified: ActivityStarter.java
modified: ActivityTaskManagerService.java
modified: ActivityTaskSupervisor.java
modified: AppWarnings.java
modified: DisplayContent.java
modified: DisplayPolicy.java
modified: DisplayRotation.java
modified: InsetsPolicy.java
modified: LaunchParamsUtil.java
modified: RecentTasks.java
modified: RootWindowContainer.java
modified: SystemGesturesPointerEventListener.java
modified: Task.java
modified: TaskDisplayArea.java
modified: TaskFragment.java
modified: TaskLaunchParamsModifier.java
modified: TaskOrganizerController.java
modified: Transition.java
modified: WindowContainer.java
modified: WindowManagerService.java
modified: WindowProcessController.java
modified: WindowState.java
有20多个文件,可以都打开看看哪里修改会影响到Failed项;
或者可以一次三五个文件去除进行排查;排查到具体是哪里的代码导致的Failed项;
也可以全部加上CTS属性判断,cts测试的时候,跳过自定义的修改,就可以PASS。
具体是哪个修改导致我也不记得了,因为上面的代码后续基本都加入了cts属性判断,会跳过自定义逻辑。
三、其他
1、小结
(1)window相关的Failed项一般是framework的修改导致;
(2)悬浮框的显示会导致Failed项;
(3)如果代码其他地方修改干扰到了window的大小也会导致该项Failed。
2、Android16 EDLA 分析CtsWindowManagerDeviceActivity存在fail方法testStartActivityWithLaunchBounds
testStartActivityWithLaunchBounds 方法的Failed,可能是配置文件的修改,也可能是framework的修改;
https://blog.csdn.net/wenzhi20102321/article/details/156342721