小米平板内置信箱模式简析

即使是2024年的今天,安卓平板的软件生态仍然强依赖”信箱模式”和”平行视界”这两根救命稻草,后者@御坂初琴小号 大佬的科普文已经做了足够详细的解释,这里就不过多缀述了。

对平行视界感兴趣的可以点击下放链接阅读@御坂初琴小号 的科普文:

【原创教程】MIUI平行视界全探索

https://ybcq.github.io/2023/02/12/%E3%80%90%E5%8E%9F%E5%88%9B%E6%95%99%E7%A8%8B%E3%80%91MIUI%E5%B9%B3%E8%A1%8C%E8%A7%86%E7%95%8C%E5%85%A8%E6%8E%A2%E7%B4%A2/

那么,接下来直接进入正题。

信箱模式,简而言之就是让所有未适配平板的应用,让他强制用横屏的方式来展示,中间一竖条的形式,不至于打开未适配平板的应用需要扭断脖子去看,所以用小米平板打开未适配平板的应用,会发现应用首先是竖着打开,随后被系统强制转为横屏,也是信箱模式最简单的体现。

支付宝下的信箱模式

说说最近很多用小米平板的酷友都遇到过的例子。

可能有很多酷友发现最近酷狗音乐开始主动适配平板了,于是兴高采烈地把酷狗音乐下载下来,发现在小米平板上竟然还是竖直在中间的信箱模式形态。

显然这个问题在于酷狗音乐并没有真正做好平板的适配,不过有些细心的酷友应该能够发现”设置-平板专区-平行窗口”里面再也找不到酷狗音乐的身影,因为当该应用已经主动适配平板后,小米不再为该应用提供平行视界的开关功能,实际上,这个应用有关平行视界的规则已经失效了。

酷狗音乐的平板适配

所以酷狗音乐的问题,本质上已经跟平行视界没有关系了,酷狗触发的实际上是小米内置的信箱模式,这个功能对所有APP都是默认强制启用的。

在OPPO Pad / OPPO Pad 2上也有同样的功能设计,如果有OPPO Pad / OPPO Pad 2的机主可以看看设置里面是不是有个叫“兼容模式”的功能,就是OPPO为自家平板的信箱模式提供的内置开关。

OPPO Pad的兼容模式

理所当然的,小米当然也有同样的功能,不过小米并没有为信箱模式这个功能提供任何UI方面的开关选项,与平行视界一样,通过内置的配置文件随着ROM更新和不定时下发的云控维护这一套信箱模式的规则。

具体路径分别是:

1
2
3
4
# ROM内置规则
/product/etc/fixed_orientation_list.xml
# 云控规则
/data/system/cloudFeature_fixed_orientation_list.xml

小米平板的信箱模式配置文件

这种不受用户控制的配置,加上许多软件开发者都没有大屏适配的经验,在适配平板的时候不一定有按小米提供的平板适配规范去适配,就导致了酷狗音乐这种适配了却又感觉没有适配的问题。

这个问题从小米平板5系列开始就一直存在,直到至今,加上小米对平行视界和信箱模式的云控可能分机型下放的,每个机型的配置甚至不统一(比如米板5的澎湃还没米板6之前MIUI 14的规则新,米板6S Pro的内置规则比其他米板6系列新),老机型的米板会出现墨墨记单词、网易云音乐之类还卡在信箱模式的问题……

虽然小米不提供UI给用户自行配置,不过好在小米特有的对ROOT的包容性(现在小米对BL解锁管得越来越严,可能以后就不再有了),也给爱搞机的酷友提供了一定的折腾空间。

比如LSPosed模块 MaxMiPad 的作者@YifePlayte ,模块内置的”禁用固定屏幕方向作用域”,本质也是通过控制上述提到的fixed_orientation_list.xml,替小米的工程师们为小米平板补齐了一个自由开关某个应用”信箱模式”的UI。(雷军,金凡!!!)

