最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

android 12/13 分屏設置Task的Bounds區(qū)

2023-02-13 23:59 作者:千里馬學框架  | 我要投稿

hi,近來研究分屏時候發(fā)現(xiàn)android 13上的分屏和以前的分屏代碼差別比較大 主要區(qū)別在于把原來大部分分屏相關業(yè)務在systemserver進行的都放入到了systemui進程,對應的代碼基本都在: frameworks/base/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/ 這里面進行對應分屏相關的一個業(yè)務處理, 比如分割線拖拽對兩個分屏大小影響等。最后都會通過包裝成WindowContainerTransaction對象,再通過WindowOrganizerController的本地代理,跨進程傳遞到systemserver的WindowOrganizerController類中進行處理. 大概流程很復雜,這里我這記錄一下一個難以表面看出的點,那就是怎么對Task的相關的Bounds進行設置的,這個在以前android版本就直接systemserver的Task或之ActivityStack調(diào)用resize就行,但新版本就沒有這么容易看出,最后經(jīng)過打印相關堆棧的調(diào)試發(fā)現(xiàn)應該設置是如下流程: ```cpp 02-13 22:27:30.861??560??890 I test??: setBounds change = { mBounds=Rect(0, 0 - 1440, 2960) mAppBounds=Rect(0, 0 - 1440, 2792) mMaxBounds=Rect(0, 0 - 1440, 2960) mDisplayRotation=ROTATION_0 mWindowingMode=fullscreen mDisplayWindowingMode=fullscreen mActivityType=undefined mAlwaysOnTop=undefined mRotation=ROTATION_0}1046251526 rect Rect(0, 0 - 1440, 810) 02-13 22:27:30.861??560??890 I test??: java.lang.Exception 02-13 22:27:30.861??560??890 I test??: at android.app.WindowConfiguration.setBounds(WindowConfiguration.java:294) 02-13 22:27:30.861??560??890 I test??: at android.app.WindowConfiguration.updateFrom(WindowConfiguration.java:494) 02-13 22:27:30.861??560??890 I test??: at android.content.res.Configuration.updateFrom(Configuration.java:1706) 02-13 22:27:30.861??560??890 I test??: at com.android.server.wm.ConfigurationContainer.onConfigurationChanged(ConfigurationContainer.java:133) 02-13 22:27:30.861??560??890 I test??: at com.android.server.wm.WindowContainer.onConfigurationChanged(WindowContainer.java:510) 02-13 22:27:30.861??560??890 I test??: at com.android.server.wm.TaskFragment.onConfigurationChanged(TaskFragment.java:2260) 02-13 22:27:30.861??560??890 I test??: at com.android.server.wm.Task.onConfigurationChangedInner(Task.java:1903) 02-13 22:27:30.861??560??890 I test??: at com.android.server.wm.Task.onConfigurationChanged(Task.java:1976) 02-13 22:27:30.861??560??890 I test??: at com.android.server.wm.ConfigurationContainer.onRequestedOverrideConfigurationChanged(ConfigurationContainer.java:200) 02-13 22:27:30.861??560??890 I test??: at com.android.server.wm.WindowContainer.onRequestedOverrideConfigurationChanged(WindowContainer.java:973) 02-13 22:27:30.861??560??890 I test??: at com.android.server.wm.WindowOrganizerController.applyChanges(WindowOrganizerController.java:534) 02-13 22:27:30.861??560??890 I test??: at com.android.server.wm.WindowOrganizerController.applyWindowContainerChange(WindowOrganizerController.java:1217) 02-13 22:27:30.861??560??890 I test??: at com.android.server.wm.WindowOrganizerController.applyTransaction(WindowOrganizerController.java:427) 02-13 22:27:30.861??560??890 I test??: at com.android.server.wm.WindowOrganizerController.applyTransaction(WindowOrganizerController.java:372) 02-13 22:27:30.861??560??890 I test??: at com.android.server.wm.WindowOrganizerController.applySyncTransaction(WindowOrganizerController.java:218) 02-13 22:27:30.861??560??890 I test??: at android.window.IWindowOrganizerController$Stub.onTransact(IWindowOrganizerController.java:215) 02-13 22:27:30.861??560??890 I test??: at com.android.server.wm.WindowOrganizerController.onTransact(WindowOrganizerController.java:163) 02-13 22:27:30.861??560??890 I test??: at android.os.Binder.execTransactInternal(Binder.java:1285) 02-13 22:27:30.861??560??890 I test??: at android.os.Binder.execTransact(Binder.java:1244) ``` 其實Task的Bounds就是 ```cpp ?@Override ??public void getBounds(Rect bounds) { ????bounds.set(getBounds()); ??} ????/** ???* Returns the effective bounds of this container, inheriting the first non-empty bounds set in ???* its ancestral hierarchy, including itself. ???*/ ??public Rect getBounds() { ????mReturnBounds.set(getConfiguration().windowConfiguration.getBounds()); ????return mReturnBounds; ??} ``` 最后就是調(diào)用的windowConfiguration.getBounds

android 12/13 分屏設置Task的Bounds區(qū)的評論 (共 條)

分享到微博請遵守國家法律
宝丰县| 丹江口市| 云阳县| 南乐县| 乌兰浩特市| 新蔡县| 深圳市| 集贤县| 乌苏市| 噶尔县| 广汉市| 封开县| 平原县| 吉水县| 普陀区| 唐山市| 怀柔区| 马关县| 广河县| 江门市| 武夷山市| 比如县| 永川市| 鄢陵县| 嫩江县| 游戏| 上思县| 克山县| 西吉县| 聊城市| 英吉沙县| 漯河市| 祁阳县| 石柱| 册亨县| 诸暨市| 应用必备| 蒙城县| 怀柔区| 天水市| 迁安市|