一种跨运行环境的多窗口融合显示方法与流程

文档序号:34626330发布日期:2023-06-29 13:43阅读:36来源:国知局

本发明属于移动应用开发,具体涉及一种跨运行环境的多窗口融合显示方法。


背景技术:

1、为了便于用户同时操作多个应用程序,安卓系统从7.0版开始引入了多窗口模式,即允许用户在同一屏幕中同时打开多个应用程序建立多个窗口。然而安卓系统的多窗口模式不会改变安卓应用的生命周期,同一时刻仅有一个处于活跃状态保持窗口刷新的安卓应用,其他窗口内的安卓应用虽然可见但其实际处于暂停状态,窗口也暂停刷新,同时大多数安卓应用仅为单窗口模式开发实现。此外,当多个窗口之间存在重叠区域时,窗口安卓应用的刷新会出现错误,例如,重叠区域可能出现模糊等。由此可见,安卓系统提供的多窗口模式与桌面环境中的多窗口之间使用体验差异很大。

2、综上所述,当在桌面系统中通过安卓端使用安卓应用时,例如,通过运行在桌面系统中的安卓应用显示单元xdroidui和运行在安卓端的安卓应用兼容服务xdroidservice配合实现安卓应用在桌面系统中的使用,系统提供的多窗口模式将无法支持安卓应用在桌面系统中以桌面系统的多窗口方式进行显示,这为用户的使用带来了不便。


技术实现思路

1、有鉴于此,本发明提供了一种跨运行环境的多窗口融合显示方法,能够实现安卓应用在桌面系统中以桌面系统的多窗口方式显示。

2、本发明提供的一种跨运行环境的多窗口融合显示方法,具体包括以下步骤:

3、当安卓端内启动安卓应用时向桌面系统端发送包含安卓应用包名的新建任务消息;

4、当安卓端接收到新建桌面窗口消息时,根据包名建立帧缓冲、drm缓冲、taskid及桌面窗口的可见范围与安卓应用的映射关系,创建安卓应用相关图层时为其增加taskid标识,再执行安卓端的图层更新操作;

5、当安卓端接收到第一桌面窗口改变消息时,根据消息内容调整安卓应用窗口,记录从收到消息到安卓应用窗口调整完毕的时间作为响应时间,再将响应时间发送至桌面系统端;当安卓端接收到第二桌面窗口改变消息时,根据消息内容调整安卓应用窗口;

6、当安卓应用退出时安卓端向桌面系统端发送包含taskid的应用退出消息;

7、当桌面系统端接收到新建任务消息时,根据包名获取安卓应用的taskid,创建安卓应用的桌面窗口,建立桌面窗口与taskid的映射关系;获取窗口管理器中桌面窗口对应的帧缓冲及drm缓冲,再将包含包名、帧缓冲、drm缓冲、taskid及桌面窗口的可见范围的新建桌面窗口消息发送至安卓端;

8、当安卓应用的桌面窗口发生改变时,若为第一次改变则桌面系统端向安卓端发送第一桌面窗口改变消息,完成桌面窗口对应的调整,记录安卓端返回的响应时间及当前cpu负载;否则记录当前cpu负载,若当前cpu负载低于前次cpu负载且差值大于阈值则发送第一桌面窗口改变消息,并延迟前次的响应时间后完成桌面窗口的调整,记录安卓端返回的响应时间;若当前cpu负载不低于前次cpu负载或低于前次cpu负载且差值不大于阈值,则发送第二桌面窗口改变消息,并延迟前次的响应时间后完成桌面窗口的调整;

9、当桌面系统端接收到应用退出消息时,根据taskid关闭桌面窗口,结束任务并释放帧缓冲及drm缓冲;

10、其中,第一桌面窗口改变消息包括桌面窗口的大小、位置、事件及获取响应时间标识,第二桌面窗口改变消息包括桌面窗口的大小、位置及事件。

11、进一步地,所述事件包括窗口的activate事件及deactivate事件,事件中包含安卓应用桌面窗口的z-order。

12、进一步地,所述根据消息内容调整安卓应用窗口的方式为:

13、步骤3.1、安卓端根据消息中桌面窗口的大小、位置及z-order重新计算桌面窗口的可见范围;