MaxMiPad模块的禁用屏幕固定方向作用域

不过实际上,小米内置的信箱模式,其实还能玩出更多的花样,通过解包分析米板内置的 miui-embedding-window.jar,我拿到了有关小米内置信箱模式的所有配置参数。

1
2
3
4
5
6
7
8
9
10
11
12
13
name="" // 应用包名
disable="false" // 默认为false,是否对该应用禁用内置的信箱模式
isScale="false" // 默认为false,仅适配竖屏的游戏推荐配置为true,是否对该应用的信箱模式根据16:9(类似手机屏幕)的比例进行缩放,同时还会强制缩放页面的内容
relaunch="false" // 默认为false,该应用调用信箱模式后是否需要重载应用,避免应用界面变形
autoUI="" // 默认为空值,没试出这个属性有什么用,可能给自适应布局用的?暂时没试出这个属性的用途
allPortrait="false" // 默认为false,是否让应用所有页面强制以竖屏进行显示,而不是由应用根据Activity的不同情况切换横竖屏
ratio="0" // 默认为0,设置信箱模式下的展示比例,比如16:10,可以写成1.6
skipCompatMode="false" // 默认为false,跳过兼容模式
allowEmbInPortrait="true" // 默认为true,允许信箱模式竖屏时两边区域空白
transparentBar="true" // 默认为true,沉浸式小白条?
adaptCutout="-1" // 默认为-1,自适应摄像头挖孔区域,该配置主要用在Mix Fold系列折叠屏机型(平板没挖孔屏),如果某个应用被前摄挖孔区域挡住了可以配置
isShowDivider="false" // 默认为false,推荐为true,是否支持左右滑动调节,如果应用自适配了平行视界,为它补齐小米的左右滑动调节
supportFullSize=“false” // 默认为"false",推荐配置为"true",是否支持视频全屏

如果需要禁用一个应用的信箱模式,只需要这样配置:

1
2
3
// fixed_orientation_list.xml
<!-- 禁用酷狗音乐的信箱模式 -->
<package name="com.kugou.android" disable="true" />

如果需要禁用一个应用的信箱模式的同时,还需要让它强制横屏显示,可以这样配置:

1
2
3
4
5
6
7
// fixed_orientation_list.xml
<!-- 禁用酷狗音乐的信箱模式 -->
<package name="com.kugou.android" disable="true" />

// embedded_rules_list.xml
<!-- 让酷狗音乐强制以横屏方式显示 -->
<package name="com.kugou.android" fullRule="*" />

如果需要为一个自身已经适配平行视界的应用,提供小米内置的左右滑动调节,可以这样配置:

1
2
3
4
5
6
7
// fixed_orientation_list.xml
<!-- 禁用微博的信箱模式,为其加上左右滑动调节 -->
<package name="com.sina.weibo" disable="true" isShowDivider="true" />

// embedded_rules_list.xml
<!-- 强制让微博以横屏方式显示 -->
<package name="com.kugou.android" fullRule="*" isShowDivider="true" />

如果需要给一个仅适配竖屏的游戏/应用,以类似手机16:9的分辨率,通过信箱模式进行显示,可以这样配置:

1
2
3
// fixed_orientation_list.xml
<!-- 为fasebook配置类似手机比例的信箱模式 -->
<package name="com.facebook.katana" relaunch="false" isScale="true" supportFullSize="true" />

如果为一个没适配前摄挖孔的应用,在Mix Fold 折叠屏上适配,可以这样配置:

1
2
3
// fixed_orientation_list.xml
<!-- 为欢太健康适配前摄挖孔 -->
<package name="com.heytap.health" adaptCutout="1" />

以上就是小米内置信箱模式常用到的适配方式了。


小米平板内置信箱模式简析
https://sothx.com/2024/04/18/xiaomiPadFixedOrientationList/
作者
Sothx
发布于
2024年4月18日
许可协议