Android freeform多窗口模式和Desktop电脑模式使能

Android freeform多窗口模式和Desktop电脑模式使能

相关code:
DecorView
DecorCaptionView
ActivityTaskManagerService 即ATMS
WindowManagerService 即WMS
TaskLaunchParamsModifier
TaskPositioner 
TaskPositioningController
Task ActivityRecord Activity
PhoneWindow LocalDisplayAdapter
等等

使能freeform:
1, 配置config_freeformWindowManagement为true
adb shell cmd overlay lookup android android:bool/config_freeformWindowManagement
2,使能 android.software.freeform_window_management.xml 功能
adb shell pm list features // 检查功能是否开启

freeform bounds路径:
调试:
/data/system_ce/0/launch_params/ 里面的xml文件,
需要通过abx2xml转换一下才能readable

abx2xml -i xxx.xml
usage: abx2xml [-i] input [output]
usage: xml2abx [-i] input [output]
Converts between human-readable XML and Android Binary XML

adb shell settings get global force_desktop_mode_on_external_displays
adb shell settings put global force_desktop_mode_on_external_displays 1
adb shell settings put global force_desktop_mode_on_external_displays 0

把开发者选项中的"启用可自由调整的窗口"功能打开,
然后应用App就可以进入freeform自由多窗口模式了。

把开发者选项中的"强制使用桌面模式"功能打开,
相当于把WindowManagerService中的mForceDesktopModeOnExternalDisplays设置为true
手机或pad通过type c转HDMI接口连接到外接显示器上,
就可以进入Desktop电脑模式了。

你可能感兴趣的:(Android,Framework,android)