android 14分屏实战之小米su7的3分屏实现方案讨论及线索征集

背景:

hi,粉丝朋友们:
近来有学员朋友询问到了马哥一个问题关于小米su7的分屏实现方案问题,具体小米su7的实现现象如下:
在这里插入图片描述
具体源头视频详细地址:https://www.bilibili.com/video/BV1UK421a7iB

针对小米su7这个分屏明显和手机分屏有一个巨大的差异,那就是手机一般是2分屏,这里是3分屏
在这里插入图片描述
那么如果要你进行小米su7的实现你有什么方案或者想法么?

调研线索征集

调研竞品是如何实现的方案,那当然需要有竞品的设备,可以进行相关的dumpsys,这里因为手上没有su7的车机和汽车可以进行dump,所以暂时没办法进行实际的dump设备查看,即无法分析出小米su7是如何实现的这个3分屏。
这里求助一下广大网友,如果有条件可以对小米su7的车机设备进行dumpsys麻烦联系一下马哥哈,执行一下以下几个dumpsys命令:
让小米su7展示3分屏的画面上进行如下命令执行

1、dumpsys window windows > 1.txt
2、dumpsys activity containers > 2.txt
3、dumspys SurfaceFlinger > 3.txt

既然暂时没有相关的竞品调研资料,那么方案就只能自己先设计啦。

方案设计1

这里因为分屏原生支持了2分屏,所以可以考虑设计成额外添加一个第三屏,这样就可以比较好兼容原来的2分屏
在这里插入图片描述
优点:
比较好兼容原来的2分屏部分逻辑,方案的设计也是和原生2分屏高度吻合
缺点:
可能需要修改较多的原生2分屏的功能逻辑等,对原来代码修改比较大,引入的bug可能较多,而且bug可能排查难度较大

方案设计2

彻底不使用原来的分屏方案,使用自由窗口方案,整体的3分屏,其实就是3个自由窗口显示着

在这里插入图片描述

优点:
不需要考虑兼容影响原生自带的2分屏代码,这样3分屏和2分屏就彻底没啥关系了,相互不影响
缺点:
需要完全0开始实现,要把原来2分屏做的相关交互拖拽动画功能全部重新实现,工作量较大

方案设计3

彻底不使用原来的分屏方案,使用虚拟屏幕方案,3分屏分别对应不同的虚拟屏幕
在这里插入图片描述

优点:
不需要考虑兼容影响原生自带的2分屏代码,这样3分屏和2分屏就彻底没啥关系了,相互不影响,而且属于虚拟屏幕展示,所以和主屏幕基本上耦合性更加小
缺点:

1、需要完全0开始实现,要把原来2分屏做的相关交互拖拽动画功能全部重新实现,工作量较大
2、而且因为多个虚拟屏幕需要渲染一般都是gpu方式渲染,会给整个渲染带来性能影响,因为每次sf的vsync工作需要多渲染3个虚拟屏幕

好了暂时想到就是上面3个方案,其实还是比较推荐方案1,毕竟交互动画体验可以较多的复用2分屏,但是复用也意味着修改较多原来的逻辑,这个暂时还没有时间实战实现这个功能,各位学员们有兴趣可以去尝试实现一下。

更多framework技术干货,请关注“千里马学框架”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值