查找5个搜索引擎作弊的网站,门户网站做公众号的好处,郑州设计公司,wordpress 5.5客户端背景#xff1a;
有学员朋友在学习马哥的分屏pip自由窗口专题时候#xff0c;做相关分屏做小桌面项目时候#xff0c;因为原来课程版本是基于android 13进行的讲解的#xff0c;但是现在公司已经开始逐渐进行相关的android 14的适配了#xff0c;但是android 14这块相比a…背景
有学员朋友在学习马哥的分屏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接口直接进行接口调用 本文章更多详细代码和资料需要购买课程获取 halperfettosurfaceflinger https://mp.weixin.qq.com/s/LbVLnu1udqExHVKxd74ILg
私聊作者v(androidframework007)
其他课程七件套专题 点击这里 https://mp.weixin.qq.com/s/Qv8zjgQ0CkalKmvi8tMGaw
视频试看 https://www.bilibili.com/video/BV1wc41117L4/