aosp14的分屏接口ISplitScreen接口获取方式更新-学员疑问答疑

背景:

有学员朋友在学习马哥的分屏pip自由窗口专题时候,做相关分屏做小桌面项目时候,因为原来课程版本是基于android 13进行的讲解的,但是现在公司已经开始逐渐进行相关的android 14的适配了,但是android 14这块相比android 13还是有一些差异,适配起来有点难度,刚好借此机会给大家分享一下。
在这里插入图片描述分屏小桌面最后成果:
在这里插入图片描述

差异核心点

aosp13版本上
这个地方是有直接的splitscreen可以获取,所以当时使用的是splitscreen
在这里插入图片描述
在这里插入图片描述后面在SplitScreen加入了相关的接口

在这里插入图片描述

aosp14版本上
可以看出和aosp13版本确实差异有点大,已经直接看不到对应的SplitScreen相关的接口了
在这里插入图片描述
那么如何进行修改呢?

aosp14适配方案思路

切入点:
目标就是为了可以调用ISplitScreen相关接口,aosp13的SplitScreen其实本质也是调用的ISplitScreenImpl的接口
在这里插入图片描述
ISplitScreenImpl实际是ISplitScreen的aidl的服务端,所以目的是用来提供给桌面等可以跨进程通讯用的。那么桌面本身可以启动分屏,本质就是因为传递了相关的ISplitScreen的binder对象给了桌面,所以顺着找这个ISplitScreen的binder实体传递思路寻找到,其实如下代码进行binder对象传递:
都是基于aosp14代码
frameworks/base/libs/WindowManager/Shell/src/com/android/wm/shell/sysui/ShellController.java
在这里插入图片描述
可以看到是在这里进行的putBinder对象,放到了Bundle传递到了launcher进行
在这里插入图片描述

对于ISplitScreen相关binder的key是如下:
在这里插入图片描述
知道了这个key然后代码中grep结果如下:
在这里插入图片描述看看这个方法:
在这里插入图片描述

再看看createExternalInterface
在这里插入图片描述
哈哈是不是看到和aosp13版本一样的对象了。
再看看addExternalInterface
在这里插入图片描述
明显看出了addExternalInterface就是前面源头

在这里插入图片描述到这里就已经基本上找到了可以获取ISplitScreen接口方法了

解决获取ISplitScreen接口案例

只需要在params填入数据完成后在获取既可以
在这里插入图片描述
打印结果如下:
在这里插入图片描述
正常获取了接口,接下来也可以通过ISplitScreen接口直接进行接口调用

在这里插入图片描述
更多framework实战干货,请关注下面“千里马学框架”

08-16
分屏功能在不同的软件和操作系统中有着多种实现方式,下面将分别介绍Windows 10和Vim编辑器中的分屏方法。 ### Windows 10 分屏功能 Windows 10 提供了直观的分屏体验,用户可以通过拖动窗口到屏幕边缘来快速调整布局。具体来说,可以利用屏幕边缘的热区来实现不同比例的分屏效果: - **1/2 分屏**:将窗口拖动到屏幕的左侧或右侧边缘,该窗口会自动调整为占据屏幕一半的空间。 - **1/4 分屏**:进一步将窗口拖动到屏幕四个角落之一,窗口将会占据屏幕四分之一的空间,这样可以在同一屏幕上同时查看四个不同的应用程序或文档[^1]。 此外,也可以通过快捷键 `Win + 左箭头` 或 `Win + 右箭头` 快速将活动窗口移动到屏幕的左侧或右侧,实现1/2分屏的效果。对于1/4分屏,则可以在按住 `Win` 键的同时,连续两次按下方向键(例如 `Win + 左箭头` 两次)来选择屏幕角落的位置。 ### Vim 编辑器 分屏功能 Vim 是一个高度可定制的文本编辑器,它提供了强大的分屏功能,允许用户在同一时间查看文件的不同部分或者多个文件。以下是几种常用的分屏操作: - **水平分割**:使用 `:sp` 命令后跟文件名来水平分割当前窗口并打开指定文件;使用 `Ctrl+W s` 可以在不指定新文件的情况下水平分割当前窗口- **垂直分割**:使用 `:vsp` 命令后跟文件名来垂直分割当前窗口并打开指定文件;使用 `Ctrl+W v` 可以在不指定新文件的情况下垂直分割当前窗口- **关闭分屏**:使用 `Ctrl+W c` 关闭当前分屏窗口;如果这是最后一个窗口,则会退出 Vim。 - **在分屏之间切换**:使用 `Ctrl+W` 加方向键(h, j, k, l)可以方便地在各个分屏之间切换焦点。例如,`Ctrl+W l` 将焦点移动到右侧的分屏,而 `Ctrl+W k` 则将焦点移动到上方的分屏[^2]。 值得注意的是,当分屏布局变得复杂时,某些操作可能会导致意外的行为,因此了解如何有效地管理和导航这些分屏是非常重要的。例如,使用 `Ctrl+W _` 和 `Ctrl+W |` 可以调整水平和垂直分屏的大小,使得工作区更加灵活适应不同的编辑需求[^3]。 ### 示例代码 以下是一些基本的 Vim 分屏操作示例: ```vim :sp file1.txt " 水平分割当前窗口,并打开 file1.txt :vsp file2.txt " 垂直分割当前窗口,并打开 file2.txt Ctrl+W s " 水平分割当前窗口 Ctrl+W v " 垂直分割当前窗口 Ctrl+W c " 关闭当前分屏窗口 Ctrl+W w " 在所有打开的分屏窗口间循环切换 Ctrl+W h/j/k/l " 移动光标到左边/下边/上边/右边的分屏窗口 ``` 以上就是关于 Windows 10 和 Vim 中分屏功能的基本介绍和使用方法。希望这些信息能够帮助您更好地利用这些工具提高工作效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值