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

歡迎光臨散文網(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ū)的評論 (共 條)

分享到微博請遵守國家法律
罗甸县| 阜阳市| 望都县| 榆树市| 沈丘县| 宜州市| 廉江市| 会同县| 马山县| 西平县| 乌兰察布市| 家居| 临潭县| 北川| 弥渡县| 威信县| 丹棱县| 三江| 宜川县| 大邑县| 红安县| 大洼县| 教育| 连云港市| 收藏| 南陵县| 盐池县| 夏津县| SHOW| 大石桥市| 宁强县| 衡东县| 曲周县| 汶川县| 海城市| 纳雍县| 偏关县| 荆门市| 于田县| 阿拉善右旗| 铜梁县|