一种跨运行环境的用户行为智能融合方法与流程

文档序号:32497496发布日期:2022-12-10 04:45阅读:49来源:国知局

1.本发明属于跨运行环境数据共享技术领域,具体涉及一种跨运行环境的用户行为智能融合方法。


背景技术:

2.linux或windows等桌面操作系统上的安卓兼容环境(下文简称安卓兼容环境)是一种在linux或windows操作系统上运行安卓应用的技术,对丰富操作系统应用生态有着重要的意义。通常情况下,典型的安卓兼容环境主要包括安卓应用显示单元和安卓应用兼容服务,安卓应用显示单元用于在桌面操作系统上实现安卓应用的用户界面,安卓应用兼容服务用于提供运行于桌面操作系统上的安卓兼容环境,通过安卓应用显示单元与安卓应用兼容服务的相互配合实现安卓应用在桌面操作系统上的有效运行,例如,现有安卓兼容环境的实现方案有xdroid,它包括xdroidui和xdroidserver,xdroidui为安卓应用显示单元,xdroidserver为安卓应用兼容服务。
3.目前主流的安卓兼容运行环境针对安卓应用一般都会提供应用快捷方式的功能,基于这些功能当用户在桌面系统上使用安卓应用时通过点击快捷方式即可迅速打开安卓应用。此外,安卓系统7.1版新增了app shortcuts特性,app shortcuts是指长按app图标出现的快捷方式,能够为app的关键功能添加更快捷的入口而无需打开app,点击快捷方式可以访问相应的应用功能,这种快捷方式也可以被拖拽到安卓系统桌面单独放置,成为单独的桌面快捷方式。然而现有安卓兼容环境提供的快捷方式仅能提供打开安卓应用的功能,而无法提供app shortcuts支持的其他功能,导致用户体验不佳。


技术实现要素:

4.有鉴于此,本发明提供了一种跨运行环境的用户行为智能融合方法,能够为运行在桌面系统中的安卓应用提供与安卓系统内相同的应用快捷方式,实现跨运行环境的用户行为的智能融合。
5.本发明提供的一种跨运行环境的用户行为智能融合方法,包括以下步骤:步骤1、当桌面系统监测到设定的应用快捷事件时,解析获取其所对应的应用包名,构建应用快捷方式属性为应用包名和取值为标志值的鼠标坐标位置的鼠标事件,安卓应用显示单元将所述鼠标事件发送至安卓应用兼容服务;所述应用快捷事件为设定的启动安卓应用快捷方式所对应的桌面系统事件;步骤2、当安卓应用兼容服务接收到安卓应用显示单元发送的鼠标事件时,解析鼠标事件,若应用快捷方式属性的取值不为空且鼠标坐标位置的取值为标志值,则执行步骤3;若应用快捷方式属性的取值不为空且鼠标坐标位置的取值为非标志值,则执行步骤8;否则执行标准鼠标事件处理流程,结束本流程;步骤3、安卓应用兼容服务根据应用快捷方式属性的取值获取桌面图标位置,采用桌面图标位置作为鼠标事件的鼠标坐标位置;增大延时时间令安卓兼容环境判断当前鼠标
事件为应用快捷方式事件,以启动执行应用快捷方式事件的处理过程产生应用快捷方式事件;将应用快捷方式属性的取值设置为空;步骤4、在安卓兼容环境根据所述应用快捷方式事件构建toast窗口,在采用surfaceflinger渲染时将所述toast窗口的图像数据传输至安卓应用显示单元;安卓应用显示单元采用所述图像数据生成窗口图片,创建应用窗口作为应用快捷菜单窗口显示所述窗口图片;步骤5、安卓应用显示单元监测应用快捷菜单窗口内的鼠标事件,若产生类型为点击的鼠标事件则执行步骤6,若所述应用快捷菜单窗口内产生类型为按下的鼠标事件则执行步骤7;步骤6、将鼠标事件的鼠标坐标位置转换为安卓兼容环境中toast窗口相应位置的坐标后,再将鼠标事件发送至安卓应用兼容服务,安卓应用兼容服务根据接收到的鼠标事件打开相应的activity,安卓应用显示单元同步显示activity,完成安卓应用的快捷操作,结束本流程;步骤7、安卓应用显示单元保存鼠标按下事件的坐标位置presspos,若产生鼠标释放事件时若鼠标释放事件的坐标位置releasepos与presspos相同则将presspos转换为安卓兼容环境中toast窗口相应位置的坐标,再将鼠标事件发送至安卓应用兼容服务,安卓应用兼容服务根据接收到的鼠标事件打开相应的activity,安卓应用显示单元同步显示activity,完成安卓应用的快捷操作,结束本流程;若releasepos与presspos不同且releasepos位于应用快捷菜单窗口内,则不做响应执行步骤5;若releasepos与presspos不同且releasepos位于应用快捷菜单窗口之外,则将鼠标事件的应用快捷方式属性的取值设置为应用包名、鼠标坐标位置的取值设置为releasepos,再将鼠标事件发送至安卓应用兼容服务,执行步骤2;步骤8、安卓应用兼容服务根据应用快捷方式属性的取值及鼠标坐标位置的取值确定toast中的菜单项;增大延时时间,令安卓兼容环境启动执行菜单项快捷方式创建事件的处理过程产生intent,再将intent的信息发送至安卓应用显示单元,并将应用快捷方式属性的取值设置为空;安卓应用显示单元接收到该intent信息后创建对应的桌面快捷方式,完成安卓应用的快捷操作,结束本流程。
6.进一步地,所述步骤4中所述创建应用窗口作为应用快捷菜单窗口显示所述窗口图片的方式为:在应用快捷事件产生的位置创建尺寸与窗口图片相同的应用窗口作为应用快捷菜单窗口,并采用窗口图片填充应用快捷菜单窗口。
7.进一步地,所述步骤4中所述创建应用窗口作为应用快捷菜单窗口显示所述窗口图片的方式为:在应用快捷事件产生的位置周围查找到满足所述窗口图片完整显示的区域,以该区域作为显示区域创建应用窗口,以该应用窗口作为应用快捷菜单窗口显示所述窗口图片。
8.进一步地,所述步骤1中所述应用快捷事件为鼠标按下时间超过设定时间的鼠标事件。
9.进一步地,所述设定时间为0.5秒。
10.进一步地,所述步骤1中所述应用快捷事件为键盘按键组合事件。
11.进一步地,所述安卓应用兼容服务为xdroidserver及所述安卓应用显示单元为
xdroidui。
12.有益效果:本发明通过在桌面系统中构建启动安卓应用快捷方式对应的应用快捷事件,当用户在桌面系统中执行安卓应用快捷方式的操作时桌面系统将应用快捷事件发送至安卓兼容环境,由安卓兼容环境解析应用快捷事件后将其转换为相应的长按事件后执行相应的处理流程生成快捷方式对应的显示内容,并发送至桌面系统进行显示,由此桌面系统中不需要维护安卓应用快捷方式的相关信息,也不需要对安卓应用快捷方式的用户操作进行响应,适用于任意安卓应用。
具体实施方式
13.下面列举实施例,对本发明进行详细描述。
14.本发明提供的一种跨运行环境的用户行为智能融合方法,具体包括以下步骤:步骤1、在桌面系统中为用户设定启动安卓应用快捷方式的应用快捷事件,当桌面系统监测到当前系统中出现了应用快捷事件时,解析应用快捷事件获取事件所对应的应用包名;设置鼠标事件中的应用快捷方式属性为应用包名和取值为标志值的鼠标坐标位置,安卓应用显示单元将鼠标事件发送至安卓应用兼容服务。
15.具体来说,应用快捷事件可为鼠标按下时间超过设定时间的鼠标事件,也可以是约定的键盘按键组合事件或其他鼠标事件。本发明通过在现有鼠标事件中增加应用快捷方式属性,以及为鼠标坐标位置设定特定取值,标识出与安卓系统的应用快捷方式事件,即shortcuts功能所对应的事件。
16.步骤2、当安卓应用兼容服务接收到安卓应用显示单元发送的鼠标事件时,解析鼠标事件,若应用快捷方式属性的取值不为空且鼠标坐标位置的取值为标志值,则判定当前鼠标事件为应用快捷方式事件,执行步骤3;若应用快捷方式属性的取值不为空且鼠标坐标位置的取值为坐标位置,则判定当前鼠标事件为菜单项快捷方式创建事件,执行步骤8;否则判定为相应的系统标准鼠标事件,执行标准处理流程,结束本流程。
17.步骤3、安卓应用兼容服务根据应用快捷方式属性的取值,获取事件相关安卓应用的桌面图标位置,采用桌面图标位置修改鼠标事件中的鼠标坐标位置;增大设定的延时时间,令安卓兼容环境认为当前事件为应用快捷方式事件,由安卓兼容环境启动执行应用快捷方式事件的处理过程,产生应用快捷方式事件;将应用快捷方式属性的取值设置为空。
18.在安卓系统中采用checkforlongclick方法设置延时任务判断事件是否为长按事件,checkforlongclick的输入参数包括延时的时长、触控点位置坐标x、触控点位置坐标y及长按类型。具体来说,checkforlongclick通过调用postdelayed方法设置延时任务,postdelayed方法用于建立延时任务或设置定时器,postdelayed方法具有runnable对象参数和延时时间参数两个输入参数。本发明中可将延时时间参数设定为1使安卓兼容环境认定当前事件为长按事件。
19.其中,根据应用快捷方式属性的取值获取事件相关安卓应用的桌面图标位置的方式为:在安卓兼容环境,安卓应用兼容服务保存所有已安装的安卓应用的应用包名及桌面图标位置,根据接收到的应用包名查找其对应的桌面图标位置。具体来说,通过修改安卓兼容环境的桌面启动器(launcher),即可实现保存系统中已安装的安卓应用的应用包名及桌
面图标位置。
20.步骤4、安卓兼容环境针对产生的应用快捷方式事件构建toast,标记该toast;在采用surfaceflinger渲染时,将已标记的toast窗口的图像数据传输至安卓应用显示单元;若不满足,则执行步骤8。
21.步骤5、安卓应用显示单元采用接收到的toast窗口的图像数据生成窗口图片,并在应用快捷事件产生的位置创建尺寸与窗口图片相同的应用窗口作为应用快捷菜单窗口,并采用窗口图片填充应用快捷菜单窗口。
22.进一步地,为了确保应用快捷菜单窗口的可用性,本发明将在应用快捷事件产生的位置附近查找能够满足窗口图片完整显示的区域,以确定应用快捷菜单窗口的显示方向,再在该显示方向上创建应用窗口,以避免当应用快捷事件产生的位置靠近显示屏幕边缘时随机创建应用快捷菜单窗口所导致的窗口图片显示不全的问题。
23.步骤6、安卓应用显示单元监测应用快捷菜单窗口内的鼠标事件,若鼠标事件为鼠标点击事件则将鼠标事件的鼠标坐标位置转换为安卓兼容环境中toast窗口相应位置的坐标后,再将鼠标事件发送至安卓应用兼容服务,安卓应用兼容服务根据接收到的鼠标事件打开相应的activity,安卓应用显示单元同步在桌面系统中显示该activity,完成安卓应用的快捷操作,结束本流程;若鼠标事件为鼠标按下事件则执行步骤7。
24.步骤7、安卓应用显示单元保存鼠标按下事件的坐标位置记为presspos;当接收到鼠标释放事件时,保存鼠标释放事件的坐标位置记为releasepos,若releasepos与presspos相同则判定为鼠标点击事件,并将presspos转换为安卓兼容环境中toast窗口相应位置的坐标后将鼠标事件发送至安卓应用兼容服务,安卓应用兼容服务根据接收到的鼠标事件打开相应的activity,安卓应用显示单元同步在桌面系统中显示该activity,完成安卓应用的快捷操作,结束本流程;若releasepos与presspos不同且releasepos位于应用快捷菜单窗口内,则判定为取消鼠标点击,不再响应,执行步骤6;若releasepos与presspos不同且releasepos位于应用快捷菜单窗口之外,则判定为创建快捷方式的鼠标事件,安卓应用显示单元设置鼠标事件中的应用快捷方式属性的取值为应用包名、鼠标坐标位置的取值为releasepos,并将鼠标事件发送至安卓应用兼容服务,执行步骤2。
25.步骤8、安卓应用兼容服务根据应用快捷方式属性的取值,根据鼠标坐标位置的取值确定toast中的菜单项;增大设定的延时时间,令安卓兼容环境认为当前事件为菜单项快捷方式创建事件,由安卓兼容环境启动执行菜单项快捷方式创建事件的处理过程,产生install_shortcut类的intent,将intent信息发送至安卓应用显示单元,并将应用快捷方式属性的取值设置为空;安卓应用显示单元接收到该intent信息后创建对应的桌面快捷方式。
26.安卓系统中为菜单项创建桌面快捷方式时,安卓系统会创建com.android.launcher.action.install_shortcut类型的intent,其中包含快捷方式显示的名称(extra_shortcut_name)、快捷方式显示的图标(icon)及快捷方式所对应的程序主入口(extra_shortcut_intent)。
27.实施例:本实施例采用本发明提供的一种跨运行环境的用户行为智能融合方法,在linux系统中基于xdroid实现了安卓系统提供的应用快捷方式,具体包括以下步骤:
s1、在linux系统中定义启动安卓应用快捷方式的鼠标事件为应用快捷事件,应用快捷事件的产生条件是鼠标按下时间超过0.5秒;当linux系统监测到应用快捷事件时,xdroidui在鼠标事件消息中设置应用快捷方式属性xdroid.openshortcuts的取值为鼠标所点击的图标所对应的应用的packagename,同时将鼠标事件消息中的鼠标坐标位置设置为(-1,-1);xdroidui将修改后的鼠标事件消息发送至xdroidserver。
28.s2、在安卓兼容环境中修改launcher保存系统中已安装的安卓应用的应用包名及桌面图标位置为安卓应用信息。
29.s3、当xdroidserver接收到安卓应用显示单元发送的鼠标事件消息时,通过修改framework/view.java中的checkforlongclick方法,实现当checkforlongclick调用postdelayed前首先判断鼠标事件的应用快捷方式属性xdroid.openshortcuts的取值是否为空,如果不为空且鼠标坐标位置的取值为(-1,-1),则依据当前packagename在安卓应用信息中查找到该安卓应用所对应的桌面图标位置,再将鼠标事件消息中的鼠标坐标位置的取值修改为桌面图标位置,再将postdelayed的第二个参数设置为1,以便安卓兼容环境会认为当前事件已经满足长按事件的要求,从而进入长按事件的处理逻辑中,再将xdroid.openshortcuts值设置为空。
30.通过上述处理,安卓兼容环境内对应的安卓应用的图标会接收到长按事件,安卓兼容环境会生成toast,标记该toast,在surfaceflinger渲染时将该toast的图像数据通过rpc传输到xdroidui。
31.s4、xdroidui根据接收到的图像数据生成图片,并在鼠标长按的区域周围确定出能够完整存放图片大小的方向,在该方向上创建窗口a,窗口a大小与图片大小一致、窗口a内填充图片。由此在linux系统中实现了一个与安卓兼容环境内完全相同的菜单项。
32.s5、xdroidui监听窗口a内的鼠标事件,若监听到的鼠标事件为鼠标点击事件,则将鼠标点击事件的鼠标坐标位置转换为对应的安卓兼容环境内toast的位置坐标,再将鼠标事件消息发送至xdroidserver,xdroidserver会触发相应的功能打开对应的activity,采用现有的机制xdriodui也能同步进入到新的activity中,进而实现直达功能。若监听到的鼠标事件为鼠标拖拽事件,则执行s6。
33.s6、当监测到鼠标按下事件时,xdriodui保存鼠标按下事件的鼠标坐标位置为presspos,继续监测鼠标的行为,当监测到鼠标释放事件时,保存鼠标释放事件的鼠标坐标位置为releasepos,比较presspos与releasepos,若presspos与releasepos相同,则判定为鼠标点击事件,并将presspos转换为安卓兼容环境中toast窗口相应位置的坐标后将鼠标事件发送至安卓应用兼容服务,安卓应用兼容服务根据接收到的鼠标事件打开相应的activity,安卓应用显示单元同步在桌面系统中显示该activity,完成安卓应用的快捷操作;若presspos与releasepos不同且releasepos位于窗口a之内则认为取消鼠标点击,不再响应;若presspos与releasepos不同且releasepos位于窗口a之外则认为是鼠标拖拽事件,即为创建快捷方式的鼠标事件,执行s7。
34.s7、xdroidui在鼠标事件消息中设置应用快捷方式属性xdroid.openshortcuts的取值为鼠标所点击的图标所对应的应用的packagename,同时将鼠标事件消息中的鼠标坐标位置设置为releasepos;xdroidui将修改后的鼠标事件消息发送至xdroidserver。
35.s8、当安卓应用兼容服务接收到安卓应用显示单元发送的鼠标事件时,解析鼠标
事件,若应用快捷方式属性的取值不为空且鼠标坐标位置的取值不是标志值,则判定当前鼠标事件为创建桌面快捷方式对应的事件,依据鼠标坐标位置的取值确定toast中的菜单项,再将postdelayed的第二个参数设置为1,以便安卓兼容环境会认为当前事件已经满足长按事件的要求,由安卓兼容环境启动执行菜单项快捷方式创建事件的处理过程,产生install_shortcut类的intent,将包含extra_shortcut_name名称、icon图标及extra_shortcut_intent对应的程序主入口的intent信息通过rpc发送至xdroidui,最后将xdroid.openshortcuts值设置为空;xdroidui采用接收到的信息在桌面上生成桌面快捷方式,该桌面快捷方式对应的执行程序为xdroidui,参数为
‑‑
action packagename/extra_shortcut_intent。
36.当用户双击该桌面快捷方式时,xdroidui进程解析
‑‑
action参数,将指定的命令发送至xdroidserver,xdroidserver接收到命令和参数后会生成intent以打开对应的extra_shortcut_intent,由此实现了桌面快捷方式的直达功能。
37.综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1