14、步骤3.2、安卓端将与可见范围存在交集的图层设置为dirty;

15、步骤3.3、执行图层更新操作完成安卓应用窗口的调整。

16、进一步地,所述可见范围以多个矩形的方式表示,矩形的位置采用矩形左上角顶点的桌面系统端坐标表示。

17、进一步地,所述图层更新操作的方式为:

18、步骤5.1、若待更新图层为dirty则将待更新图层加入待刷新图层集合;否则,若待更新图层与其桌面窗口的可见范围存在交集则将待更新图层加入待刷新图层集合,若不存在则删除该待更新图层;按照taskid将待刷新图层集合中的图层分成多个图层分组;

19、步骤5.2、将图层分组内的图层合成为合成图层,若图层分组中存在定义了透明度的图层,则在渲染合成图层时设置透明度参数的取值,再将合成图层写入帧缓冲,若写入错误则执行步骤5.3,否则完成将安卓应用的一帧窗口数据渲染到桌面系统端的桌面窗口执行步骤5.4;否则在渲染合成图层时将透明度参数的取值设置为0xff,再将合成图层写入帧缓冲,若写入错误则执行步骤5.3,否则完成将安卓应用的一帧窗口数据渲染到桌面系统端的桌面窗口执行步骤5.4;

20、步骤5.3、获取drm缓冲的图形内存格式,按照图形内存格式重新将图层分组内的图层合成为合成图层,再将合成图层写入drm缓冲,完成将安卓应用的一帧窗口数据渲染到桌面系统端的桌面窗口;

21、步骤5.4、若待刷新图层集合中的所有图层均已处理完毕,则结束本流程;否则执行步骤5.2。

22、进一步地,所述桌面系统端为运行xdroidui的linux系统,安卓端内运行xdroidservice。

23、进一步地,所述桌面系统端向安卓端发送第一桌面窗口改变消息的方式为:

24、当xdroidui收到桌面系统端发送的桌面窗口大小改变消息、位置改变消息或激活事件时,将事件内容发送至xdroidservice。

25、进一步地,所述安卓端通过rpc方式向桌面系统端发送消息。

26、有益效果

27、本发明通过修改安卓系统框架建立了安卓应用运行全过程中安卓端与桌面系统端之间的消息机制,实现了安卓应用能够以桌面系统端应用的方式进行显示与操作,所有安卓应用桌面窗口能够同时独立刷新,且在安卓应用桌面窗口部分重叠时也能够正常显示,有效提升了用户在跨运行环境下的安卓应用使用体验。



技术特征:

1.一种跨运行环境的多窗口融合显示方法,其特征在于,具体包括以下步骤:

2.根据权利要求1所述的多窗口融合显示方法,其特征在于,所述事件包括窗口的activate事件及deactivate事件,事件中包含安卓应用桌面窗口的z-order。

3.根据权利要求2所述的多窗口融合显示方法,其特征在于,所述根据消息内容调整安卓应用窗口的方式为:

4.根据权利要求3所述的多窗口融合显示方法,其特征在于,所述可见范围以多个矩形的方式表示,矩形的位置采用矩形左上角顶点的桌面系统端坐标表示。

5.根据权利要求3所述的多窗口融合显示方法,其特征在于,所述图层更新操作的方式为:

6.根据权利要求1所述的多窗口融合显示方法,其特征在于,所述桌面系统端为运行xdroidui的linux系统,安卓端内运行xdroidservice。

7.根据权利要求6所述的多窗口融合显示方法,其特征在于,所述桌面系统端向安卓端发送第一桌面窗口改变消息的方式为:

8.根据权利要求1所述的多窗口融合显示方法,其特征在于,所述安卓端通过rpc方式向桌面系统端发送消息。


技术总结
本发明公开了一种跨运行环境的多窗口融合显示方法,通过修改安卓系统框架建立了安卓应用运行全过程中安卓端与桌面系统端之间的消息机制,实现了安卓应用以桌面系统端应用的方式显示与操作,所有安卓应用桌面窗口能够同时独立刷新,且在安卓应用桌面窗口部分重叠时也能够正常显示,有效提升了用户在跨运行环境下的安卓应用使用体验。

技术研发人员:温研
受保护的技术使用者:北京麟卓信息科技有限公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1