五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

分享到微博請遵守國家法律
隆昌县| 贡觉县| 淄博市| 九台市| 阿勒泰市| 安多县| 同德县| 方山县| 文水县| 宣化县| 淮北市| 洪洞县| 正镶白旗| 康马县| 营山县| 北海市| 四川省| 东乡县| 霸州市| 抚松县| 错那县| 峨山| 崇阳县| 武夷山市| 达州市| 武城县| 宣化县| 桦川县| 西乡县| 哈巴河县| 宁陕县| 甘肃省| 睢宁县| 五家渠市| 阿图什市| 吉木乃县| 霍林郭勒市| 遂川县| 陇南市| 定边县| 方山县|