CN119166381A - 用于应用接续的方法及终端设备 - Google Patents
用于应用接续的方法及终端设备 Download PDFInfo
- Publication number
- CN119166381A CN119166381A CN202411003271.2A CN202411003271A CN119166381A CN 119166381 A CN119166381 A CN 119166381A CN 202411003271 A CN202411003271 A CN 202411003271A CN 119166381 A CN119166381 A CN 119166381A
- Authority
- CN
- China
- Prior art keywords
- application
- connection
- communication
- terminal device
- manager
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04817—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- Telephone Function (AREA)
Abstract
本申请提供了一种用于应用接续的方法及终端设备,有利于为终端设备灵活分配通信资源,以实现应用和电脑管家中的接续服务之间的通信。该方法包括:响应于用户点击第一应用的图标的操作,获取共享内存中目标比特位的标识,目标比特位是值为第一预设值的比特位,第一预设值表示目标比特位对应的通信通道未被使用;基于目标比特位的标识,确定目标比特位对应的通信标识,通信标识指示用于第一应用和电脑管家通信的至少一个通信通道;基于该至少一个通信通道实现第一应用与电脑管家之间的数据传输。
Description
本申请为于2022年09月28日提交中国专利局、申请号为202211197093.2、申请名称为“用于应用接续的方法及终端设备”的中国专利申请的分案申请,原申请的全部内容通过引用结合在本申请中。
技术领域
本申请涉及终端领域,尤其涉及一种用于应用接续的方法及终端设备。
背景技术
目前,跨设备之间的应用接续将成为后续多设备场景中的重要功能。其中,应用接续可以理解为,当用户在个人笔记本(personal computer,PC)上使用某一应用时,用户可以在符合接续条件的手机中接续该应用的使用状态,并继续在手机上使用该应用。
对于应用接续场景下的PC而言,为实现将应用的使用状态同步至其他设备,或者将其他设备的应用的使用状态同步至PC的需求,PC需要对外提供接续框架和软件开发工具包(software development kit,SDK)以满足此需求。其中,接续框架是为应用提供统一的应用状态同步框架,应用需要通过SDK接入接续框架,实现与接续框架中的接续服务的数据传输,而接续服务以电脑管家为依托为应用提供对外服务能力。在PC中的应用和电脑管家启动之后,应用和电脑管家运行在两个不同的进程,应用需要通过进程间通信(interprocess communication,IPC)和电脑管家中的接续服务通信。
因此,如何在PC侧为应用分配IPC通信资源,以实现应用和电脑管家中的接续服务之间的通信,是一个亟待解决的问题。
发明内容
本申请提供一种用于应用接续的方法及终端设备,有利于为终端设备灵活分配IPC通信资源,以实现应用和电脑管家中的接续服务之间的通信。
第一方面,提供了一种用于应用接续的方法,应用于终端设备,该终端设备为应用接续的发送端或者接收端,该终端设备安装有第一应用和电脑管家,该方法包括:响应于用户点击第一应用的图标的操作,获取共享内存中目标比特位的标识,目标比特位是值为第一预设值的比特位,第一预设值表示目标比特位对应的通信通道未被使用;基于目标比特位的标识,确定目标比特位对应的通信标识,通信标识指示用于第一应用和电脑管家通信的至少一个通信通道;基于至少一个通信通道实现第一应用与电脑管家之间的数据传输。
在本申请中,电脑管家中集成有接续服务管理器(下文中也可简称为接续服务),第一应用与电脑管家通信,包括第一应用的接续服务SDK与电脑管家中的接续服务之间的通信。在第一应用和电脑管家启动之后,接续服务在电脑管家中运行,第一应用作为独立进程接入SDK后运行在三方应用中。因此,第一应用需要和电脑管家中的接续服务通过接续服务SDK进行跨进程通信。
在一些场景下,可能会有至少一个应用接入接续服务以期实现应用接续,在这种场景下,电脑管家需要具备与所有接入接续服务的应用通过IPC通信的能力。在本申请提供的技术方案中,针对接入接续服务的至少一个应用中的第一应用,终端设备可以获取共享内存中的目标比特位的标识,基于目标比特位的标识得到对应的通信标识,为第一应用分配与通信标识对应的至少一个通信通道,以使第一应用通过IPC通信资源与电脑管家中的接续服务进行通信。这样,通过将IPC通信和共享内存结合,终端设备可以灵活地为所有接入接续服务的应用分配IPC通信资源,实现应用接续场景下应用和电脑管家之间的数据传输。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:基于对目标比特位的标识的获取,将目标比特位的值从第一预设值修改为第二预设值,第二预设值表示目标比特位对应的通信通道已被使用。
在本申请中,终端设备在确定目标比特位之后,可以将目标比特位的值从第一预设值修改为第二预设值,以标识目标比特位对应的通信通道已被申请或已被使用。这样当再有新的应用接入接续服务之后,终端设备可以为该新的应用申请其他的值为第一预设值的比特位对应的通信通道,实现IPC通信资源的灵活分配。
可选地,终端设备可以响应于用户点击第一应用的图标的操作,对共享内存中的多个比特位的值进行检测,确定多个比特位中的值为第一预设值的目标比特位。在确定目标比特位之后,终端设备可以获取目标比特位的标识。并且,在确定目标比特位之后,终端设备可以将目标比特位的值从第一预设值修改为第二预设值。其中,终端设备获取目标比特位的标识与将目标比特位的值从第一预设值修改为第二预设值执行顺序不作限定。
结合第一方面,在第一方面的某些实现方式中,基于至少一个通信通道实现第一应用与所述电脑管家之间的数据传输,包括:基于至少一个通信通道中的第一通信通道,注册接续服务和回调。
在本申请中,终端设备为第一应用分配的至少一个通信通道中的每个通信通道可用户传输不同类型的消息。其中,第一通信通道用于第一应用注册接续服务和回调。这样使得应用接续场景下的数据传输更加便捷高效。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:在第一应用的进程退出的情况下,将目标比特位的值从第二预设值修改为第一预设值。
在本申请中,第一应用的进程退出,包括第一应用的进程正常退出和异常退出两种情况。在第一应用的进程退出后,终端设备可以将目标比特位的值从第二预设值修改为第一预设值,释放被第一应用占用的通信通道,这样在IPC通信资源有限的情况下,其他的应用便可以使用目标比特位对应的通信通道,提高了资源利用率。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:基于该至少一个通信通道中的第二通信通道,解除注册接续服务和回调;基于对接续服务和回调的解除注册,确定第一应用的进程退出。
在本申请中,在第一应用正常退出的情况下,终端设备可以通过为第一应用分配的第二通信通道解除注册接续服务和回调。当终端设备中的接续服务接收到解除注册接续服务和回调的消息之后,可以确定第一应用的进程正常退出,进而终端设备可以释放为第一应用分配的通信通道。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:在成功注册接续服务和回调之后,定时查询第一应用的进程是否退出。
在本申请中,终端设备通过定时查询第一应用的进程是否退出,以此来及时监测第一应用的进程的状态。
示例性地,终端设备通过电脑管家定时向第一应用发送保活包,若第一应用的进程还在运行,则电脑管家可以成功发送保活包;若第一应用的进程异常退出,则电脑管家无法成功发送保活包。终端设备根据电脑管家是否成功发送保活包来确定第一应用的进程是否已经退出。
结合第一方面,在第一方面的某些实现方式中,终端设备为应用接续的发送端;在第一应用先于电脑管家启动,或电脑管家的进程异常退出的情况下,该方法还包括:广播通信回连消息,通信回连消息用于指示第一应用连接电脑管家。基于该至少一个通信通道中的第一通信通道,注册接续服务和回调,包括:在基于至少一个通信通道中的第三通信通道接收到通信回连消息的情况下,基于第一通信通道,注册接续服务和回调。
在本申请中,电脑管家的接续服务在启动的过程中,可以广播通信回连消息,第一应用在第三通信通道接收到通信回连消息之后,可以确定电脑管家已启动,可以正常连接。因此第一应用可以基于第一通信通道,注册接续服务和回调。
结合第一方面,在第一方面的某些实现方式中,终端设备为应用接续的接收端;所述响应于用户点击所述第一应用的图标的操作,获取共享内存中目标比特位的标识,包括:响应于用户点击位于终端设备的任务栏的第一应用的图标的操作,获取共享内存中目标比特位的标识。
在本申请中,作为应用接续接收端,终端设备的任务栏可以显示接续通知,接续通知可以以第一应用的图标形式显示在任务栏。这样,用户可以点击任务栏中的第一应用的图标以启动作为接收端的终端设备上的第一应用,进而为第一应用申请用于与电脑管家通信的通信通道,以使第一应用接续其他设备上的第一应用的接续数据,例如,备忘录的编辑内容、音频数据等。
结合第一方面,在第一方面的某些实现方式中,终端设备为应用接续的发送端;响应于用户点击第一应用的图标的操作,获取共享内存中目标比特位的标识,包括:响应于用户点击位于终端设备的桌面或任务栏的第一应用的图标的操作,获取共享内存中目标比特位的标识。
在本申请中,作为应用接续的发送端,终端设备可以在桌面或者任务栏显示第一应用的图标。当用户点击(例如,双击)桌面或者任务栏中的第一应用的图标之后,终端设备可以启动作为发送端的终端设备上的第一应用,并在第一应用中进行相应的操作,例如,编辑备忘录、播放音乐等。
第二方面,提供一种终端设备,包括用于执行上述第一方面中任一种可能的实现方式中的方法的获取模块和处理模块。
其中,获取模块用于:响应于用户点击所述第一应用的图标的操作,获取共享内存中目标比特位的标识,所述目标比特位是值为第一预设值的比特位,所述第一预设值表示所述目标比特位对应的通信通道未被使用。处理模块用于:基于目标比特位的标识,确定目标比特位对应的通信标识,通信标识指示用于第一应用和电脑管家通信的至少一个通信通道;基于所述至少一个通信通道实现第一应用与电脑管家之间的数据传输。
结合第二方面,在第二方面的某些实现方式中,处理模块用于:基于对目标比特位的标识的获取,将目标比特位的值从第一预设值修改为第二预设值,第二预设值表示目标比特位对应的通信通道已被使用。
结合第二方面,在第二方面的某些实现方式中,处理模块用于:基于至少一个通信通道中的第一通信通道,注册接续服务和回调。
结合第二方面,在第二方面的某些实现方式中,处理模块用于:在第一应用的进程退出的情况下,将目标比特位的值从第二预设值修改为第一预设值。
结合第二方面,在第二方面的某些实现方式中,处理模块用于:基于该至少一个通信通道中的第二通信通道,解除注册接续服务和回调;以及,基于对接续服务和回调的解除注册,确定第一应用的进程退出。
结合第二方面,在第二方面的某些实现方式中,处理模块用于:在成功注册接续服务和回调之后,定时查询第一应用的进程是否退出。
结合第二方面,在第二方面的某些实现方式中,终端设备为应用接续的发送端。在第一应用先于电脑管家启动,或电脑管家的进程异常退出的情况下,处理模块用于:广播通信回连消息,通信回连消息用于指示第一应用连接电脑管家;以及,在基于至少一个通信通道中的第三通信通道接收到通信回连消息的情况下,基于第一通信通道,注册接续服务和回调。
结合第二方面,在第二方面的某些实现方式中,终端设备为应用接续的接收端。处理模块用于:响应于用户点击位于终端设备的任务栏的第一应用的图标的操作,获取共享内存中目标比特位的标识。
结合第二方面,在第二方面的某些实现方式中,终端设备为应用接续的发送端。处理模块用于:响应于用户点击位于终端设备的桌面或任务栏的第一应用的图标的操作,获取共享内存中目标比特位的标识。
第三方面,提供了另一种终端设备,包括处理器和存储器,该处理器与存储器耦合,该存储器可用于存储计算机程序,该处理器可用于调用并执行存储器中的计算机程序,以实现上述第一方面中任一种可能实现方式中的方法。
第四方面,提供了一种处理器,包括:输入电路、输出电路和处理电路。处理电路用于通过输入电路接收信号,并通过输出电路发射信号,使得处理器执行上述第一方面中任一种可能实现方式中的方法。
在具体实现过程中,上述处理器可以为芯片,输入电路可以为输入管脚,输出电路可以为输出管脚,处理电路可以为晶体管、门电路、触发器和各种逻辑电路等。输入电路所接收的输入的信号可以是由例如但不限于接收器接收并输入的,输出电路所输出的信号可以是例如但不限于输出给发射器并由发射器发射的,且输入电路和输出电路可以是同一电路,该电路在不同的时刻分别用作输入电路和输出电路。本申请对处理器及各种电路的具体实现方式不作限制。
第五方面,提供了一种处理装置,包括处理器和存储器。该处理器用于读取存储器中存储的指令,并可通过接收器接收信号,通过发射器发射信号,以执行上述第一方面中任一种可能实现方式中的方法。
可选地,处理器为一个或多个,存储器为一个或多个。
可选地,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型以及存储器与处理器的设置方式不作限制。
应理解,相关的数据交互过程例如发送指示信息可以为从处理器输出指示信息的过程,接收能力信息可以为处理器接收输入能力信息的过程。具体地,处理输出的数据可以输出给发射器,处理器接收的输入数据可以来自接收器。其中,发射器和接收器可以统称为收发器。
上述第五方面中的处理装置可以是一个芯片,该处理器可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
第六方面,提供了一种计算机程序产品,计算机程序产品包括:计算机程序代码,当该计算机程序代码被运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
第七方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,当该计算机程序被运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
附图说明
图1是本申请实施例提供的一种场景示意图;
图2是本申请实施例提供的一种应用接续的界面示意图;
图3是本申请实施例适用的一种终端设备的结构示意图;
图4是本申请实施例适用的终端设备的一种软件结构框图;
图5是本申请实施例适用的终端设备的另一种软件结构框图;
图6是本申请实施例提供的一种应用接续方法的示意性流程图;
图7是本申请实施例提供的一种共享内存的通信原理的示意图;
图8是本申请实施例提供的一种申请通信通道的示意图;
图9是本申请实施例提供的一种用于应用接续的方法的示意性流程图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
为了便于清楚描述本申请实施例的技术方案,以下对本申请实施例中所涉及的部分术语和技术进行简单介绍:
1、接续策略:接续策略用于确定可接续的设备,各应用程序可以对应各自的接续策略。示例性的,应用程序的接续策略可以与下述的一项或多项字段有关:
应用程序支持的设备类型、安卓(Android)平台的可接续应用包名、windows平台的可接续进程名、浏览器启动参数、支持接续应用的最小版本号与最小版本等。
接续策略可以对应有用于标识接续策略状态的标志位。例如,标志位为0可以表示不支持接续,标志位为1可以表示应用接续,标志位为3可以表示浏览器接续。可以理解的是,标志位的具体值可以任意设置,能够区分不同的状态即可,本申请实施例不作具体限定。
2、其他术语
在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一终端设备和第二终端设备是为了区分不同的终端设备,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
此外,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b和c中的至少一项(个),可以表示:a,或b,或c,或a和b,或a和c,或b和c,或a、b和c,其中a,b,c可以是单个,也可以是多个。
随着终端技术的发展,用户往往需要在多个终端设备之间进行内容切换,例如,当用户在手机的备忘录里进行内容编辑时,由于手机屏幕较小,此时用户可能希望使用平板电脑或者其他屏幕较大的设备继续编辑备忘录里的内容。
在上述手机内容切换到平板电脑的场景中,当用户想要在切换平板电脑后继续编辑之前在手机中编辑的备忘录内容时,通常需要找到并打开平板电脑中的备忘录,重新编辑手机中的备忘录内容,或者,需要将手机中的备忘录内容通过媒介拷贝到平板电脑上,例如可以通过聊天工具、或者U盘等媒介进行内容的复制粘贴,将手机中的内容切换到平板电脑上。但是上述操作使得设备间的内容切换过程较为繁琐,耗时较长。
终端技术的不断发展带动了设备间的互联互通的可能性,而跨设备之间的应用接续也将成为后续多设备场景中的重要功能。其中,应用接续可以理解为,当用户在设备A上使用某一应用时,用户可以在符合接续条件的设备B中接续该应用的使用状态,并继续使用该应用。这种方式使得设备间的内容切换更加简单高效。
图1是本申请实施例提供的一种场景示意图。该场景示出了个人笔记本(personalcomputer,PC)和手机。其中,PC采用Windows系统,手机采用安卓(Android)系统。用户可以使用手机接续PC中的应用呈现的内容,也可以使用PC接续手机中的应用呈现的内容。
可选地,该场景中还可以包括更多的终端设备,例如大屏、平板电脑等。示例性地,用户可以利用手机、大屏、平板电脑中的至少一个设备接续PC中应用呈现的内容。
下面结合图2,以用户利用PC上的备忘录编辑文字,并且用户想要通过手机继续在备忘录中编辑文字为例进行介绍。
图2是本申请实施例提供的一种应用接续的界面示意图。
参见图2中的A界面,用户在PC上打开备忘录并编辑内容时,PC对外广播接续通知,手机接收到接续通知之后,参见图2中的B界面,手机通过dock栏(或者通过多任务中心)提示用户具有可接续任务,其中,dock栏可以是手机、PC等设备的屏幕下方的一个固定的界面,用户可以将比较常用的应用放在dock栏。若用户有更换设备继续编辑内容的需求,用户可以点击手机dock栏上的接续通知以打开手机上的备忘录进行应用接续。参见图2中的C界面,在手机的备忘录界面中接续显示之前在PC上编辑的内容,光标位置显示在接续之前PC上光标停留的位置,用户可以在手机上继续编辑内容。
需要说明的是,图2中示出的PC和手机属于同一个信任环中,属于同一个信任环可以理解为设备之间登录相同的设备账号、设备之间的距离满足一定阈值、并且设备之间均开启蓝牙或无线保真(wireless fidelity,Wi-Fi)。其中,设备账号可以用于设备之间连接时进行设备鉴权;蓝牙或Wi-Fi可以用于设备之间进行设备发现和连接。
当用户使用PC在备忘录里进行编辑时,属于同一信任环的手机可以提示用户能够进行应用接续。当用户触发手机确认进行应用接续时,手机中的备忘录可以获取并加载PC中的备忘录数据,进而使用户可以在手机上继续编辑备忘录内容,从而可以为用户提供接续服务,降低用户在进行跨设备应用接续时的操作复杂度,提升用户体验。
与图2类似的场景还可以包括:将手机上打开的可携带文档格式(portabledocument format,PDF)接续到平板电脑上继续显示;或,将平板电脑上播放的视频接续到手机上继续播放;或,将PC上播放的音乐接续到手机上继续播放等。
对于应用接续场景下的PC而言,为实现将应用的使用状态同步至其他设备,或者将其他设备的应用的使用状态同步至PC的需求,PC需要对外提供接续框架和软件开发工具包(software development kit,SDK)以满足此需求。其中,接续框架是为应用提供统一的应用状态同步框架,应用需要通过SDK接入接续框架,实现与接续框架中的接续服务的数据传输。接续服务以电脑管家为依托为应用提供对外服务能力。
应理解的是,在PC中的应用和接续服务启动之后,应用和接续服务处于两个不同的进程,因此应用需要通过进程间通信(inter process communication,IPC)和接续服务通信。
然而,如果有多个应用同时接入接续框架,依托电脑管家与接续服务进行通信,这样会占用过多的IPC通信资源。而集成在PC的电脑管家中的接续框架为应用提供的IPC通信资源是有限的,在接入应用过多的情况下,如何灵活地为多个应用分配IPC通信资源是一个亟待解决的问题。
本申请实施例以接续应用作为具有接续功能的应用的统称,接续应用的类型可以包括:编辑类应用(或称为文档应用/办公类应用)、浏览类应用、影音娱乐类应用(或称为多媒体播放应用)等。应理解的是,占用电脑管家的IPC通信资源的应用并不全是接续应用,例如还有一些安全防护类应用、引擎类应用等也占用电脑管家的IPC通信资源。
有鉴于此,本申请实施例提供一种应用接续方法,当有多个应用同时接入接续框架,依托PC的电脑管家与接续服务进行通信时,PC可以为每个应用申请共享内存中的地址,基于申请到的共享内存的地址为每个应用分配通信资源,应用可基于该通信资源接入接续服务并与接续服务进行数据传输。
图3是本申请实施例适用的一种终端设备的结构示意图。
终端设备可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对终端设备的具体限定。在本申请另一些实施例中,终端设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从上述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备的结构限定。在本申请另一些实施例中,终端设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
终端设备通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
终端设备可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端设备使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行终端设备的各种功能应用以及数据处理。例如,可以执行本申请实施例的应用接续方法。
本申请的终端设备可以作为发送端,也可以作为接收端。终端设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例的图4以分层架构的Android系统为例,示例性说明本申请实施例的终端设备的软件结构。
如图4所示,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口进行数据的传输与通信。在一些实施例中,将Android系统分为五层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库、硬件抽象层(hardware abstract layer,HAL),以及内核层。
应用程序层可以包括一系列应用程序包。如图4所示,应用程序包可以包括三方应用、接续服务SDK、蓝牙、Wi-Fi、备忘录、视频、游戏等应用程序。例如本申请实施例中,在应用程序层中,接续应用可以接入接续服务SDK,接续应用可以为终端设备中的系统应用,也可以为三方应用,备忘录、视频、游戏等应用也可以为系统应用或三方应用。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图4所示,应用程序框架层可以包括接续服务管理器、通信服务管理器、鉴权服务管理器、通知管理器、窗口管理器、资源管理器、内容提供器和视图系统等。其中,管理器在一些应用场景中也可以称为模块。
接续服务管理器可以负责接续任务的管理,为接续应用提供继续服务,是接续框架的核心。例如本申请实施例中,接续服务管理器可以负责接续应用的接入、接续应用的鉴权、接续应用的图标管理以及接续数据跨设备间的传输。
通信服务管理器可以用于实现跨设备间的数据传输,例如本申请实施例中,通信服务管理器可以实现同账号设备的安全认证与账号鉴权、设备的自发现与自组网、设备间的数据传输以及通信服务的接入等。
鉴权服务管理器可以负责应用的合法性校验,例如本申请实施例中,在鉴权服务管理器校验通过后可以允许应用接入接续服务。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息、发出提示音、终端设备振动、指示灯闪烁等。例如本申请实施例中,当终端设备接收到接续通知时,通知管理器可以在任务栏中显示接续通知。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏、锁定屏幕、触摸屏幕、拖拽屏幕、截取屏幕等。
资源管理器为应用程序提供各种资源,例如本地化字符串、图标、图片、布局文件、视频文件等等。
内容提供器用于在不同的应用程序之间实现数据共享的功能,允许一个程序访问另一个程序中的数据,同时还能保证被访问的数据的安全性。
视图系统可以负责应用程序的界面绘制和事件处理。例如本申请实施例中,视图系统可以用于处理用户点击接续应用的通知图标后的事件处理。
Android runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:媒体库(Media Libraries)、函数库(Function Libraries)图形处理库(例如:OpenGL ES)等。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
函数库为开发者提供多种服务的API接口,方便开发者快速集成并实现各种功能。
图形处理库用于实现图形绘图、图像渲染、合成和图层处理等。
硬件抽象层是介于内核层和Android runtime之间的抽象出来的一层结构。硬件抽象层可以是对硬件驱动的一个封装,为上层应用的调用提供统一接口。硬件抽象层可以包括蓝牙模块、Wi-Fi模块、硬件配置模块等。例如本申请实施例中,硬件抽象层中的蓝牙模块和Wi-Fi模块可以屏蔽内核层中蓝牙驱动和Wi-Fi驱动的具体硬件实现细节,上层应用在不必知道内核层硬件驱动的具体实现方式的情况下就可以通过调用接口实现蓝牙功能和Wi-Fi功能。
内核层是硬件和软件之间的层。内核层可以包括显示驱动、摄像头驱动、音频驱动、蓝牙驱动、Wi-Fi驱动、中央处理器驱动等。例如本申请实施例中,通信服务管理器可以通过蓝牙驱动以及Wi-Fi驱动等相关模块进行跨设备间的连接,实现设备的自发现与自组网。
可以理解的是,本申请实施例的发送端或接收端也可以采用Windows系统,如图5所示,与Android系统不同的是Windows系统的分层架构主要分为用户态和内核态,用户态可以包括用户应用程序进程,以及系统进程与服务进程等;内核态可以包括内核和设备驱动层,以及硬件抽象层等。
用户应用程序进程可以执行一系列应用程序。具体可执行的应用程序类型可以与Android系统中应用程序层中的应用程序类型相同,在此不再赘述。
系统进程与服务进程中可以包括接续服务管理器、通信服务管理器、鉴权服务管理器、系统进程、通知管理器、窗口管理器等,可以为用户应用程序进程的执行提供相应服务。具体与本申请实施例相关的接续服务管理器、通信服务管理器、鉴权服务管理器等进程的作用可参见Android中的相关管理器描述,在此不再赘述。
此外,系统进程与服务进程中还可以包括通道管理服务器,通道管理服务器用于对应用程序的通信通道进行管理,包括对通信通道的定时查询、对通信通道的释放等。
内核层和设备驱动层可以包括蓝牙驱动、Wi-Fi驱动、显示驱动等,硬件抽象层可以包括蓝牙模块、Wi-Fi模块、硬件配置模块等。具体的功能模块的作用可参见Android中的相关描述,在此不再赘述。下面结合终端设备之间在应用接续过程中进行接续通知显示的场景,示例性说明Windows系统分层框架中的接续数据的传输流程。
如图5所示,在发送端的应用程序层中,应用程序通过接入接续服务SDK进行初始化。接续服务SDK为应用程序申请共享内存的地址,确定应用程序的通信标识(identification,ID)。这样接续服务SDK可以向应用程序返回初始化成功。在确定应用程序的通信ID之后,应用程序可以通过接入接续服务SDK实现与接续服务的数据传输。接续服务SDK可以在通信ID指示的通信通道上向接续服务管理器发送绑定接续服务以及应用注册接续服务的请求,进而实现应用程序层与应用程序框架层之间的接续应用注册与绑定的数据传输。
在应用程序框架层中,接续服务管理器可以通过与通信服务管理器进行信令传输与数据传输完成通信服务的绑定。接续服务管理器还可以与鉴权服务管理器进行绑定鉴权服务以及应用鉴权。
在接续应用注册成功后,通信服务管理器可以调用硬件抽象层提供的蓝牙模块接口以及Wi-Fi模块接口实现设备的自发现与自组网,并通过内核层和设备驱动层中的蓝牙驱动和Wi-Fi驱动实现终端设备间的会话连接、消息传递,以及接续内容的传输等。
当接收端基于内核层和设备驱动层接收到发送端传递过来的接续相关的数据后,可以将数据传输给硬件抽象层中的相关模块。在接收端的应用程序框架层中,通信服务管理器可以通过硬件抽象层中提供的接口获取传输过来的接续数据,并与接续服务管理器进行信令传输与数据传输。接续服务管理器在接收到接续相关的数据后,可以与鉴权服务管理器进行绑定鉴权服务以及应用鉴权。进一步地,接续服务管理器可以指示桌面启动器以图标形式显示接续通知。
下面将结合实现跨设备间的应用接续方法的系统详细说明各模块之间的交互过程。下面的实施例可以相互结合或独立实施,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图6是本申请实施例提供的一种应用接续方法的示意性流程图。实现跨设备间的应用接续方法的系统中可以包括第一终端设备和第二终端设备,第一终端设备可以作为发送端,具有如图3和图5所示的结构,第二终端设备可以作为接收端,具有如图3和图4所示的结构。第一终端设备与第二终端设备中均可以包括实现接续服务的各个功能模块,例如,可以包括接续服务SDK、接续服务管理器、通信服务管理器以及鉴权服务管理器等。
本申请实施例的第一终端设备可以具体为采用Windows系统的设备,如PC,第二终端设备可以具体为采用Android系统的设备,如手机、平板电脑等。
为了便于描述,后续将第一终端设备的接续应用称为第一接续应用,第一终端设备的接续服务SDK称为第一接续服务SDK,第一终端设备的接续服务管理器称为第一接续服务管理器第一终端设备的通道服务管理器称为第一通道服务管理器,第一终端设备的通信服务管理器称为第一通信服务管理器,第一终端设备的鉴权服务管理器称为第一鉴权服务管理器。
将第二终端设备的接续应用称为第二接续应用,第二终端设备的接续服务SDK称为第二接续服务SDK,第二终端设备的接续服务管理器称为第二接续服务管理器,第二终端设备的通信服务管理器称为第二通信服务管理器,第二终端设备的鉴权服务管理器称为第二鉴权服务管理器。
本申请实施例的应用接续方法的实现过程可以分为四个阶段,第一阶段为接续应用的初始化、第二阶段为接续应用的注册与绑定,第三阶段为接续通知的显示,第四阶段为接续数据的获取与加载。下面结合图6分别介绍各阶段。
第一阶段、初始化。
第一终端设备的第一接续服务管理器在电脑管家中运行,应用作为独立进程接入接续服务SDK后运行在三方应用中,因此,第一接续服务管理器需要和第一接续应用跨进程通信。当第一终端设备的第一接续应用监控到一些用户行为时,第一接续应用可以调用第一接续服务SDK的初始化接口,以申请可用于第一接续应用与第一接续服务管理器跨进程通信的通信通道。在申请到通信通道之后,第一接续应用可以接收到第一接续服务SDK返回的初始化成功的消息。
用户行为可以为用户点击第一接续应用的图标启动第一接续应用,也可以为用户在第一接续应用中进行编辑等操作,还可以为用户在第一接续应用中点击播放按钮进行视频播放、音乐播放或其他媒体播放等操作,具体所监控的用户行为可以由接续应用进行自定义设置,本申请实施例不作限制。
在第一终端设备为应用接续的发送端时,第一接续应用的图标可以显示在第一终端设备的桌面或者任务栏(或称为dock栏)。
第一接续服务SDK在接收到初始化请求之后,可以去读取共享内存,确定共享内存中未被申请的比特位。下面结合图7,对共享内存的通信原理进行介绍。
图7是本申请实施例提供的一种共享内存的通信原理的示意图。如图7所示,共享内存是进程间通信的方式之一,允许多个进程访问同一块内存。进程A和进程B都有属于自己的进程控制块(process control block,PCB)和地址空间(address space),并且都有一个与之对应的页表,负责将进程的虚拟地址与物理地址进行映射,通过内存管理单元(memory management unit,MMU)进行管理。两个不同的虚拟地址通过页表映射到物理空间的同一区域,它们所指向的这块区域即为共享内存。
当进程A和进程B通过页表将虚拟地址映射到物理地址时,在物理地址中有一块共同的内存区,即共享内存,这块内存可以被进程A和进程B同时看到。这样一个进程进行写操作,另一个进程进行读操作就可以实现进程间通信。
图8是本申请实施例提供的一种申请通信通道的示意图。第一接续服务SDK在确定共享内存中未被申请的比特位时,按照顺序读取共享内存中各个比特位的值,每个比特位的值第一预设值或者第二预设值,值为第一预设值的比特位对应的通信通道未被申请或者未被使用,值为第二预设值的比特位对应的通信通道已被申请或者已被使用。示例性地,第一预设值可以为“0”,第二预设值可以为“1”。
如图8中的a所示,共享内存区域中的第一个比特位和第二个比特位的值“1”,表示这两个比特位对应的通信通道已经被应用A和应用B占用。
如图8中的b所示,当第一接续应用(应用C)接入第一接续服务SDK时,第一接续服务SDK检测到共享内存区域的第三个比特位的值为“0”,因此第一接续服务SDK可以确定第三个比特位为目标比特位,并向第一接续服务SDK返回比特空位的标识n,也即返回第三个比特空位的标识。其中,比特空位表示值为“0”的比特位。
示例性地,第一个比特位的标识n为1,第二个比特位的标识n为2,第三个比特位的标识n为3,依次类推。
在第一接续服务SDK检测到第三个比特位的值为“0”,确定第三个比特位为目标比特位之后,第一接续服务SDK可以将目标比特位的值修改为“1”,以指示目标比特位对应的通信通道已被申请或已被使用。
第一接续服务SDK在接收到比特空位的标识n之后,根据比特空位的标识n计算通信ID,例如,通信ID=M+n×N,其中M、N为预设值,N的数值表示申请到的通信通道所支持的消息的种类数。
应理解的是,第一接续服务SDK计算得到的通信ID是一个起始的通信ID,从起始的通信ID开始的N个连续的通信ID所标识的通信通道都可以被第一接续服务SDK使用,N为预设值。也即,第一接续服务SDK根据计算得到的通信ID可确定多个通信通道,多个通信通道的数量为N,每个通信通道支持传输一种消息类别,消息类别例如:注册接续服务和回调的消息、解除注册接续服务和回调的消息、广播接续通知的消息、通信回连的消息等。
下面以N=3,M=0对通信ID进行举例说明。
例如,应用A的接续服务SDK读取共享内存,检测到共享内存区域中的第一个比特位的值为“0”,第一个比特位的标识n=1,因此共享内存向应用A的接续服务SDK返回的比特空位的标识即为第一个比特位的标识n=1。应用A的接续服务SDK根据通信ID=M+n×N计算得到的通信ID为3,通信ID为3对应三个通信通道,三个通信通道的通信ID分别为3、4、5。
例如,应用B的接续服务SDK读取共享内存,检测到共享内存区域中的第二个比特位的值为“0”,第二个比特位的标识n=2,因此共享内存向应用A的接续服务SDK返回的比特空位的标识即为第二个比特位的标识n=2。应用B的接续服务SDK根据通信ID=M+n×N计算得到的通信ID为6,通信ID为6对应三个通信通道,三个通信通道的通信ID分别为6、7、8。
类似地,第一接续应用(应用C)的接续服务SDK根据通信ID=M+n×N计算得到的通信ID为9,通信ID为9对应三个通信通道,三个通信通道的通信ID分别为9、10、11。
应理解的是,每个应用申请到的多个通信通道中的每个通信通道上传输的是预定义的消息类型,例如,通信ID+1所标识的通信通道用于传输通信回连消息,即在上面的例子中,应用A可以通过通信ID为4所标识的通信通道接收通信回连消息、应用B可以通过通信ID为7所标识的通信通道接收通信回连消息、应用C可以通过通信ID为10所标识的通信通道接收通信回连消息。
在第一接续应用接收到初始化成功的消息之后,第一接续应用可以在申请到的通信通道与第一接续服务管理器进行交互,以便执行后续的应用接续的流程。
第二阶段、接续应用的注册与绑定。
第一接续应用可以通过调用第一接续服务SDK的注册接口接入接续服务。可以理解的是,第一接续应用在注册接续服务时可以携带第一接续应用的包名、版本号等信息。
可能的实现中,第一接续服务SDK可以通过第一接续服务管理器与其他功能管理器进行数据交互。示例性地,第一接续服务SDK可以通过通信ID为1所标识的通信通道向第一接续服务管理器发送绑定接续服务以及应用注册接续服务的请求,第一接续服务管理器在接收到第一接续服务SDK的请求后,可以与第一通信服务管理器交互进而绑定通信服务,在绑定成功后,第一接续服务管理器则可以接收到第一通信服务管理器回复的绑定成功的消息。
第一接续服务管理器在接收到第一接续服务SDK的应用注册接续服务的请求后,可以通知第一通道服务管理器对发送该请求的通信通道的通信ID进行标记,表示该通信ID对应的通信通道已被使用。
进一步地,第一接续服务管理器可以通过调用第一鉴权服务管理器所提供的接口进行绑定鉴权服务以及应用鉴权。第一鉴权服务管理器接收鉴权请求后,可以通过与云端鉴权服务器进行数据交互完成第一接续应用的绑定与鉴权。可以理解的是,在绑定鉴权服务的过程中,云端鉴权服务器可以根据第一接续应用的包名获取用户标识(useridentification,UID),进而根据UID进行应用鉴权。当第一鉴权服务管理器对第一接续应用鉴权成功后,云端鉴权服务器中可以存储第一接续应用的图标等应用信息,并给第一接续服务管理器返回鉴权结果。
第一接续服务管理器接收到第一接续应用鉴权结果后,会将该消息传递给第一接续应用。其中,鉴权结果可以包括鉴权成功和鉴权失败,如果第一接续应用接收到的结果为鉴权成功,则说明应用注册成功,可以继续执行应用接续的方法;如果第一接续应用接收到的结果为鉴权失败,则说明应用注册失败,不会继续执行应用接续的方法。
第一接续服务管理器接收到第一接续应用鉴权结果,鉴权结果为鉴权成功之后,还会通知第一通道服务管理器应用已注册。第一通道服务管理器在接收到应用已注册的消息之后,启动对第一接续应用的状态的定时查询,向第一接续服务SDK发送定时查询消息。其中,第一接续应用的状态包括进程仍在存活或者进程已退出。具体地,第一通道服务管理器向第一接续服务SDK发送定时查询消息可以包括:第一通道服务管理器定时向第一接续服务SDK发送保活包,成功发送保活包则表示第一接续应用的进程仍在存活,未成功发送保活包则表示第一接续应用的进程已退出。
在第一终端设备的应用注册成功之后,第一通信服务管理器与第二通信服务管理器可以通过蓝牙或者Wi-Fi进行自发现与自组网,以及进行账号鉴权。进一步地,第一通信服务管理器可以向第一接续服务管理器发送用于表示第二终端设备上线的信息。例如,用于表示第二终端设备上线的信息可以包括第二终端设备的设备标识(deviceidentification,DevID)等信息。
在第一接续服务管理器接收到第一通信服务管理器发送的用于表示第二终端设备上线的信息后,可以将第二终端设备的信息进行存储与管理,以便执行进行后续的应用接续的流程。
第三阶段、接续通知的显示。
当第一接续应用注册成功后,则可以周期性向第一接续服务管理器发送广播接续通知。其中,广播接续通知中可以携带第一接续应用的包名、接续策略,以及接续内容概要(如标题)等信息。第一接续服务管理器可以根据第一接续应用的接续策略确认可接续的设备。
示例性地,当接续策略为包括应用程序所支持的设备类型时,例如,接续策略中包括第一接续应用可以支持在手机、平板电脑、电视、电脑等上实现接续服务,则第一接续服务管理器在确认第二终端设备为手机、平板电脑、电视或电脑等时,第一接续服务管理器可以指示第一通信服务管理器和第二通信服务管理器建立会话通路。
示例性地,当接续策略为包括最小版本号或最小版本时,例如,接续策略中包括第一接续应用可以支持最小版本号为A,或最小版本为B,则第一接续服务管理器在确认第二接续应用的版本号大于或等于A时,或者第二接续应用的版本大于或等于B时,第一接续服务管理器可以指示第一通信服务管理器和第二通信服务管理器建立会话通路。
第一通信服务管理器和第二通信服务管理器之间则可以建立起会话通路,以便进行应用接续相关的消息传递和数据传输。
会话通路建立成功后,第一通信服务管理器可以向第一接续服务管理器指示通道建立成功,第一接续服务管理器可以根据第一接续应用发送的广播接续通知,将携带有第一接续应用的包名以及接续内容概要等信息的广播接续通知给到第一通信服务管理器,第一通信服务管理器通过建立好的会话通路将第一接续应用的包名以及接续内容概要等信息发送给第二通信服务管理器,第二通信服务管理器进一步将第一接续应用的包名以及接续内容概要等信息上报到第二接续服务管理器。
第二接续服务管理器可以解析第一接续应用的包名,并携带第一接续应用的包名信息与第二鉴权服务管理器进行绑定与鉴权,绑定与鉴权相关的实现同第一终端设备中的鉴权步骤类似,在此不再赘述。
在应用鉴权成功之后,第二接续服务管理器可以通过任意可能的实现获取应用图标。
一种可能的实现中,第二接续服务管理器可以根据得到的第一接续应用的包名等应用信息在第二终端设备中查找本地是否存储有第一接续应用的图标。若可以查找到第一接续应用的图标,则第二接续服务管理器可以通知桌面启动器使用第一接续应用的图标显示接续通知;若未查找到第一接续应用的图标,则第二接续服务管理器可以通过云端鉴权服务器获取第一接续应用的图标等相关信息。进一步地,在云端鉴权服务器将第一接续应用的图标发送给第二接续服务管理器时,则第二接续服务管理器可以在第二终端设备的本地存储第一接续应用的图标等相关信息,以及第二接续服务管理器可以通知桌面启动器在第二终端设备上显示接续通知。
另一种可能的实现中,第二接续服务管理器可以通过云端鉴权服务器获取第一接续应用的图标等相关信息。
再一种可能的实现中,第二接续服务管理器可以在第二终端设备中查找与第一接续应用包名相同的第二接续应用。若可以查找到第二接续应用,则第二接续服务管理器可以通知桌面启动器使用第二终端设备本地存储的第二接续应用的图标显示接续通知;若未查找到第二接续应用,则第二接续服务管理器可以通过上述在第二终端设备的本地或者在云端鉴权服务器中查找应用信息的方式获取第一接续应用的图标等相关信息,并通知桌面启动器使用第一接续应用的图标显示接续通知。
可以理解的是,桌面启动器控制显示接续通知时,接续通知可以在第二终端设备的最近任务、任务栏、快捷窗口或者其他界面入口中显示,具体显示接续通知的方式,本申请实施例不作限制。接续通知可以以接续应用图标的形式显示,也可以通过应用名称、提示语或者其他形式显示,具体显示接续通知的形式,本申请实施例不作限制。
第四阶段、接续数据的获取与加载。
当第二终端设备接收到用户点击接续应用图标的事件后,可能的实现中,若第二终端设备中未安装有第二接续应用,则第二终端设备中可以提示用户安装第二接续应用,具体的提示安装应用的方式,本申请实施例不作限制。若第二终端设备中已安装有第二接续应用,或基于提示完成第二接续应用的安装,则可以执行下述的步骤。
第二接续服务管理器可以拉起第二接续应用,并指示第二接续应用加载过渡动画效果,则第二接续应用可以启动并加载过渡动效,过渡动效例如可以包括“加载中…”等提示信息。进一步地,第二接续应用可以通过调用第二接续服务SDK的注册接口接入接续服务,可以理解的是,第二接续应用在注册接续服务时可以携带第二接续应用的包名等信息。
第二接续服务SDK可以向第二接续服务管理器发送绑定接续服务的请求,第二接续服务管理器在接收到绑定接续服务的请求后,可以向第二通信服务管理器发送绑定通信服务的请求。当第二通信服务管理器绑定成功后,第二通信服务管理器可以通过第二接续服务管理器向第二接续服务SDK发送绑定成功的消息。第二接续服务SDK在接收到绑定成功的消息后,向第二接续服务管理器发送注册接续服务的消息,第二接续服务管理器在注册成功后,可以将注册成功的消息通过第二接续服务SDK返回给第二接续应用。
在第二接续应用启动过程中,第二接续服务管理器还可以通过第一终端设备与第二终端设备之间所建立的会话通路向第一接续服务管理器发送请求接续数据,当第一接续服务管理器接收到请求接续数据后,可以通过第一接续服务SDK将请求接续数据上报给第一接续应用,则第一接续应用可以将接续内容等相关接续数据进行打包和加密,并通过第一接续服务SDK将接续数据发送给第一接续服务管理器,第一接续服务管理器可以通过第一终端设备与第二终端设备之间所建立的会话通路将接续数据发送给第二接续服务管理器。
进一步地,第二接续服务管理器通过第二接续服务SDK向第二接续应用通知接续数据,第二接续应用在注册成功之后,可以加载接续数据并控制第二终端设备显示接续数据,以及向第一终端设备的第一接续应用传递用于指示接续成功的信息,进而第一接续应用可以执行退出第一接续应用的页面等流程。
在上文中描述的各阶段执行的过程中,可能存在以下几种场景。
场景一、第一接续应用正常退出。
示例性地,第一接续应用可以在接收到接续成功通知之后退出。在该场景下,第一接续应用可以通过调用第一接续服务SDK的应用解除注册接口以解除注册。第一接续服务SDK通过申请的通信通道向第一接续服务管理器发送应用解除注册的请求,第一接续服务管理器在接收到第一接续服务SDK的请求后,可以通知第一通道服务管理器应用已退出,第一通道服务管理器停止对第一接续应用的定时查询,并清理共享内存中的占用位。例如,第一接续服务SDK在申请通信通道时,将共享内存区域的第三个比特位的值修改为“1”,因此在清理时,第一通道服务管理器将共享内存区域的第三个比特位的值修改为“0”,表示第三个比特位对应的通信通道未被使用或未被申请,可以被其他的应用申请使用,这样有利于高效利用有限的IPC通信资源,提高通信资源的利用率。
进一步地,第一通道服务管理器通知第一接续服务管理器应用断开成功,第一接续服务管理器在接收到应用断开成功的消息之后,通过第一接续服务SDK向第一接续应用发送解除注册成功的消息。
场景二、第一接续应用异常退出。
示例性地,第一接续应用卡顿退出、用户在后台任务管理器强制停止应用等情况下可能导致第一接续应用异常退出。在该场景下,第一通道服务管理器无法成功向第一接续服务SDK发送保活包,第一接续服务SDK未向第一接续服务管理器解除注册,导致第一接续应用一直占用通信通道,在IPC通信资源有限的情况下,可能使得其他的应用无法及时申请到可用的通信通道,造成通信资源的浪费。
在本申请实施例中,第一通道服务管理器在确定定时查询失败之后,通知第一接续服务管理器应用已退出。第一通道服务管理器停止对第一接续应用的定时查询,并清理共享内存中的占用位,这样有利于避免对通信资源的浪费。
场景三、第一接续应用先于第一接续服务管理器启动。
第一接续应用先于第一接续服务管理器启动,也即第一接续应用先于电脑管家启动。在该场景中,第一接续应用可以申请到通信通道,但是可能无法成功注册接续服务,因为第一接续服务管理器还未启动或者已异常退出。示例性地,用户可以手动打开电脑管家以启动第一接续服务管理器,在第一接续服务管理器启动的过程中,第一接续服务管理器在共享内存中所有可用于传输通信回连消息的通信通道上发送通信回连消息。
例如,第一接续服务SDK在通信ID+1所标识的通信通道上接收到第一接续服务管理器广播的通信回连消息,如果第一接续应用有跨设备进行应用接续的需求,第一接续应用可以确定启动接续应用的注册与绑定,第一接续服务管理器根据回连的通信通道的通信ID,维护共享内存区域的数据为最近状态。
场景四、第一接续服务管理器异常退出。
该场景下的处理流程与场景三的处理流程类似,此处不再赘述。
以上结合图6描述了第一终端设备作为发送端,第二终端设备作为接收端的内部交互流程,下面介绍第一终端设备作为接收端,第二终端设备作为发送端的内部交互流程。其中,第一终端设备可以具有如图3和图5所示的结构,第二终端设备可以具有如图3和图4所示的结构。
第一终端设备作为接收端的前提是第一终端设备的电脑管家要先于第一接续应用启动,这样第一终端设备才可以正常进行设备的自发现与自组网等相关的应用接续流程。
与第一终端设备作为发送端的内部交互类似,第二终端设备在作为发送端时可以执行上述阶段二以后的流程,在图4的层级架构下,第二终端设备中的第二接续服务SDK与第二接续服务管理器之间不涉及跨进程的通信,因此第二接续服务SDK无需去共享内存中申请通信通道。
第二终端设备可以打开第二接续应用,执行接续应用的注册与绑定、广播接续通知、绑定鉴权服务以及应用鉴权、与第一终端设备的第一通信服务管理器建立会话通路,具体流程可参照上文针对图6的描述,此处不再赘述。在建立会话通路之后,第一通信服务管理器和第二通信服务管理器通过建立好的会话通路进行消息传输,消息中包括第二接续应用的包名等信息。第一接续服务管理器与第一鉴权服务管理器根据第二接续应用的包名绑定鉴权服务、进行应用鉴权。在应用鉴权成功之后,第一接续服务管理器获取应用图标,通知第一终端设备的桌面启动器以图标形式显示接续通知。
在第一终端设备为应用接续的接收端时,第一接续应用的图标可以显示在第一终端设备的任务栏(或称为dock栏)。
当第一终端设备接收到用户点击接续应用图标的事件后,若第一终端设备中已安装第一接续应用且第一接续应用未启动,则第一接续服务管理器拉起第一接续应用,并指示第一接续应用加载过渡动画动效,则第一接续应用可以启动并加载过渡动效。
进一步地,第一终端设备可以执行与图6中的初始化阶段和接续应用的注册与绑定阶段类似的流程,此处不再赘述。
在第一接续应用启动的过程中,第一接续服务管理器可以通过第一终端设备与第二终端设备之间所建立的会话通路向第二接续服务管理器请求接续数据。具体请求接续数据的流程可参照上文针对图6的描述,此处不再赘述。
进一步地,第一接续服务管理器在接收到接续数据之后,在申请到的用于传输接续数据的通信通道上通过第一接续服务SDK向第一接续应用通知接续数据。例如,通信ID对应的N个通信通道中通信ID+2所标识的通信通道用于传输接续数据,则第一接续服务管理器可以在通信ID+2所标识的通信通道上向第一接续应用发送接续数据。
综合上文对应用接续的内部交互流程的描述,如图9所示,本申请实施例提供一种用于应用接续的方法900,方法900可以由终端设备执行,该终端设备可以具有如图3和图5所示的结构,但本申请实施例对此不作限定。该终端设备安装有第一应用和电脑管家。该终端设备对应上述第一终端设备,可以作为应用接续的发送端,也可以作为应用接续的接收端。方法900包括如下步骤:
S901,响应于用户点击第一应用的图标的操作,获取共享内存中目标比特位的标识,目标比特位是值为第一预设值的比特位,第一预设值表示目标比特位对应的通信通道未被使用。
在本步骤中,第一应用可以为上述第一接续应用,示例性地,第一预设值为“0”,如果共享内存中的第一个比特位的值为“0”时,则第一个比特位为目标比特位,终端设备可以获取第一个比特位的标识n=1;如果共享内存中的第一个比特位的值为“1”,第二个比特位的值为“0”时,则第二个比特位为目标比特位,终端设备可以获取第二个比特位的标识n=2。
S902,基于目标比特位的标识,确定目标比特位对应的通信标识,通信标识指示用于第一应用和电脑管家通信的至少一个通信通道。
结合上文的描述,终端设备在获取到目标比特位的标识之后,可以基于预设规则计算得到目标比特位对应的通信标识,通信标识对应至少一个通信通道,这样终端设备为第一应用申请到可以用于与电脑管家通信的IPC通信资源。具体对通信通道的描述可参见上文,此处不再赘述。
S903,基于所述至少一个通信通道实现第一应用与电脑管家之间的数据传输。
在本步骤中,第一应用与电脑管家之间的数据传输可以包括上文所描述的注册接续服务和回调、广播接续通知、请求接续数据、应用解除注册、广播通信回连消息等。
在本申请实施例中,终端设备可以将IPC通信与共享内存相结合,为接入电脑管家中的接续服务的至少一个应用灵活分配IPC通信资源,以实现应用和电脑管家中的接续服务之间的通信。
应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应所述以权利要求的保护范围为准。
Claims (11)
1.一种数据传输方法,其特征在于,应用于第一终端设备,所述第一终端设备安装有第一应用和电脑管家,所述方法包括:
响应于用户点击所述第一应用的图标的操作,获取共享内存中目标比特位的标识,所述目标比特位是值为第一预设值的比特位,所述第一预设值表示所述目标比特位对应的通信通道未被使用;
基于所述目标比特位的标识,确定所述目标比特位对应的通信标识,所述通信标识指示所述第一应用和所述电脑管家通信的至少一个通信通道;
在通过所述至少一个通信通道中的第一通信通道注册接续服务之后,与第二终端设备建立会话通路;
通过所述会话通路向所述第二终端设备发送所述第一应用的数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于对所述目标比特位的标识的获取,将所述目标比特位的值从所述第一预设值修改为第二预设值,所述第二预设值表示所述目标比特位对应的通信通道已被使用。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述第一应用的进程退出的情况下,将所述目标比特位的值从所述第二预设值修改为所述第一预设值。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
基于所述至少一个通信通道中的第二通信通道,解除注册所述接续服务;
基于对所述接续服务的解除注册,确定所述第一应用的进程退出。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在成功注册所述接续服务之后,定时查询所述第一应用的进程是否退出。
6.根据权利要求2所述的方法,其特征在于,在所述第一应用先于所述电脑管家启动,或所述电脑管家的进程异常退出的情况下,所述方法还包括:
广播通信回连消息,所述通信回连消息用于指示所述第一应用连接所述电脑管家;
在基于所述至少一个通信通道中的第三通信通道接收到所述通信回连消息的情况下,通过所述第一通信通道注册所述接续服务。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述响应于用户点击所述第一应用的图标的操作,获取共享内存中目标比特位的标识,包括:
响应于用户点击位于所述第一终端设备的桌面或任务栏的所述第一应用的图标的操作,获取所述共享内存中所述目标比特位的标识。
8.一种用于终端设备,其特征在于,包括用于执行如权利要求1至7中任一项所述方法的模块。
9.一种终端设备,其特征在于,包括:处理器和存储器,其中,
所述存储器用于存储计算机程序;
所述处理器用于调用并执行所述计算机程序,以使所述终端设备执行如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在终端设备上运行,使得所述终端设备执行如权利要求1至7中任一项所述的方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品中包括计算机程序代码,当所述计算机程序代码在终端设备上运行时,使得所述终端设备实现如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411003271.2A CN119166381A (zh) | 2022-09-28 | 2022-09-28 | 用于应用接续的方法及终端设备 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202411003271.2A CN119166381A (zh) | 2022-09-28 | 2022-09-28 | 用于应用接续的方法及终端设备 |
CN202211197093.2A CN116737404B (zh) | 2022-09-28 | 2022-09-28 | 用于应用接续的方法及终端设备 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211197093.2A Division CN116737404B (zh) | 2022-09-28 | 2022-09-28 | 用于应用接续的方法及终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN119166381A true CN119166381A (zh) | 2024-12-20 |
Family
ID=87917427
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202411003271.2A Pending CN119166381A (zh) | 2022-09-28 | 2022-09-28 | 用于应用接续的方法及终端设备 |
CN202211197093.2A Active CN116737404B (zh) | 2022-09-28 | 2022-09-28 | 用于应用接续的方法及终端设备 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211197093.2A Active CN116737404B (zh) | 2022-09-28 | 2022-09-28 | 用于应用接续的方法及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN119166381A (zh) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710774B (zh) * | 2012-06-04 | 2014-12-17 | 深圳市宏电技术股份有限公司 | 数据传输方法及系统 |
CN109508301B (zh) * | 2017-09-14 | 2021-10-29 | 中国移动通信集团重庆有限公司 | 终端、应用数据的处理方法、数据处理设备及存储介质 |
CN110569130B (zh) * | 2019-07-29 | 2021-12-14 | 华为技术有限公司 | 一种跨进程通信方法、装置及设备 |
CN114900548A (zh) * | 2019-11-05 | 2022-08-12 | 华为技术有限公司 | 一种建立通信连接的方法及客户端、服务端 |
WO2021218751A1 (zh) * | 2020-04-30 | 2021-11-04 | 华为技术有限公司 | 一种基于云手机的媒体数据处理方法以及终端设备 |
CN113760560A (zh) * | 2020-06-05 | 2021-12-07 | 华为技术有限公司 | 一种进程间通信方法以及进程间通信装置 |
CN115033319A (zh) * | 2021-06-08 | 2022-09-09 | 华为技术有限公司 | 一种应用界面的分布式显示方法及终端 |
CN114090289A (zh) * | 2021-11-17 | 2022-02-25 | 国汽智控(北京)科技有限公司 | 共享内存数据调用方法、装置、电子设备及存储介质 |
CN114924671B (zh) * | 2022-07-18 | 2023-04-11 | 荣耀终端有限公司 | 应用接续方法和装置 |
-
2022
- 2022-09-28 CN CN202411003271.2A patent/CN119166381A/zh active Pending
- 2022-09-28 CN CN202211197093.2A patent/CN116737404B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN116737404A (zh) | 2023-09-12 |
CN116737404B (zh) | 2024-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114077411A (zh) | 数据传输方法和设备 | |
AU2019256257A1 (en) | Processor core scheduling method and apparatus, terminal, and storage medium | |
WO2023035834A1 (zh) | 一种Wi-Fi直连通信方法及装置 | |
WO2024140122A1 (zh) | 一种电子设备的连接管理方法、装置及系统 | |
CN116033157B (zh) | 投屏方法和电子设备 | |
CN118277120A (zh) | 一种管理系统服务的方法及相关装置 | |
CN119562345A (zh) | 通信方法、可读介质和电子设备 | |
CN119166381A (zh) | 用于应用接续的方法及终端设备 | |
EP4332756A1 (en) | Application deployment method, distributed operation system, electronic device, and storage medium | |
CN116033158A (zh) | 投屏方法和电子设备 | |
CN116700552A (zh) | 应用接续方法和终端设备 | |
CN116662270A (zh) | 文件解析方法及相关装置 | |
US12261820B2 (en) | Method for connection between devices, electronic device, and computer-readable storage medium | |
CN114928899B (zh) | 物理链路的建立方法和电子设备 | |
CN118301402B (zh) | 基于快应用卡片播放视频的方法、电子设备及存储介质 | |
CN115686338B (zh) | 分屏方法及电子设备 | |
CN115175266B (zh) | 一种数据包发送方法、装置、终端及介质 | |
CN116366957B (zh) | 一种虚拟化相机使能的方法、电子设备及协同工作系统 | |
CN117857646B (zh) | 数据网络共享方法、电子设备及存储介质 | |
CN116033592B (zh) | 蜂窝通信功能的使用方法和装置 | |
CN116737258B (zh) | 卸载应用的方法及相关装置 | |
CN117827043A (zh) | 一种内容接续方法及相关装置 | |
CN117827473A (zh) | 内容接续方法及相关装置 | |
CN115878179A (zh) | 信息处理方法、装置、计算机设备及存储介质 | |
WO2025066224A1 (zh) | 内存共享方法、装置、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Country or region after: China Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040 Applicant after: Honor Terminal Co.,Ltd. Address before: 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong Applicant before: Honor Device Co.,Ltd. Country or region before: China |
|
CB02 | Change of applicant information |