1.概述
在13.0产品定制化开发中,对于处理屏幕旋转方向,首先有kernel底层处理,从底层驱动gsensor 中获取数据,从而判断屏幕方向的,然后事件上报后 最后由WMS就是WindowManagerService 来处理旋转的相关事件
2.强制app横屏显示的核心类
/framework/base/services/java/com/android/server/wm/DisplayRotation.java
3.强制app横屏显示核心功能分析和处理
在系统中wms主要是处理屏幕相关的核心类,WMS中在处理屏幕自动旋转,主要是调用
DisplayRotation的freezeRotation方法锁定用户指定的屏幕方向,调用thawRotation方法,解锁用户固定屏幕,
恢复屏幕自动旋转。最后调用updateRotationUnchecked,发送新的Configuration变化,
以及如果布局发生变化,也会重新计算布局。
通过上述源码分析,在系统中关于处理屏幕方法的系统中就是DisplayRotation.java 里负责处理的,这里根据系统当前的旋转方向
具体需要看源码然后分析具体的旋转功能
int rotationForOrientation(@ScreenOrientation int orientation,
@Surface.Rotation int lastRotation) {
ProtoLog.v(WM_DEBUG_ORIENTATION,
"rotationForOrientation(orient=%s (%d), last=%s (%d)); user=%s (%d) %s"
版权声明:本文为baidu_41666295原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。