CN114205365B - 应用界面迁移系统、方法及相关设备 - Google Patents
应用界面迁移系统、方法及相关设备 Download PDFInfo
- Publication number
- CN114205365B CN114205365B CN202010898935.1A CN202010898935A CN114205365B CN 114205365 B CN114205365 B CN 114205365B CN 202010898935 A CN202010898935 A CN 202010898935A CN 114205365 B CN114205365 B CN 114205365B
- Authority
- CN
- China
- Prior art keywords
- data
- electronic device
- page
- routing
- target application
- 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.)
- Active
Links
- 238000013508 migration Methods 0.000 title claims abstract description 184
- 230000005012 migration Effects 0.000 title claims abstract description 184
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000011084 recovery Methods 0.000 claims abstract description 99
- 238000012545 processing Methods 0.000 claims abstract description 30
- 238000012216 screening Methods 0.000 claims abstract description 8
- 230000003993 interaction Effects 0.000 claims description 2
- 238000012795 verification Methods 0.000 abstract description 6
- 230000007246 mechanism Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 230000006855 networking Effects 0.000 description 8
- 230000008275 binding mechanism Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000001419 dependent effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 229920001690 polydopamine Polymers 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
一种应用界面迁移系统,包括第一电子设备和第二电子设备,第一电子设备,用于通过第一分布式服务,生成迁移指令;根据场景信息,筛选出UI绑定数据;获取页面路由数据;对UI绑定数据以及页面路由数据进行处理,获得待迁移数据;通过第一分布式服务,将恢复指令发送至第二电子设备;第二电子设备,用于通过第二分布式服务,接收恢复指令,根据页面路由数据,生成恢复路由栈,并基于恢复路由栈以及当前页面路由栈,加载第一页面;根据场景信息对应的声明字段,对UI绑定数据进行校验;若校验成功,将UI绑定数据存储至目标应用的共享数据段中;刷新第一页面的组件视图。本发明还提供一种应用界面迁移方法及相关设备,本发明能提高UI状态迁移的效率。
Description
技术领域
本发明涉及终端技术领域,尤其涉及一种应用界面迁移系统、方法及相关设备。
背景技术
随着移动终端的发展,多个电子设备间可以协同合作,以进行用户交互界面(UI,User Interface)状态的无缝迁移。比如,在手机上编辑一半的邮件,可以在附近同账号的电脑上无缝衔接,进而可以在电脑上继续未完成的邮件,这极大提高了用户的使用体验。
现有技术中,UI状态的迁移机制主要包括两种,一种是基于Handoff的迁移机制,这种迁移机制是以iCloud为中心的,迁移效率不高,另一种是基于Liquid JS框架的迁移机制,这种迁移机制在迁移时需要序列化完整的组件信息,而且,强依赖于中心服务器。
可见,现有的UI状态的迁移机制均依赖于服务器,而且,迁移效率不高。
发明内容
本发明实施例公开了一种应用界面迁移系统、方法及相关设备,能够解决现有技术中存在的UI状态的迁移机制均强依赖于服务器,以及迁移效率不高的问题。
本发明第一方面公开了一种应用界面迁移系统,所述应用界面迁移系统包括第一电子设备和第二电子设备,所述第一电子设备,用于通过第一分布式服务,生成针对目标应用的迁移指令,所述迁移指令用于指示将所述目标应用的用户交互界面UI状态迁移至第二电子设备;响应于所述迁移指令,根据所述第一电子设备的场景信息,从所述目标应用的共享数据段中筛选出UI绑定数据,其中,所述共享数据段中的数据用于UI状态的迁移,所述UI绑定数据与所述目标应用的组件相绑定;获取所述目标应用的页面路由数据;对所述UI绑定数据以及所述页面路由数据进行处理,获得待迁移数据;通过所述第一分布式服务,将携带有所述待迁移数据的恢复指令发送至所述第二电子设备;所述第二电子设备,用于通过第二分布式服务,接收所述恢复指令,所述恢复指令用于指示在所述第二电子设备上恢复所述目标应用的UI状态,所述恢复指令携带有所述待迁移数据,所述待迁移数据包括所述页面路由数据以及所述UI绑定数据;响应于所述恢复指令,根据所述页面路由数据,生成恢复路由栈,并基于所述恢复路由栈以及所述第二电子设备的当前页面路由栈,加载第一页面;根据所述第二电子设备的场景信息对应的声明字段,对所述UI绑定数据的兼容性进行校验;若所述UI绑定数据的兼容性被校验成功,将所述UI绑定数据存储至所述目标应用的共享数据段中;刷新所述第一页面中与所述UI绑定数据相关的组件视图。
本发明中,第一电子设备和第二电子设备之间通过分布式服务进行通信,而不需要强依赖于某个服务中心,基于点对点的传输,能够提高后续页面迁移的效率。此外,在发起迁移之前,根据第一电子设备的场景信息对共享数据段内的数据进行了有效筛选,能够减少传输的数据量的大小,整个过程,无需序列化完整的UI组件信息,使得迁移速度更快。第二电子设备在恢复数据前,对数据进行了完整性校验,确保数据未被篡改,同时,保证了数据的正常恢复。基于恢复路由栈和当前页面路由栈,进行页面恢复,能够确保页面在两个路由栈间的无缝迁移和恢复,实现了恢复路由和原路由管理联动的机制。整个迁移过程,实现了UI组件在不同电子设备上的点对点迁移。
本发明第二方面公开了一种应用界面迁移方法,应用于第一电子设备,所述应用界面迁移方法包括:通过第一分布式服务,生成针对目标应用的迁移指令,所述迁移指令用于指示将所述目标应用的用户交互界面UI状态迁移至第二电子设备;响应于所述迁移指令,根据所述第一电子设备的场景信息,从所述目标应用的共享数据段中筛选出UI绑定数据,其中,所述共享数据段中的数据用于UI状态的迁移,所述UI绑定数据与所述目标应用的组件相绑定;获取所述目标应用的页面路由数据;对所述UI绑定数据以及所述页面路由数据进行处理,获得待迁移数据;通过所述第一分布式服务,将携带有所述待迁移数据的恢复指令发送至所述第二电子设备,所述恢复指令用于指示在所述第二电子设备上恢复所述目标应用的UI状态。
其中,对所述UI绑定数据以及所述页面路由数据进行的处理包括,但不限于:序列化、压缩、加密。第一电子设备通过分布式服务与第二电子设备进行通信,而不需要强依赖于某个服务中心,基于点对点的传输,能够提高后续页面迁移的效率。此外,在发起迁移之前,根据第一电子设备的场景信息对共享数据段内的数据进行了有效筛选,能够减少传输的数据量的大小,而无需序列化完整的UI组件信息,使得迁移速度更快。
在一些可选的实施方式中,所述通过第一分布式服务,生成针对目标应用的迁移指令包括:通过所述第一分布式服务,从所述第一电子设备的周围设备中,筛选出能够进行UI状态迁移的多个备选设备;接收针对所述多个备选设备输入的选择指令,并根据所述选择指令,从所述多个备选设备中确定第二电子设备;判断所述第一电子设备当前显示的目标应用是否具备UI状态迁移的权限;若所述第一电子设备当前显示的目标应用具备UI状态迁移的权限,基于所述目标应用以及所述第二电子设备,生成所述迁移指令。
其中,基于分布式服务,进行组网,搜寻可迁移的备选设备,并基于目标应用的UI状态迁移的权限来生成迁移指令,以及实现点对点通信。
在一些可选的实施方式中,所述获取所述目标应用的页面路由数据之后,所述应用界面迁移方法还包括:获取所述目标应用的组件状态数据;所述对所述UI绑定数据以及所述页面路由数据进行处理,获得待迁移数据包括:对所述UI绑定数据、所述页面路由数据以及所述组件状态数据进行处理,获得待迁移数据。
其中,组件状态数据即组件的私有状态数据,比如组件的焦点状态、滚动位置状态等。
本发明第三方面公开了一种应用界面迁移方法,应用于第二电子设备,所述应用界面迁移方法包括:通过第二分布式服务,接收恢复指令,所述恢复指令用于指示在所述第二电子设备上恢复目标应用的用户交互界面UI状态,所述恢复指令携带有待迁移数据,所述待迁移数据包括页面路由数据以及UI绑定数据,所述UI绑定数据与所述目标应用的组件相绑定;响应于所述恢复指令,根据所述页面路由数据,生成恢复路由栈,并基于所述恢复路由栈以及所述第二电子设备的当前页面路由栈,加载第一页面;根据所述第二电子设备的场景信息对应的声明字段,对所述UI绑定数据的兼容性进行校验;若所述UI绑定数据的兼容性被校验成功,将所述UI绑定数据存储至所述目标应用的共享数据段中;刷新所述第一页面中与所述UI绑定数据相关的组件视图。
本发明中,第二电子设备通过分布式服务接收第一电子设备发送的恢复指令,在恢复数据前,对数据进行了完整性校验,确保数据未被篡改,同时,保证了数据的正常恢复。基于恢复路由栈和当前页面路由栈,进行页面恢复,能够确保页面在两个路由栈间的无缝迁移和恢复,实现了恢复路由和原路由管理联动的机制。
在一些可选的实施方式中,所述待迁移数据还包括组件状态数据,所述将所述UI绑定数据存储至所述目标应用的共享数据段中之后,所述应用界面迁移方法还包括:确定所述目标应用中与所述组件状态数据对应的目标组件;将所述组件状态数据恢复至所述目标组件中;所述刷新所述第一页面中与所述UI绑定数据相关的组件视图包括:在所述第一页面上,刷新与所述UI绑定数据以及所述目标组件相关的组件视图。
其中,可以预先设置组件的私有状态数据的可迁移属性和组件标识,根据该设置,在发生迁移时,可以根据组件标识定位到具体组件,并将组件状态数据恢复至该具体组件,从而可以满足同一应用在不同设备间界面差异化显示的需求,提高视图效果。
在一些可选的实施方式中,所述根据所述第二电子设备的场景信息对应的声明字段,对所述UI绑定数据的兼容性进行校验包括:获取所述第二电子设备的场景信息对应的声明字段;判断所述UI绑定数据是否属于所述声明字段中声明的有效数据;若所述UI绑定数据属于所述声明字段中声明的有效数据,确定所述UI绑定数据的兼容性被校验成功。
其中,通过兼容性校验,可以避免第一电子设备上的目标应用和第二电子设备上的目标应用的版本不同,而导致迁移失败的情况发生。
在一些可选的实施方式中,所述加载第一页面之后,所述应用界面迁移方法还包括:对所述UI绑定数据的完整性进行校验;若所述UI绑定数据的完整性被校验成功,执行所述的根据所述第二电子设备的场景信息对应的声明字段,对所述UI绑定数据的兼容性进行校验;所述若所述UI绑定数据的兼容性被校验成功,将所述UI绑定数据存储至所述目标应用的共享数据段中包括:若所述UI绑定数据的兼容性被校验成功,确定所述目标应用的共享数据段所绑定的UI组件;获取所述UI组件要求的第一数据类型;判断所述第一数据类型与所述UI绑定数据的第二数据类型是否一致;若所述第一数据类型与所述UI绑定数据的第二数据类型一致,将所述UI绑定数据存储至所述目标应用的共享数据段中。
其中,在进行数据恢复前,需要先进行完整性校验,以确保数据未被篡改,其次,还需要进行兼容性校验,以确保第一电子设备上的目标应用和第二电子设备上的目标应用的版本能够兼容,最后,还需要对数据类型进行校验,以保证UI组件要求的数据类型一致,保证后续恢复的正常进行。
在一些可选的实施方式中,述基于所述恢复路由栈以及所述第二电子设备的当前页面路由栈,加载第一页面包括:获取所述恢复路由栈的栈顶的第一路由数据,并将所述第一路由数据移除至所述第二电子设备的当前页面路由栈的栈顶上;基于所述当前页面路由栈的第一路由数据,加载第一页面。
其中,基于恢复路由栈和当前页面路由栈,进行页面恢复,能够确保页面在两个路由栈间的无缝迁移和恢复,实现了恢复路由和原路由管理联动的机制。
在一些可选的实施方式中,所述应用界面迁移方法还包括:接收针对所述第一页面的回退指令;响应于所述回退指令,判断所述恢复路由栈是否为空;若所述恢复路由栈不为空,获取所述恢复路由栈的栈顶的第二路由数据,并将所述第二路由数据移除至所述第二电子设备的当前页面路由栈的栈顶上;基于所述当前页面路由栈的第二路由数据,加载第二页面。
其中,当用户需要回退当前页面时,可以优先查看恢复路由栈中是否还有路由数据,如果有,优先加载相应的页面,从而实现了第一电子设备上加载过的多个页面无缝迁移至第二电子设备上,提高了用户体验。
在一些可选的实施方式中,所述应用界面迁移方法还包括:若所述恢复路由栈为空,获取所述当前页面路由栈的栈顶的第三路由数据;基于所述当前页面路由栈的第三路由数据,加载第三页面。
其中,如果恢复路由栈为空,可以加载当前页面路由栈中的路由数据,并加载相应的页面,实现了恢复路由和原路由管理联动的机制。
本发明第四方面公开了一种电子设备,包括处理器和存储器;所述存储器,用于存储指令;所述处理器,用于调用所述存储器中的指令,使得所述电子设备执行所述的应用界面迁移方法。
本发明第五方面公开了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现所述的应用界面迁移方法。
在一些可选的实施方式中,本发明第六方面公开了一种应用界面迁移装置,所述应用界面迁移运行于第一电子设备中,所述应用界面迁移装置包括多个功能模块,所述多个功能模块用于执行所述的应用界面迁移方法。
在一些可选的实施方式中,本发明第七方面公开了一种应用界面迁移装置,所述应用界面迁移运行于第二电子设备中,所述应用界面迁移装置包括多个功能模块,所述多个功能模块用于执行所述的应用界面迁移方法。
另外,第四方面至第七方面所带来的技术效果可参见上述方法部分各设计的方法相关的描述,此处不再赘述。
附图说明
图1是本发明实施例公开的一种多设备间的应用界面迁移的场景示意图。
图2是本发明实施例公开的一种电子设备的硬件结构示意图。
图3是本发明实施例公开的一种应用界面迁移的运行环境示意图。
图4是本发明实施例公开的一种电子设备的功能模块图。
图5是本发明实施例公开的一种应用界面迁移方法的流程图。
图6是本发明实施例公开的另一种应用界面迁移方法的流程图。
图7A是本发明实施例公开的一种页面路由栈迁移的示意图。
图7B是本发明实施例公开的一种页面迁移的界面示意图。
图7C是本发明实施例公开的一种页面迁移的界面示意图。
图8是本发明实施例公开的另一种应用界面迁移方法的流程图。
图9A是本发明实施例公开的一种数据迁移的界面示意图。
图9B是本发明实施例公开的一种组件状态迁移的界面示意图。
具体实施方式
下面结合本发明实施例中的附图对本发明实施例进行描述。
为了更好的理解本发明实施例公开的一种应用界面迁移系统、方法及相关设备,下面首先对本发明实施例适用的网络架构进行描述。
请参见图1,图1是本发明实施例公开的一种多设备间的应用界面迁移的场景示意图。如图1所示,包括第一电子设备和第二电子设备,其中,第一电子设备可以包括,但不限于:个人计算机、平板电脑、智能手机、个人数字助理PDA;第二电子设备可以包括,但不限于:个人计算机、平板电脑、智能手机、个人数字助理PDA。在图1中,第一电子设备上的用户交互界面(UI,User Interface)状态可以迁移至第二电子设备上,实现多设备间的用户交互界面(UI,User Interface)的无缝迁移。其中,第一电子设备和第二电子设备可以是相同类型的电子设备,也可以是不同类型的电子设备,比如第一电子设备和第二电子设备均是手机,或者,第一电子设备是手机,第二电子设备是电脑等。
请参见图2,图2是本发明实施例公开的一种电子设备的硬件结构示意图。其中,图2所示的电子设备可以是图1中的第一电子设备,也可以是图1中的第二电子设备。如图2所示,电子设备可以包括:射频(Radio Frequency,RF)电路201、存储器202、输入单元203、显示单元204、传感器205、音频电路206、无线保真(wireless fidelity,Wi-Fi)模块207、处理器208、以及电源209等部件。本领域技术人员可以理解,图2中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
RF电路201可用于收发信息或在通话过程中,对信号进行接收和发送,特别地,接收基站的下行信息后,转给处理器208进行处理;另外,将涉及上行的数据发送给基站。通常,RF电路201包括,但不限于:天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。
存储器202可用于存储软件程序以及模块,处理器208通过运行存储在存储器202中的软件程序以及模块,从而执行电子设备的各种功能应用以及数据处理。存储器202可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器202可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元203可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,输入单元203可包括触控面板2031以及其他输入设备2032。触控面板2031,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触控笔等任何适合的物体或附件在触控面板2031上或在触控面板2031附近的操作),并根据预先设定的程序驱动相应的连接装置。可选地,触控面板2031可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器208,并接收处理器208发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板2031。除了触控面板2031,输入单元203还可以包括其他输入设备2032。具体地,其他输入设备2032可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元204可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种菜单。显示单元204可包括显示面板2041,可选地,可以采用液晶显示器(LiquidCrystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板2041。进一步地,触控面板2031可覆盖显示面板2041,当触控面板2031检测到在其上或附近的触摸操作后,传送给处理器208以确定触摸事件的类型,随后处理器208根据触摸事件的类型在显示面板2041上提供相应的视觉输出。虽然在图2中,触控面板2031与显示面板2041是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板2031与显示面板2041集成而实现电子设备的输入和输出功能。
电子设备还可包括至少一种传感器205,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板2041的亮度,接近传感器可在电子设备移动到耳边时,关闭显示面板2041和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;此外,电子设备还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路206、扬声器2061,传声器2062可提供用户与电子设备之间的音频接口。音频电路206可将接收到的音频数据转换后的电信号,传输到扬声器2061,由扬声器2061转换为声音信号输出;另一方面,传声器2062将收集的声音信号转换为电信号,由音频电路206接收后转换为音频数据,再将音频数据输出处理器208处理后,经RF电路201发送给另一电子设备,或者将音频数据输出至存储器202以便进一步处理。
Wi-Fi属于短距离无线传输技术,电子设备通过WiFi模块207可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图2示出了Wi-Fi模块207,但是可以理解的是,其并不属于电子设备的必需构成,完全可以根据需要、在不改变发明本质的范围内进行省略。
处理器208是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器202内的软件程序和/或模块,以及调用存储在存储器202内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选地,处理器208可包括一个或多个处理单元;优选的,处理器208可集成应用处理器和调制解调器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器208中。
电子设备还包括给各个部件供电的电源209(比如电池),可选地,电源可以通过电源管理系统与处理器208逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,电子设备还可以包括摄像头、蓝牙模块等,在此不再赘述。
请参见图3,图3是本发明实施例公开的一种应用界面迁移的运行环境示意图。如图3所示,主要包括三层,从下往上依次为操作系统、系统接口、分布式服务框架、应用运行框架以及应用程序。
其中,操作系统提供了电子设备上的内存管理、设备管理等基础功能,提供了线程、进程等基础单元,同时,还为运行应用程序提供基础设施。
其中,系统接口提供了运行应用程序的基础接口、基础库,以及可以运行高级语言的虚拟机。
其中,分布式服务框架提供了分布式的基础能力,比如分布式组网、设备发现、设备能力查询、迁移发起及状态管理的能力,该分布式服务框架是实现UI状态迁移的基础。
其中,应用运行框架可以提供应用程序运行环境、组件渲染以及数据绑定等能力,页面路由的迁移机制、数据绑定的迁移机制以及UI组件私有状态的迁移机制的核心处理逻辑都在该层实现。
其中,在应用程序层上,可以基于提供的应用运行框架进行业务逻辑及UI界面的开发,开发模式使用标准的MVVM(Model-View-ViewModel)模式,数据和UI是分离的,只需要关注业务数据,即可在应用程序上支持UI的迁移。
请参见图4,图4是本发明实施例公开的一种电子设备的功能模块图。如图4所示,主要包括:应用程序、应用运行框架以及分布式服务等三个子系统,每个子系统均包括多个功能模块。
其中,应用程序子系统包括UI描述模块、业务逻辑模块以及样式信息模块,其中,UI描述模块主要用于对用户的UI界面进行描述,一般可以使用描述型语言实现,比如xml、json等;样式信息模块主要用于对UI组件的样式进行描述;业务逻辑模块主要用于实现用户的具体业务流程,可以包括数据源,该数据源即业务运行时的数据,可实时更新,该数据源可分为私有数据段和共享数据段,其中,共享数据段可用于UI状态迁移,其中,共享数据段中的数据为需要迁移的数据,比如UI界面当前运行状态需要的对外数据,可以是开关组件的value值,私有数据段中的数据通常是不希望迁移的数据,隐私级别较高,比如设备相关信息。此外,该业务逻辑模块还可以包括逻辑运行单元,比如代码或者脚本。
其中,应用运行框架子系统包括系统事件模块、UI组件模块、数据绑定模块、数据处理模块以及路由管理模块,其中,系统事件模块主要用于对接系统输入(比如触摸或者键盘输入)及其它系统事件,可以触发组件的状态更新及数据更新,另外,系统事件模块还用于监听是否有迁移事件,并通知数据处理模块;UI组件模块主要用于负责将应用程序的UI描述转换成实体的UI组件,并负责组件的渲染及重建刷新;数据绑定模块主要用于绑定应用程序的数据源及组件,对数据进行监听,数据改变时触发组件的重建刷新;数据处理模块主要用于将应用的实时数据进行压缩、加密和分布式服务子系统进行通信,将数据进行迁移;路由管理模块主要用于记录当前应用的页面路由栈,该页面路由栈可以通过数据处理模块进行序列化、压缩。
其中,分布式服务子系统包括分布式组网模块、分布式调度模块以及分布式权限模块,其中,分布式组网模块主要用于负责分布式设备的发现及组网;分布式调度模块主要用于负责设备能力的搜集查询,迁移发起及状态管理;分布式权限模块主要用于负责分布式网络内设备的权限校验,保证电子设备的可信。
基于前述实施例,下面阐述本发明实施例涉及的应用界面迁移方法。
图5是本发明实施例公开的一种应用界面迁移方法的流程图。如图5所示的应用界面迁移方法应用于第一电子设备中,所述方法包括如下步骤:
S51、第一电子设备通过第一分布式服务,生成针对目标应用的迁移指令。
其中,所述迁移指令用于指示将所述目标应用的用户交互界面UI状态迁移至第二电子设备。
具体地,所述第一电子设备通过第一分布式服务,生成针对目标应用的迁移指令的实现方式包括:
通过第一分布式服务,从所述第一电子设备的周围设备中,筛选出能够进行UI状态迁移的多个备选设备;
接收针对所述多个备选设备输入的选择指令,并根据所述选择指令,从所述多个备选设备中确定第二电子设备;
判断所述第一电子设备当前显示的目标应用是否具备UI状态迁移的权限;
若所述第一电子设备当前显示的目标应用具备UI状态迁移的权限,基于所述目标应用以及所述第二电子设备,生成所述迁移指令。
本发明实施例中,分布式组网模块可以根据周边网络设备信息(比如屏幕,内存)及分布式权限模块的信息,将周边设备(通常是距离该第一电子设备较近的设备)进行组网,构建一个由多个电子设备组成的分布式网络,进一步地,分布式调度模块可以根据分布式网络内的电子设备的能力(比如屏幕大小、内存大小、CPU能力),从所述第一电子设备的周围设备中筛选出可进行迁移的多个备选设备以供用户选择,当用户需要对目标应用进行迁移时,用户可以触发某个按钮或图标来生成针对所述多个备选设备输入的选择指令。当接收到针对所述多个备选设备输入的选择指令时,第一电子设备可以根据所述选择指令,从所述多个备选设备中将被选中的备选设备确定为第二电子设备,即能够迁移的设备;当发起迁移时,分布式调度模块需要通知到当前目标应用的系统事件模块,针对当前的迁移事件进行处理。
其中,目标应用在开发时,会在相应的回调事件中对该目标应用进行一些权限的设置,比如允许UI状态迁移,允许会员用户进行UI状态迁移,允许视频迁移等。因此,在用户决定要发起迁移时,该目标应用可能是无法迁移的,系统事件模块需要结合该目标应用的一些权限设置来判断当前是否允许UI状态迁移,如果允许,则会触发生成迁移指令,以指示将目标应用的UI状态从第一电子设备迁移至第二电子设备。
S52、第一电子设备响应于所述迁移指令,根据所述第一电子设备的场景信息,从所述目标应用的共享数据段中筛选出UI绑定数据。
其中,所述共享数据段中的数据用于实现UI状态的迁移,所述UI绑定数据与所述目标应用的组件相绑定,具体地,主要由数据处理模块通过数据绑定模块从目标应用的数据源中收集共享数据段中的数据,而不会收集私有数据段中的数据。
其中,针对共享数据段中的数据,可以预先定义共享数据段中的数据所适用的场景信息,其中,该场景信息可以包括,但不限于:设备类型、屏幕形态以及任意的配置信息。如下为一种定义数据的适用场景的方法:
本发明实施例中,在收集共享数据段内的数据时,可以根据所述第一电子设备的场景信息,从所述目标应用的共享数据段中筛选出有效的UI绑定数据进行处理,从而可以减少后续传输数据的大小,提高UI状态迁移的效率。
其中,该步骤S52涉及到数据绑定机制,该数据绑定机制具体实现为:通过数据绑定模块对共享数据段内的UI绑定数据进行数据监测,记录与该UI绑定数据绑定的UI组件以及依赖关系,当某个UI绑定数据发生改变时,数据绑定模块会通知到与该UI绑定数据对应的UI组件,UI组件使用最新的UI绑定数据更新其显示效果。通过该数据绑定机制,当第一电子设备的UI绑定数据迁移到第二电子设备,更新第二电子设备中应用程序的共享数据段的内容,即可实现UI组件视图的自动更新。
S53、第一电子设备获取所述目标应用的页面路由数据。
其中,该页面路由数据用于记载所述目标应用的页面的统一资源标识符(UniformResource Identifier,URI)信息,即页面的地址信息,后续可以根据该页面路由数据恢复目标应用的相关页面。
S54、第一电子设备获取所述目标应用的组件状态数据。
其中,该组件状态数据包括组件的标识数据以及组件的私有状态数据,该私有状态数据通常是用于描述组件内部状态的数据,比如组件的焦点状态、滚动位置状态等。标识数据用于唯一标识某个组件。
具体地,UI组件模块可以对当前目标应用的UI组件树进行遍历,将组件的私有状态数据及组件的标识数据进行收集。数据处理模块可以从UI组件模块中获取组件状态数据。
其中,有些组件的私有状态是没有直接绑定数据的,例如组件的焦点状态、列表的滑动位置状态等等,这类组件可以通过设置可迁移属性migratable及组件标识id来决定组件的私有状态数据是否迁移,比如,migratable为true时表示标识为id的组件的私有状态数据可迁移,migratable为false时表示标识为id的组件的私有状态数据不可迁移。UI组件模块可以根据UI组件的可迁移属性migratable决定UI组件的私有状态数据是否迁移。
当发起迁移时,可以对所有设置migratable属性的组件进行搜索,搜集migratable为true的组件的内部状态(即私有状态),并序列化成结构化数据,以生成组件状态数据。
S55、第一电子设备对所述UI绑定数据、所述页面路由数据以及所述组件状态数据进行处理,获得待迁移数据。
其中,对所述UI绑定数据、所述页面路由数据以及所述组件状态数据进行的处理可以包括,但不限于:序列化、压缩、加密等处理流程。
S56、第一电子设备通过所述第一分布式服务,将携带有所述待迁移数据的恢复指令发送至所述第二电子设备。
其中,可以通过分布式调度模块与第二电子设备的分布式调度模块进行通信,在第二电子设备上启动相同的目标应用,并将待迁移数据发送到所述第二电子设备。
在图5所描述的方法流程中,第一电子设备可以利用分布式服务组网,搜寻可迁移的设备并发起迁移流程,而不需要强依赖于某个服务中心,迁移机制更灵活,基于点对点的传输,能够提高后续页面迁移的效率。此外,还可以根据第一电子设备的场景信息,筛选有效的UI绑定数据,从而可以减少迁移时所传输的数据量的大小,整个过程,无需序列化完整的UI组件信息,使得迁移速度更快。
图6是本发明实施例公开的另一种应用界面迁移方法的流程图。如图6所示的应用界面迁移方法应用于第二电子设备中,所述方法包括如下步骤:
S61、第二电子设备通过第二分布式服务,接收恢复指令。
其中,所述恢复指令用于指示在所述第二电子设备上恢复目标应用的UI状态,所述恢复指令携带有待迁移数据,所述待迁移数据包括页面路由数据、UI绑定数据以及组件状态数据,所述UI绑定数据与所述目标应用的组件相绑定,组件状态数据即组件的私有状态数据,比如组件的焦点状态、滚动位置状态等。
本发明实施例中,第二电子设备可以通过内部的分布式调度模块接收第一电子设备发送的携带有待迁移数据的恢复指令,第二电子设备可以通过内部的分布式调度模块通知目标应用的数据处理模块对该待迁移数据进行恢复处理,以获得待迁移数据包括的页面路由数据、UI绑定数据以及组件状态数据,其中,该恢复处理可以包括,但不限于:反序列化、解压缩以及解密等处理流程。
本发明实施例中,如果第二电子设备当前未开启目标应用,可以通过分布式服务拉起第二电子设备上的目标应用,或者,如果第二电子设备当前未下载目标应用,可以通过分布式服务触发第二电子设备下载目标应用并开启目标应用。
S62、第二电子设备响应于所述恢复指令,根据所述页面路由数据,生成恢复路由栈,并基于所述恢复路由栈以及所述第二电子设备的当前页面路由栈,加载第一页面。
具体地,所述基于所述恢复路由栈以及所述第二电子设备的当前页面路由栈,加载第一页面包括:
获取所述恢复路由栈的栈顶的第一路由数据,并将所述第一路由数据移除至所述第二电子设备的当前页面路由栈的栈顶上;
基于所述当前页面路由栈的第一路由数据,加载第一页面。
本发明实施例中,可以通过一个栈来维护页面路由信息,在该栈内部可以记录当前跳转的页面信息,一般包含页面的标识(如名称)以及页面的统一资源标识符(UniformResource Identifier,URI)信息,路由管理模块可以将完整的页面路由栈的路由数据序列化成格式化数据,其中,该格式化数据比如字符串数据、二进制数据等。当第二电子设备获取到页面路由数据(即序列化后的格式化数据)后,即可根据该页面路由数据,生成恢复路由栈。
如图7A所示,图7A是本发明实施例公开的一种页面路由栈迁移的示意图。图7A中,第一电子设备在迁移前的页面路由信息由页面路由栈来维护,其中,该第一电子设备上的页面路由栈中的页面在第一电子设备上已经加载过了,经历了页面加载解析、布局渲染以及合成等过程,当第一电子设备发起迁移时,该页面路由栈上的数据被序列化并发送至第二电子设备的数据处理模块,并由数据处理模块发送至路由管理模块。其中,在第二电子设备上,存在两个路由栈:当前页面路由栈以及恢复路由栈,其中,恢复路由栈上的页面路由信息与第一电子设备上的页面路由信息一致,包含了Page 1至Page N所有页面的页面名字,以及每个页面对应的URI信息,即uri:xxx/page1……uri:xxx/page n。需要说明的是,该恢复路由栈里面的页面信息只是单纯的页面信息,并未加载过。相比较而言,当前页面路由栈为第二电子设备当前已经加载过的页面的信息,当前页面路由栈上的页面在第二电子设备上已经经历了页面加载解析、布局渲染、合成等过程,该当前页面路由栈里的每个页面已经关联了页面中组件的实体数据结构以及一些缓存,在该当前页面路由栈中弹出一个页面时,该当前页面路由栈内的下一个页面可以很快显示出来。
本发明实施例中,第二电子设备可以从恢复路由栈中将位于栈顶的第一路由数据移除,并将所述第一路由数据存放在所述第二电子设备的当前页面路由栈的栈顶上,如图7A所示,将恢复路由栈中的Page N(uri:xxxx/page n)移除并存放在当前页面路由栈的栈顶上,同时,将当前页面路由栈中原有栈顶上的Page M(uri:xxxx/page m)压入到下一层,进一步地,即可使用当前页面路由栈上的Page N(uri:xxxx/page n),加载相应的页面(即第一页面),通过UI组件模块对第一页面的组件内容进行渲染并显示。
作为一种可选的实施方式,所述应用界面迁移方法还包括:
接收针对所述第一页面的回退指令;
响应于所述回退指令,判断所述恢复路由栈是否为空;
若所述恢复路由栈不为空,获取所述恢复路由栈的栈顶的第二路由数据,并将所述第二路由数据移除至所述第二电子设备的当前页面路由栈的栈顶上;
基于所述当前页面路由栈的第二路由数据,加载第二页面。
在该可选的实施方式中,第二电子设备加载第一页面之后,如果用户想回退当前的第一页面,用户可以点击页面的某个按钮并触发生成针对所述第一页面的回退指令,第二电子设备从当前页面路由栈中弹出当前的第一页面,并判断所述恢复路由栈是否为空,如果所述恢复路由栈不为空,表明恢复路由栈中还存在与第一页面相关的页面,第二电子设备即可重复之前的操作,获取所述恢复路由栈的栈顶的第二路由数据,并将所述第二路由数据移除至所述第二电子设备的当前页面路由栈的栈顶上,基于所述当前页面路由栈的第二路由数据,加载第二页面。以此类推,如果后续接收到用户触发的针对第二页面的回退指令,第二电子设备会按照上述步骤流程处理。通过这种方式,可以在第二电子设备无缝对接在第一电子设备上加载过的所有页面,用户在第二电子设备上操作与在第一电子设备上操作是相同的体验,不会感觉到差异,从而可以提高用户体验。
作为一种可选的实施方式,所述应用界面迁移方法还包括:
若所述恢复路由栈为空,获取所述当前页面路由栈的栈顶的第三路由数据;
基于所述当前页面路由栈的第三路由数据,加载第三页面。
在该可选的实施方式中,恢复路由栈有可能会出现为空的情况,如果所述恢复路由栈为空,第二电子设备会获取所述当前页面路由栈的栈顶的第三路由数据,直接基于所述当前页面路由栈的第三路由数据,加载第三页面。其中,该第三路由数据为迁移之前第二电子设备的当前页面路由栈的栈顶上的数据,该第三页面也是迁移之前第二电子设备上显示的页面。
如图7B所示,图7B是本发明实施例公开的一种页面迁移的界面示意图。图7B中,用户在第一电子设备上点击页面1的一个笔记本的小图标,页面跳转到页面2中的笔记本电脑的售卖页面,用户在该页面2触发迁移,想要将第一电子设备上的页面2迁移至第二电子设备上,然而,当前第二电子设备处于页面3,第二电子设备的页面3与第一电子设备的页面2不同。执行如上所述的本发明的页面路由迁移机制后,第二电子设备上的页面从页面3切换成了页面2,实现了第一电子设备的页面2完整迁移到第二电子设备的视觉效果。
如图7C所示,当用户在第二电子设备的页面2中点击某个按钮触发针对页面2的回退指令时,第二电子设备执行上文所述的页面路由回退机制,将页面2回退至页面1,如果用户进一步点击返回,第二电子设备将页面1回退至页面3,整个过程,实现的页面迁移和回退的无缝衔接。
S63、第二电子设备根据所述第二电子设备的场景信息对应的声明字段,对所述UI绑定数据的兼容性进行校验;若所述UI绑定数据的兼容性被校验成功,将所述UI绑定数据存储至所述目标应用的共享数据段中。
其中,步骤S63中涉及到数据绑定机制,具体可以参考上文步骤S52中的相关描述。
具体地,所述根据所述第二电子设备的场景信息对应的声明字段,对所述UI绑定数据的兼容性进行校验包括:
获取所述第二电子设备的场景信息对应的声明字段;
判断所述UI绑定数据是否属于所述声明字段中声明的有效数据;
若所述UI绑定数据属于所述声明字段中声明的有效数据,确定所述UI绑定数据的兼容性被校验成功。
本发明实施例中,第一电子设备和第二电子设备上的目标应用可能会存在版本不同的情况,如果版本不同,将会导致无法迁移。因此,在进行数据恢复之前,需要进行数据的兼容性校验,以避免迁移失败的情况发生。
其中,针对第二电子设备,可以预先根据设备的场景信息定义一些有效数据的字段声明,根据该字段声明来进行兼容性校验,其中,场景信息可以包括,但不限于:设备类型、屏幕形态以及任意的配置信息。
举例来说,假设第一电子设备迁移的UI绑定数据如下表1,第二电子设备的场景信息对应的字段声明如下表2:
根据表1得到的字段集合S1为(Data1,Data2,…,Data X),根据表2得到的声明字段S2为(Data1,Data2,…,Data X),可以根据S1和S2进行兼容性校验,如果若则不存在兼容性问题,可以继续恢复数据,如果/>不成立,则第一电子设备和第二电子设备的目标应用可能存在兼容性问题,不能继续恢复数据,可以提示用户迁移失败,或者通知分布式调度模块对目标应用进行版本升级。其中,S1中的数据是第一电子设备根据场景信息筛选出来的有效数据集合,S2中的数据是第二电子设备根据场景信息筛选出来的有效数据字段声明集合。
作为一种可选的实施方式,所述加载第一页面之后,所述应用界面迁移方法还包括:
对所述UI绑定数据的完整性进行校验;
若所述UI绑定数据的完整性被校验成功,执行所述的根据所述第二电子设备的场景信息对应的声明字段,对所述UI绑定数据的兼容性进行校验;
所述若所述UI绑定数据的兼容性被校验成功,将所述UI绑定数据存储至所述目标应用的共享数据段中包括:
若所述UI绑定数据的兼容性被校验成功,确定所述目标应用的共享数据段所绑定的UI组件;
获取所述UI组件要求的第一数据类型;
判断所述第一数据类型与所述UI绑定数据的第二数据类型是否一致;
若所述第一数据类型与所述UI绑定数据的第二数据类型一致,将所述UI绑定数据存储至所述目标应用的共享数据段中。
在该可选的实施方式中,第二电子设备的数据处理模块收到迁移的UI绑定数据后,首先会对UI绑定数据的完整性进行校验,以确保数据未被篡改,其中,数据的完整性校验属于现有技术,在此不再赘述。在所述UI绑定数据的完整性被校验成功之后,对所述UI绑定数据的兼容性进行校验;在所述UI绑定数据的兼容性被校验成功之后,还需要对所述UI绑定数据的数据类型进行校验,以保证UI组件要求的数据类型与UI绑定数据的数据类型的一致性,保证后续恢复的正常进行。
一般UI组件的属性对绑定的数据有类型要求,其中,数据类型一般分为字符串、数字、对象、数组、布尔(bool)等类型,第二电子设备需要遍历检查当前目标应用中共享数据段绑定的UI组件,并确定UI组件要求的第一数据类型,进一步地,与UI绑定数据的第二数据类型进行比较,判断二者是否一致,若全部一致,则可以继续恢复数据,若存在不一致,则不能再继续恢复数据,可以提示用户迁移失败,或者通知分布式调度模块对目标应用进行升级。
在所述UI绑定数据的完整性、兼容性以及数据类型都校验成功后,即可将UI绑定数据存储至当前目标应用的共享数据段中,以触发数据绑定模块的数据监测事件,进一步更新UI组件的视图信息。
可选地,上述对所述UI绑定数据的完整性、兼容性以及数据类型进行校验时,如果有任一项校验失败,第二电子设备将会向第一电子设备发送通知消息,该通知消息用于指示迁移失败。
S64、第二电子设备确定所述目标应用中与所述组件状态数据对应的目标组件,并将所述组件状态数据恢复至所述目标组件中。
本发明实施例中,根据组件状态数据可以确定对应的目标组件,将所述组件状态数据恢复至所述目标组件中,即可完成组件状态的迁移。
其中,可以预先通过设置可迁移属性migratable及组件id,有助于快速恢复组件的私有状态。
S65、第二电子设备在所述第一页面上,刷新与所述UI绑定数据以及所述目标组件相关的组件视图。
本发明实施例中,在进行了页面路由数据、UI绑定数据以及组件状态数据的恢复后,第二电子设备可以刷新整个所述第一页面中的组件视图,即可完成目标应用从第一电子设备到第二电子设备的UI状态整体的迁移,从而实现了目标应用在不同电子设备上无缝衔接的效果。
在图6所描述的方法流程中,第二电子设备在恢复数据前,对数据进行了完整性校验、兼容性校验以及数据类型校验,以保证了数据的正常恢复。基于恢复路由栈和当前页面路由栈,进行页面恢复,能够确保页面在两个路由栈间的无缝迁移和恢复,实现了恢复路由和原路由管理联动的机制,此外,组件状态数据的设置,可以满足同一应用在不同设备间界面差异化显示的需求。整个页面的恢复过程,实现了UI状态在不同电子设备上的无缝迁移。
图8是本发明实施例公开的另一种应用界面迁移方法的流程图。如图8所示的应用界面迁移方法应用于第一电子设备和第二电子设备中,具体描述可以参考上文图5和图6中对应的方法步骤中的相关描述,在此不再赘述,其中,所述方法包括如下步骤:
S81、第一电子设备通过第一分布式服务,生成针对目标应用的迁移指令。
S82、第一电子设备响应于所述迁移指令,根据所述第一电子设备的场景信息,从所述目标应用的共享数据段中筛选出UI绑定数据。
S83、第一电子设备获取所述目标应用的页面路由数据。
S84、第一电子设备获取所述目标应用的组件状态数据。
S85、第一电子设备对所述UI绑定数据、所述页面路由数据以及所述组件状态数据进行处理,获得待迁移数据。
S86、第一电子设备通过分布式服务,将携带有所述待迁移数据的恢复指令发送至所述第二电子设备。
S87、第二电子设备响应于所述恢复指令,根据所述页面路由数据,生成恢复路由栈,并基于所述恢复路由栈以及所述第二电子设备的当前页面路由栈,加载第一页面。
S88、第二电子设备根据所述第二电子设备的场景信息对应的声明字段,对所述UI绑定数据的兼容性进行校验;若所述UI绑定数据的兼容性被校验成功,将所述UI绑定数据存储至所述目标应用的共享数据段中。
本发明实施例中,步骤S82和步骤S88涉及到数据绑定机制,具体参考上文的相关描述。
根据上述的数据绑定机制,可以实现图9A所示的页面,图9A是本发明实施例公开的一种数据迁移的界面示意图。如图9A所示,第一电子设备上有多个UI绑定数据,每个UI绑定数据均绑定相应的组件,比如图片地址信息绑定对应的图片,歌曲信息绑定对应的文字,播放进度信息绑定对应的进度条,播放状态信息绑定对应的播放控件等,根据上述的数据绑定机制,将各组件绑定的UI绑定数据从第一电子设备迁移至第二电子设备,即可实现完整应用场景的迁移。
S89、第二电子设备确定所述目标应用中与所述组件状态数据对应的目标组件,并将所述组件状态数据恢复至所述目标组件中。
本发明实施例中,可以预先通过设置可迁移属性migratable及组件id,有助于快速恢复组件的私有状态,同时,还有利于在一些差异化的电子设备中,准确地恢复某个组件的状态。
图9B中,第一电子设备属于小屏的设备,而第二电子设备属于大屏的设备,虽然第一电子设备和第二电子设备运行相同的目标应用,但是二者的布局是完全不同的。本发明实施例中,可以通过上述的组件id,快速、准确的定位到某个组件,并恢复某个组件的私有状态信息。如图9B所示,第一电子设备上,输入框Input Text中的光标位置和列表List的滚动位置等私有状态信息可以在第二电子设备上恢复一致,实现了组件私有状态的无缝迁移,而不会受到两个电子设备布局的影响。
S810、第二电子设备在所述第一页面上,刷新与所述UI绑定数据以及所述目标组件相关的组件视图。
S811、第二电子设备向第一电子设备发送通知消息。
其中,所述通知消息用于指示第一电子设备上的UI页面在第二电子设备上迁移成功。
可选地,第二电子设备进行页面路由数据的恢复、UI绑定数据的恢复以及组件状态数据的恢复时,若存在任一项恢复失败,第二电子设备将会向第一电子设备发送通知消息,该通知消息用于指示迁移失败。
在图8所描述的方法流程中,第一电子设备和第二电子设备之间通过分布式服务进行数据的通信,不依赖于某个数据中心,基于点对点的传输,能够提高后续页面迁移的效率。此外,在发起迁移之前,根据第一电子设备的场景信息对共享数据段内的数据进行了有效筛选,能够减少传输的数据量的大小,整个过程,无需序列化完整的UI组件信息,使得迁移速度更快。第二电子设备在恢复数据前,对数据进行了完整性校验,确保数据未被篡改,同时,保证了数据的正常恢复。基于恢复路由栈和当前页面路由栈,进行页面恢复,能够确保页面在两个路由栈间的无缝迁移和恢复,实现了恢复路由和原路由管理联动的机制。整个迁移过程,实现了UI组件在不同电子设备上的点对点迁移。
以上所述,仅是本发明的具体实施方式,但本发明的保护范围并不局限于此,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在处理器上运行时,实现图5或图6或图8所示的方法流程。
本发明实施例还提供一种计算机程序产品,当所述计算机程序产品在处理器上运行时,实现图5或图6或图8所示的方法流程。
结合本发明实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于电子设备中。当然,处理器和存储介质也可以作为分立组件存在于电子设备中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (13)
1.一种应用界面迁移系统,所述应用界面迁移系统包括第一电子设备和第二电子设备,其特征在于,
所述第一电子设备,用于通过第一分布式服务,生成针对目标应用的迁移指令,所述迁移指令用于指示将所述目标应用的用户交互界面UI状态迁移至第二电子设备;响应于所述迁移指令,根据所述第一电子设备的场景信息,从所述目标应用的共享数据段中筛选出UI绑定数据,其中,所述共享数据段中的数据用于UI状态的迁移,所述UI绑定数据与所述目标应用的组件相绑定;获取所述目标应用的页面路由数据;对所述UI绑定数据以及所述页面路由数据进行处理,获得待迁移数据;通过所述第一分布式服务,将携带有所述待迁移数据的恢复指令发送至所述第二电子设备;
所述第二电子设备,用于通过第二分布式服务,接收所述恢复指令,所述恢复指令用于指示在所述第二电子设备上恢复所述目标应用的UI状态,所述恢复指令携带有所述待迁移数据,所述待迁移数据包括所述页面路由数据以及所述UI绑定数据;响应于所述恢复指令,根据所述页面路由数据,生成恢复路由栈,并基于所述恢复路由栈以及所述第二电子设备的当前页面路由栈,加载第一页面;根据所述第二电子设备的场景信息对应的声明字段,对所述UI绑定数据的兼容性进行校验;若所述UI绑定数据的兼容性被校验成功,将所述UI绑定数据存储至所述目标应用的共享数据段中;刷新所述第一页面中与所述UI绑定数据相关的组件视图。
2.一种应用界面迁移方法,应用于第一电子设备,其特征在于,所述应用界面迁移方法包括:
通过第一分布式服务,生成针对目标应用的迁移指令,所述迁移指令用于指示将所述目标应用的用户交互界面UI状态迁移至第二电子设备;
响应于所述迁移指令,根据所述第一电子设备的场景信息,从所述目标应用的共享数据段中筛选出UI绑定数据,其中,所述共享数据段中的数据用于UI状态的迁移,所述UI绑定数据与所述目标应用的组件相绑定;
获取所述目标应用的页面路由数据,所述页面路由数据用于记载所述目标应用的页面的统一资源标识符URI信息;
对所述UI绑定数据以及所述页面路由数据进行处理,获得待迁移数据;
通过所述第一分布式服务,将携带有所述待迁移数据的恢复指令发送至所述第二电子设备,所述恢复指令用于指示在所述第二电子设备上恢复所述目标应用的UI状态。
3.根据权利要求2所述的应用界面迁移方法,其特征在于,所述通过第一分布式服务,生成针对目标应用的迁移指令包括:
通过所述第一分布式服务,从所述第一电子设备的周围设备中,筛选出能够进行UI状态迁移的多个备选设备;
接收针对所述多个备选设备输入的选择指令,并根据所述选择指令,从所述多个备选设备中确定第二电子设备;
判断所述第一电子设备当前显示的目标应用是否具备UI状态迁移的权限;
若所述第一电子设备当前显示的目标应用具备UI状态迁移的权限,基于所述目标应用以及所述第二电子设备,生成所述迁移指令。
4.根据权利要求2所述的应用界面迁移方法,其特征在于,所述获取所述目标应用的页面路由数据之后,所述应用界面迁移方法还包括:
获取所述目标应用的组件状态数据;
所述对所述UI绑定数据以及所述页面路由数据进行处理,获得待迁移数据包括:
对所述UI绑定数据、所述页面路由数据以及所述组件状态数据进行处理,获得待迁移数据。
5.一种应用界面迁移方法,应用于第二电子设备,其特征在于,所述应用界面迁移方法包括:
通过第二分布式服务,接收恢复指令,所述恢复指令用于指示在所述第二电子设备上恢复目标应用的用户交互界面UI状态,所述恢复指令携带有待迁移数据,所述待迁移数据包括页面路由数据以及UI绑定数据,所述UI绑定数据与所述目标应用的组件相绑定;
响应于所述恢复指令,根据所述页面路由数据,生成恢复路由栈,并基于所述恢复路由栈以及所述第二电子设备的当前页面路由栈,加载第一页面;
根据所述第二电子设备的场景信息对应的声明字段,对所述UI绑定数据的兼容性进行校验;若所述UI绑定数据的兼容性被校验成功,将所述UI绑定数据存储至所述目标应用的共享数据段中;
刷新所述第一页面中与所述UI绑定数据相关的组件视图。
6.根据权利要求5所述的应用界面迁移方法,其特征在于,所述待迁移数据还包括组件状态数据,所述将所述UI绑定数据存储至所述目标应用的共享数据段中之后,所述应用界面迁移方法还包括:
确定所述目标应用中与所述组件状态数据对应的目标组件;
将所述组件状态数据恢复至所述目标组件中;
所述刷新所述第一页面中与所述UI绑定数据相关的组件视图包括:
在所述第一页面上,刷新与所述UI绑定数据以及所述目标组件相关的组件视图。
7.根据权利要求5所述的应用界面迁移方法,其特征在于,所述根据所述第二电子设备的场景信息对应的声明字段,对所述UI绑定数据的兼容性进行校验包括:
获取所述第二电子设备的场景信息对应的声明字段;
判断所述UI绑定数据是否属于所述声明字段中声明的有效数据;
若所述UI绑定数据属于所述声明字段中声明的有效数据,确定所述UI绑定数据的兼容性被校验成功。
8.根据权利要求5所述的应用界面迁移方法,其特征在于,所述加载第一页面之后,所述应用界面迁移方法还包括:
对所述UI绑定数据的完整性进行校验;
若所述UI绑定数据的完整性被校验成功,执行所述的根据所述第二电子设备的场景信息对应的声明字段,对所述UI绑定数据的兼容性进行校验;
所述若所述UI绑定数据的兼容性被校验成功,将所述UI绑定数据存储至所述目标应用的共享数据段中包括:
若所述UI绑定数据的兼容性被校验成功,确定所述目标应用的共享数据段所绑定的UI组件;
获取所述UI组件要求的第一数据类型;
判断所述第一数据类型与所述UI绑定数据的第二数据类型是否一致;
若所述第一数据类型与所述UI绑定数据的第二数据类型一致,将所述UI绑定数据存储至所述目标应用的共享数据段中。
9.根据权利要求5至8中任一项所述的应用界面迁移方法,其特征在于,所述基于所述恢复路由栈以及所述第二电子设备的当前页面路由栈,加载第一页面包括:
获取所述恢复路由栈的栈顶的第一路由数据,并将所述第一路由数据移除至所述第二电子设备的当前页面路由栈的栈顶上;
基于所述当前页面路由栈的第一路由数据,加载第一页面。
10.根据权利要求5至8中任一项所述的应用界面迁移方法,其特征在于,所述应用界面迁移方法还包括:
接收针对所述第一页面的回退指令;
响应于所述回退指令,判断所述恢复路由栈是否为空;
若所述恢复路由栈不为空,获取所述恢复路由栈的栈顶的第二路由数据,并将所述第二路由数据移除至所述第二电子设备的当前页面路由栈的栈顶上;
基于所述当前页面路由栈的第二路由数据,加载第二页面。
11.根据权利要求10所述的应用界面迁移方法,其特征在于,所述应用界面迁移方法还包括:
若所述恢复路由栈为空,获取所述当前页面路由栈的栈顶的第三路由数据;
基于所述当前页面路由栈的第三路由数据,加载第三页面。
12.一种电子设备,其特征在于,包括处理器和存储器;所述存储器,用于存储指令;所述处理器,用于调用所述存储器中的指令,使得所述电子设备执行如权利要求2至4中任一项所述的应用界面迁移方法,或者执行如权利要求5至11中任一项所述的应用界面迁移方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现如权利要求2至4中任一项所述的应用界面迁移方法,或者,所述至少一个指令被处理器执行时实现如权利要求5至11中任一项所述的应用界面迁移方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010898935.1A CN114205365B (zh) | 2020-08-31 | 2020-08-31 | 应用界面迁移系统、方法及相关设备 |
EP21860073.2A EP4195623A4 (en) | 2020-08-31 | 2021-08-03 | APPLICATION INTERFACE MIGRATION SYSTEM, RELATED METHOD AND DEVICE |
US18/043,157 US20230362244A1 (en) | 2020-08-31 | 2021-08-03 | Application interface migration system and method, and related device |
PCT/CN2021/110392 WO2022042233A1 (zh) | 2020-08-31 | 2021-08-03 | 应用界面迁移系统、方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010898935.1A CN114205365B (zh) | 2020-08-31 | 2020-08-31 | 应用界面迁移系统、方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114205365A CN114205365A (zh) | 2022-03-18 |
CN114205365B true CN114205365B (zh) | 2023-06-20 |
Family
ID=80352633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010898935.1A Active CN114205365B (zh) | 2020-08-31 | 2020-08-31 | 应用界面迁移系统、方法及相关设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230362244A1 (zh) |
EP (1) | EP4195623A4 (zh) |
CN (1) | CN114205365B (zh) |
WO (1) | WO2022042233A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114926830B (zh) * | 2022-05-30 | 2023-09-12 | 南京数睿数据科技有限公司 | 屏幕图像识别方法、装置、设备和计算机可读介质 |
US20230409427A1 (en) * | 2022-06-17 | 2023-12-21 | Jpmorgan Chase Bank, N.A. | System and method for dynamic state reconciliation |
CN115935110B (zh) * | 2023-03-09 | 2023-08-08 | 云粒智慧科技有限公司 | 大屏数据迁移系统和方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102272747A (zh) * | 2008-11-03 | 2011-12-07 | 三星电子株式会社 | 用于管理远程用户界面的状态信息的方法和装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102932520B (zh) * | 2011-08-10 | 2015-02-18 | 阿里巴巴集团控股有限公司 | 移动设备之间的信息交互方法和系统 |
US20130055323A1 (en) * | 2011-08-31 | 2013-02-28 | General Instrument Corporation | Method and system for connecting a companion device to a primary viewing device |
US10251034B2 (en) * | 2013-03-15 | 2019-04-02 | Blackberry Limited | Propagation of application context between a mobile device and a vehicle information system |
CN106445663A (zh) * | 2016-09-14 | 2017-02-22 | 广东欧珀移动通信有限公司 | 应用数据的迁移方法及装置 |
CN107943439B (zh) * | 2016-10-13 | 2021-09-07 | 斑马智行网络(香港)有限公司 | 界面移动方法、装置、智能终端、服务器和操作系统 |
US10372443B2 (en) * | 2016-10-18 | 2019-08-06 | Oracle International Corporation | Multi-platform pattern-based user interfaces |
CN106792442B (zh) * | 2016-11-30 | 2020-07-03 | 北京小米移动软件有限公司 | 数据迁移方法及装置 |
CN109646940A (zh) * | 2018-12-19 | 2019-04-19 | 努比亚技术有限公司 | 同步应用程序的方法、终端及计算机可读存储介质 |
-
2020
- 2020-08-31 CN CN202010898935.1A patent/CN114205365B/zh active Active
-
2021
- 2021-08-03 EP EP21860073.2A patent/EP4195623A4/en active Pending
- 2021-08-03 WO PCT/CN2021/110392 patent/WO2022042233A1/zh unknown
- 2021-08-03 US US18/043,157 patent/US20230362244A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102272747A (zh) * | 2008-11-03 | 2011-12-07 | 三星电子株式会社 | 用于管理远程用户界面的状态信息的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP4195623A1 (en) | 2023-06-14 |
WO2022042233A1 (zh) | 2022-03-03 |
CN114205365A (zh) | 2022-03-18 |
EP4195623A4 (en) | 2024-02-07 |
US20230362244A1 (en) | 2023-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110582017B (zh) | 一种视频播放方法、装置、终端及存储介质 | |
CN114205365B (zh) | 应用界面迁移系统、方法及相关设备 | |
CN107329985B (zh) | 一种页面的收藏方法、装置和移动终端 | |
CN106502703B (zh) | 一种函数调用方法和装置 | |
CN115454286B (zh) | 应用数据的处理方法、装置和终端设备 | |
CN111736980B (zh) | 一种内存管理方法及装置 | |
CN110865837B (zh) | 一种进行系统升级的方法和终端 | |
EP3429176B1 (en) | Scenario-based sound effect control method and electronic device | |
CN113110939A (zh) | 运行数据的处理方法、装置、计算机设备及存储介质 | |
CN105847446B (zh) | 一种网络数据的获取方法、装置和系统 | |
CN111191176B (zh) | 网站内容更新方法、装置、终端及存储介质 | |
CN113742366A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN112231144A (zh) | 一种数据处理方法、装置及电子设备 | |
CN111857531A (zh) | 移动终端及其文件显示方法 | |
CN114115895A (zh) | 一种代码查询方法、装置、电子设备和存储介质 | |
WO2019085533A1 (zh) | 用于终端设备的应用处理的方法和终端设备 | |
CN112084157A (zh) | 文件恢复方法、装置、计算机设备及存储介质 | |
WO2022227997A1 (zh) | 内存申请方法及相关设备 | |
CN113742716B (zh) | 代码运行方法、装置、电子设备、存储介质和程序产品 | |
CN111522798B (zh) | 数据同步方法、装置、设备及可读存储介质 | |
CN114676371A (zh) | 页面的元素信息替换方法、装置、计算机设备及存储介质 | |
CN111625283A (zh) | 硬件更新方法、装置、系统和计算机可读存储介质 | |
CN114020309B (zh) | 通过webpack构建多页面应用的方法、装置及存储介质 | |
CN106970814B (zh) | 软件升级的处理方法、装置及系统 | |
CN117492930A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |