CN116414490A - 窗口管理方法、装置、电子设备和存储介质 - Google Patents

窗口管理方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN116414490A
CN116414490A CN202111661508.2A CN202111661508A CN116414490A CN 116414490 A CN116414490 A CN 116414490A CN 202111661508 A CN202111661508 A CN 202111661508A CN 116414490 A CN116414490 A CN 116414490A
Authority
CN
China
Prior art keywords
window
application
instruction
module
operation instruction
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
Application number
CN202111661508.2A
Other languages
English (en)
Inventor
虞洋
罗浩
袁勤顺
官象山
文平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202111661508.2A priority Critical patent/CN116414490A/zh
Publication of CN116414490A publication Critical patent/CN116414490A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请提供了一种窗口管理方法、装置、电子设备和存储介质,应用于电子设备,其中电子设备的主系统中混合运行主系统应用和客系统应用,上述窗口管理方法包括:指示目标应用在客系统中执行用户操作指令;应用显示模块获取目标应用执行用户操作指令而生成的窗口管理信息并生成窗口操作指令发送给代理应用模块;代理应用模块在主系统中执行窗口操作指令。通过客系统中的应用显示模块按照用户的操作指令对客系统中目标应用的窗口进行组织管理,而主系统中的代理应用模块仅按照应用管理模块对窗口的组织管理方式执行窗口管理,从而使得窗口的呈现依然遵循客系统的逻辑,实现了在主系统中运行客系统中目标应用时窗口的正确显示。

Description

窗口管理方法、装置、电子设备和存储介质
【技术领域】
本申请实施例涉及终端技术领域,尤其涉及一种窗口管理方法、装置、电子设备和存储介质。
【背景技术】
当主操作系统(以下简称主系统)在PC场景下的应用生态仅有少量的轻量级设计软件时,为了快速弥补主系统中专业设计与办公软件的不足,采用在主系统中无差别运行客操作系统(以下简称客系统)的应用的方案来提高主系统的生产力。
当在主系统环境下混合运行多个客系统应用和多个主系统应用时,在对不同系统下的应用进行用户操作时,由于不同的系统对窗口管理的机制不尽相同,导致在主系统桌面上显示的客系统应用的窗口出现错误。基于此,亟需一种解决方案,当在主系统中混合运行主系统应用和客系统应用时,能够保证在任何操作下能够将主系统应用的窗口和客系统应用的窗口正确的在主系统桌面上混合显示。
【发明内容】
本申请实施例提供了一种窗口管理方法、装置、电子设备和存储介质,用于当在主系统中混合运行主系统应用和客系统应用时,能够保证在任何操作下能够将主系统应用的窗口和客系统应用的窗口正确的在主系统桌面上混合显示。
第一方面,本申请实施例提供了一种窗口管理方法,应用于电子设备,所述电子设备包括主系统和客系统;所述客系统运行在所述主系统中,所述客系统预设有应用显示模块,所述主系统预设有代理应用模块,所述应用显示模块与所述代理应用模块通信连接,所述方法包括:收到针对所述客系统中目标应用的用户操作指令,传递所述用户操作指令,以使所述目标应用在所述客系统中执行所述用户操作指令;所述应用显示模块获取所述目标应用在所述客系统中执行所述用户操作指令而生成的窗口管理信息,根据所述窗口管理信息生成窗口操作指令发送给所述代理应用模块;所述代理应用模块在所述主系统中执行所述窗口操作指令以管理所述目标应用的窗口。
通过客系统中的应用显示模块按照用户的操作指令对客系统中目标应用的窗口进行组织管理,而主系统中的代理应用模块仅按照应用管理模块对窗口的组织管理方式执行窗口管理,从而使得窗口的呈现依然遵循客系统的逻辑,实现了在主系统中运行客系统中目标应用时窗口的正确显示。
在一种可能的实现方式中,所述收到针对所述客系统中目标应用的用户操作指令,传递所述用户操作指令,以使所述目标应用在所述客系统中执行所述用户操作指令包括:在主系统中收到针对所述客系统中目标应用的用户操作指令,将所述用户操作指令传递给所述代理应用模块,所述代理应用模块将所述用户操作指令发送给所述应用显示模块,所述应用显示模块将所述用户操作指令发送给所述目标应用,以使所述目标应用在所述客系统中执行所述用户操作指令。
在一种可能的实现方式中,所述收到针对所述客系统中目标应用的用户操作指令,传递所述用户操作指令,以使所述目标应用在所述客系统中执行所述用户操作指令包括:在所述客系统中收到针对所述客系统中目标应用的用户操作指令,将所述用户操作指令传递给所述目标应用,以使所述目标应用在所述客系统中执行所述用户操作指令。
本申请中,无论是在主系统中还是客系统中收到针对客系统中目标应用的用户操作指令,最终都要保证目标应用在客系统中执行用户操作指令,目的是为了在目标应用在客系统中执行时,获取目标应用在客系统中正确的窗口管理信息,为后续的窗口管理步骤服务。
在一种可能的实现方式中,当所述用户操作指令为打开应用窗口指令,所述应用显示模块获取所述目标应用在所述客系统中执行所述用户操作指令而生成的窗口管理信息,根据所述窗口管理信息生成窗口操作指令发送给所述代理应用模块包括:所述应用显示模块获取所述目标应用在所述客系统中执行打开应用窗口指令而生成的窗口创建信息,根据所述窗口创建信息生成窗口创建指令发送给所述代理应用模块;所述代理应用模块在所述主系统中执行所述窗口操作指令以管理所述目标应用的窗口包括:所述代理应用模块在主系统中执行所述窗口创建指令以创建所述目标应用的窗口。
通过上述方法保证了在主系统进行客系统目标应用的窗口创建时,目标应用在主系统桌面上显示的z-order与客系统内的z-order一致。
在一种可能的实现方式中,当所述用户操作指令为激活应用窗口指令,所述应用显示模块获取所述目标应用在所述客系统中执行所述用户操作指令而生成的窗口管理信息,根据所述窗口管理信息生成窗口操作指令发送给所述代理应用模块包括:所述应用显示模块获取所述目标应用在所述客系统中执行激活应用窗口指令而生成的窗口激活信息,根据所述窗口激活信息生成窗口激活指令发送给所述代理应用模块;所述代理应用模块在所述主系统中执行所述窗口操作指令以管理所述目标应用的窗口包括:所述代理应用模块在所述主系统中执行所述窗口激活指令以置顶所述目标应用的窗口。
通过上述方法保证了在主系统进行客系统目标应用的窗口激活时,目标应用在主系统桌面上显示的z-order与客系统内的z-order一致。
在一种可能的实现方式中,当所述用户操作指令为关闭应用窗口指令,所述应用显示模块获取所述目标应用在所述客系统中执行所述用户操作指令而生成的窗口管理信息,根据所述窗口管理信息生成窗口操作指令发送给所述代理应用模块包括:所述应用显示模块获取所述目标应用在所述客系统中执行所述关闭应用窗口指令而生成的窗口销毁信息,根据所述窗口销毁信息生成窗口销毁指令发送给所述代理应用模块;所述代理应用模块在所述主系统中执行所述窗口操作指令以管理所述目标应用的窗口包括:所述代理应用模块在所述主系统中执行所述窗口销毁指令以关闭所述目标应用的窗口。
通过上述方法保证了在主系统进行客系统目标应用的窗口关闭时,目标应用窗口关闭后在主系统桌面上显示的z-order与客系统内的z-order一致。
在一种可能的实现方式中,所述应用显示模块预设有能够动态更新的关联窗口排序关系,所述关联窗口排序关系用于指示所有已创建的应用窗口中存在关联关系的应用窗口之间的窗口显示排序关系,所述方法还包括:所述应用显示模块根据所述窗口创建信息判断所述目标应用的窗口与已创建的应用窗口是否存在关联关系,若是,则将所述目标应用的窗口与存在关联关系的应用窗口之间的窗口显示排序关系添加到所述关联窗口排序关系中。
通过应用显示模块将目标应用的窗口与存在关联关系的应用窗口之间的窗口显示排序关系添加到关联窗口排序关系中,以实现对窗口的z-order进行管理。
在一种可能的实现方式中,所述窗口创建信息还包括窗口激活信息,在所述应用显示模块根据所述窗口创建信息生成窗口创建指令发送给所述代理应用模块后,还包括:所述应用显示模块根据所述窗口激活信息生成窗口激活指令发送给所述代理应用模块;所述代理应用模块在所述主系统中执行所述窗口操作指令以管理所述目标应用的窗口还包括:所述代理应用模块在所述主系统中执行所述窗口激活指令以置顶所述目标应用的窗口。
通过上述方法保证了在主系统进行客系统目标应用的窗口创建并激活时,目标应用在主系统桌面上显示的z-order与客系统内的z-order一致。
在一种可能的实现方式中,所述应用显示模块预设有能够动态更新的关联窗口排序关系,所述关联窗口排序关系用于指示所有已创建的应用窗口中存在关联关系的应用窗口之间的窗口显示排序关系,当所述用户操作指令为激活应用窗口指令,所述应用显示模块获取所述目标应用在所述客系统中执行所述用户操作指令而生成的窗口管理信息,根据所述窗口管理信息生成窗口操作指令发送给所述代理应用模块包括:所述应用显示模块获取所述目标应用在所述客系统中执行所述激活应用窗口指令而生成的窗口激活信息,当根据当前的所述关联窗口排序关系检测到待激活的目标应用的窗口与已创建的应用窗口存在第一关联关系,则根据所述窗口激活信息和所述第一关联关系对应的窗口显示排序关系生成窗口激活序列指令发送给所述代理应用模块,所述窗口激活序列指令包括指示所述第一关联关系对应的所有应用窗口按照所述第一关联关系对应的窗口显示排序关系进行激活的激活指令;所述代理应用模块在所述主系统中执行所述窗口操作指令以管理所述目标应用的窗口包括:所述代理应用模块收到所述窗口激活序列指令,在所述主系统中执行所述窗口激活序列指令,以使所述待激活的目标应用的窗口和与其存在第一关联关系的已创建的应用窗口在主系统中按照所述第一关联关系对应的窗口显示排序关系显示。
通过上述方法保证了当待激活的窗口与已创建的窗口存在关联关系,在主系统进行客系统目标应用的窗口激活时,目标应用在主系统桌面上显示的z-order与客系统内的z-order一致。
在一种可能的实现方式中,所述应用显示模块获取所述目标应用在所述客系统中执行所述用户操作指令而生成的窗口管理信息,根据所述窗口管理信息生成窗口操作指令发送给所述代理应用模块还包括:当所述应用显示模块根据当前的所述关联窗口排序关系检测到所述待激活的目标应用的窗口与已创建的应用窗口不存在关联关系,则针对所述待激活的目标应用的窗口,根据所述窗口激活信息生成窗口激活指令发送给所述代理应用模块;所述代理应用模块在主系统中执行所述窗口操作指令以管理所述目标应用的窗口还包括:所述代理应用模块收到所述窗口激活指令,在主系统中执行所述窗口激活指令以置顶所述目标应用的窗口。
通过上述方法保证了当待激活的窗口与已创建窗口不存在关联关系时,在主系统进行客系统目标应用的窗口激活时,目标应用在主系统桌面上显示的z-order与客系统内的z-order一致。
在一种可能的实现方式中,所述应用显示模块根据所述窗口激活信息和所述第一关联关系对应的窗口显示排序关系生成窗口激活序列指令发送给所述代理应用模块,包括:针对所述第一关联关系对应的每个应用窗口分别生成窗口激活指令,并按照第一关联关系对应的窗口显示排序关系依次将每个应用窗口的窗口激活指令发送给所述代理应用模块;或者按照所述第一关联关系对应的窗口显示排序关系生成包含每个应用窗口激活顺序的窗口激活指令,将包含每个应用窗口激活顺序的窗口激活指令一次发送给所述代理应用模块,以使所述代理应用模块按照所述窗口激活顺序激活所述每个应用窗口。
可以选择任一种方式发送激活序列指令,都能达到相同的效果。
在一种可能的实现方式中,所述应用显示模块预设有能够动态更新的关联窗口排序关系,所述关联窗口排序关系用于指示所有已创建的应用窗口中存在关联关系的应用窗口之间的窗口显示排序关系,当所述用户操作指令为关闭应用窗口指令,所述应用显示模块获取所述目标应用在所述客系统中执行所述用户操作指令而生成的窗口管理信息,根据所述窗口管理信息生成窗口操作指令发送给所述代理应用模块包括:所述应用显示模块获取所述目标应用在所述客系统中执行所述关闭应用窗口指令而生成的窗口销毁信息,根据所述窗口销毁信息生成窗口销毁指令发送给所述代理应用模块,当根据当前的所述关联窗口排序关系检测到待关闭的目标应用的窗口与已创建的应用窗口存在第二关联关系,则从所述第二关联关系对应的窗口显示排序关系中将所述待关闭的目标应用的窗口删除;所述代理应用模块在所述主系统中执行所述窗口操作指令以管理所述目标应用的窗口包括:所述代理应用模块在主系统中执行所述窗口销毁指令以关闭所述目标应用的窗口。
通过上述方法保证了在主系统进行客系统目标应用的窗口关闭时,目标应用窗口关闭后在主系统桌面上显示的z-order与客系统内的z-order一致。
第二方面,本申请实施例还提供一种窗口管理装置,应用于电子设备,所述电子设备包括主系统和客系统;所述客系统运行在所述主系统中,所述窗口管理装置包括指令传递模块、应用显示模块和代理应用模块,所述应用显示模块预设在所述客系统中,所述代理应用模块预设在所述主系统中,所述应用显示模块与所述代理应用模块通信连接,其中:所述指令传递模块,用于收到针对所述客系统中目标应用的用户操作指令,传递所述用户操作指令,以使所述目标应用在所述客系统中执行所述用户操作指令;所述应用显示模块,用于获取所述目标应用在所述客系统中执行所述用户操作指令而生成的窗口管理信息,根据所述窗口管理信息生成窗口操作指令发送给所述代理应用模块;所述代理应用模块,用于在所述主系统中执行所述窗口操作指令以管理所述目标应用的窗口。
在一种可能的实现方式中,所述指令传递模块具体用于:在主系统中收到针对所述客系统中目标应用的用户操作指令,将所述用户操作指令传递给所述代理应用模块;所述代理应用模块还用于:将所述用户操作指令发送给所述应用显示模块;所述应用显示模块还用于:将所述用户操作指令发送给所述目标应用,以使所述目标应用在所述客系统中执行所述用户操作指令。
在一种可能的实现方式中,所述指令传递模块具体用于:在所述客系统中收到针对所述客系统中目标应用的用户操作指令,将所述用户操作指令传递给所述目标应用,以使所述目标应用在所述客系统中执行所述用户操作指令。
在一种可能的实现方式中,当所述用户操作指令为打开应用窗口指令,所述应用显示模块具体用于:获取所述目标应用在所述客系统中执行打开应用窗口指令而生成的窗口创建信息,根据所述窗口创建信息生成窗口创建指令发送给所述代理应用模块;所述代理应用模块具体用于:在主系统中执行所述窗口创建指令以创建所述目标应用的窗口。
在一种可能的实现方式中,当所述用户操作指令为激活应用窗口指令,所述应用显示模块具体用于:获取所述目标应用在所述客系统中执行激活应用窗口指令而生成的窗口激活信息,根据所述窗口激活信息生成窗口激活指令发送给所述代理应用模块;所述代理应用模块具体用于:在所述主系统中执行所述窗口激活指令以置顶所述目标应用的窗口。
在一种可能的实现方式中,当所述用户操作指令为关闭应用窗口指令,所述应用显示模块具体用于:获取所述目标应用在所述客系统中执行所述关闭应用窗口指令而生成的窗口销毁信息,根据所述窗口销毁信息生成窗口销毁指令发送给所述代理应用模块;所述代理应用模块具体用于:在所述主系统中执行所述窗口销毁指令以关闭所述目标应用的窗口。
在一种可能的实现方式中,所述应用显示模块预设有能够动态更新的关联窗口排序关系,所述关联窗口排序关系用于指示所有已创建的应用窗口中存在关联关系的应用窗口之间的窗口显示排序关系,所述应用显示模块还用于:根据所述窗口创建信息判断所述目标应用的窗口与已创建的应用窗口是否存在关联关系,若是,则将所述目标应用的窗口与存在关联关系的应用窗口之间的窗口显示排序关系添加到所述关联窗口排序关系中。
在一种可能的实现方式中,所述窗口创建信息还包括窗口激活信息,在所述应用显示模块根据所述窗口创建信息生成窗口创建指令发送给所述代理应用模块后,所述应用显示模块还用于:根据所述窗口创建信息生成窗口激活指令发送给所述代理应用模块;所述代理应用模块还用于:在所述主系统中执行所述窗口激活指令以置顶所述目标应用的窗口。
在一种可能的实现方式中,所述应用显示模块预设有能够动态更新的关联窗口排序关系,所述关联窗口排序关系用于指示所有已创建的应用窗口中存在关联关系的应用窗口之间的窗口显示排序关系,当所述用户操作指令为激活应用窗口指令,所述应用显示模块包括:激活信息获取子模块,用于获取所述目标应用在所述客系统中执行所述激活应用窗口指令而生成的窗口激活信息;激活序列生成子模块,用于当根据当前的所述关联窗口排序关系检测到待激活的目标应用的窗口与已创建的应用窗口存在第一关联关系,则根据所述窗口激活信息和所述第一关联关系对应的窗口显示排序关系生成窗口激活序列指令发送给所述代理应用模块,所述窗口激活序列指令包括指示所述第一关联关系对应的所有应用窗口按照所述第一关联关系对应的窗口显示排序关系进行激活的激活指令;所述代理应用模块包括激活序列执行子模块,用于收到所述窗口激活序列指令,在所述主系统中执行所述窗口激活序列指令,以使所述待激活的目标应用的窗口和与其存在第一关联关系的已创建的应用窗口在主系统中按照所述第一关联关系对应的窗口显示排序关系显示。
在一种可能的实现方式中,所述应用显示模块还包括激活指令生成子模块:用于当根据当前的所述关联窗口排序关系检测到所述待激活的目标应用的窗口与已创建的应用窗口不存在关联关系,则针对所述待激活的目标应用的窗口,根据所述窗口激活信息生成窗口激活指令发送给所述代理应用模块;所述代理应用模块还包括激活指令执行子模块,用于收到所述窗口激活指令,在主系统中执行所述窗口激活指令以置顶所述目标应用的窗口。
在一种可能的实现方式中,所述激活序列生成子模块,具体用于:针对所述第一关联关系对应的每个应用窗口分别生成窗口激活指令,并按照第一关联关系对应的窗口显示排序关系依次将每个应用窗口的窗口激活指令发送给所述代理应用模块;或者按照所述第一关联关系对应的窗口显示排序关系生成包含每个应用窗口激活顺序的窗口激活指令,将包含每个应用窗口激活顺序的窗口激活指令一次发送给所述代理应用模块,以使所述代理应用模块按照所述窗口激活顺序激活所述每个应用窗口。
在一种可能的实现方式中,所述应用显示模块预设有能够动态更新的关联窗口排序关系,所述关联窗口排序关系用于指示所有已创建的应用窗口中存在关联关系的应用窗口之间的窗口显示排序关系,当所述用户操作指令为关闭应用窗口指令,所述应用显示模块包括:销毁指令生成子模块,用于获取所述目标应用在所述客系统中执行所述关闭应用窗口指令而生成的窗口销毁信息,根据所述窗口销毁信息生成窗口销毁指令发送给所述代理应用模块;关系窗口删除子模块,用于当根据当前的所述关联窗口排序关系检测到待关闭的目标应用的窗口与已创建的应用窗口存在第二关联关系,则从所述第二关联关系对应的窗口显示排序关系中将所述待关闭的目标应用的窗口删除;所述代理应用模块包括销毁指令执行子模块,用于在主系统中执行所述窗口销毁指令以关闭所述目标应用的窗口。
第三方面,本申请实施例还提供一种电子设备,包括:至少一个处理器;存储器;以及至少一个计算机程序,其中所述至少一个计算机程序被存储在所述存储器中,所述至少一个计算机程序包括指令,当所述指令被所述电子设备执行时,使得所述电子设备执行如第一方面所述的窗口管理方法。
第四方面,本申请实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,当所述计算机可执行指令在电子设备上运行时,使得所述电子设备执行如第一方面所述的窗口管理方法。
第五方面,本申请实施例还提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行如第一方面所述的窗口管理方法。
【附图说明】
图1为本申请实施例提供的一种电子设备的结构示意图;
图2a为本申请实施例提供的一种Andriod系统桌面的应用场景示意图;
图2b为本申请实施例提供的另一种Andriod系统桌面的应用场景示意图;
图3为本申请实施例提供的一种窗口管理方法的架构示意图;
图4为本申请实施例提供的一种Android系统中运行Linux系统的架构示意图;
图5为本申请实施例提供的一种窗口管理方法的流程示意图;
图6为本申请实施例提供的另一种窗口管理方法的流程示意图;
图7为本申请实施例提供的又一种窗口管理方法的流程示意图;
图8为本申请实施例提供的再一种窗口管理方法的流程示意图;
图9为本申请实施例提供的另一种窗口管理方法的流程示意图;
图10a-图10f为本申请实施例提供的一种窗口管理方法的原理示意图;
图11为本申请实施例提供的一种窗口管理方法的流程示意图;
图12为本申请实施例提供的又一种窗口管理方法的流程示意图;
图13为本申请实施例提供的再一种窗口管理方法的流程示意图;
图14为本申请实施例提供的另一种窗口管理方法的流程示意图;
图15为本申请实施例提供的又一种窗口管理方法的流程示意图;
图16a-图16d为本申请实施例提供的一种窗口管理方法的原理示意图;
图17为本申请实施例提供的一种窗口管理装置的结构示意图。
【具体实施方式】
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例作进一步地详细描述。
为便于本领域技术人员对本申请的技术方案的理解,下面对本申请所涉及的技术术语进行说明。
1)应用程序(application,APP),可以简称应用,为能够实现某项或多项特定功能的软件程序。通常,电子设备中可以安装多个应用,例如,即时通讯类应用、视频类应用、音频类应用、图像拍摄类应用、云桌面类应用等等。其中,即时通信类应用,例如可以包括短信应用、
Figure BDA0003449735960000071
(WeChat)、WhatsApp/>
Figure BDA0003449735960000072
Figure BDA0003449735960000073
(Line)、/>
Figure BDA0003449735960000074
(instagram)、
Figure BDA0003449735960000075
等。图像拍摄类应用,例如可以包括相机应用(系统相机或第三方相机应用)。视频类应用,例如可以包括/>
Figure BDA0003449735960000076
等等。音频类应用,例如可以包括/>
Figure BDA0003449735960000077
等等。以下实施例中提到的应用,可以是电子设备出厂时已安装的系统应用,也可以是用户在使用电子设备的过程中从网络下载或其他电子设备获取的第三方应用。
2)z-order:窗口的z-order表明了在一堆堆叠的窗口中该窗口的位置。窗口的堆叠是沿着一条虚轴-Z轴,从屏幕里向外延伸的。在z-order顶端的窗口会压在其他窗口上,在z-order底部的窗口会被其他窗口所压。
3)activity,activity是
Figure BDA0003449735960000078
组件中最基本也是最为常见的四大组件之一,activity是一个应用程序组件,提供一个界面,用户可以用来交互以完成某项任务。
4)本申请实施例中“多个”是指两个或两个以上,鉴于此,本申请实施例中也可以将“多个”理解为“至少两个”。“至少一个”,可理解为一个或多个,例如理解为一个、两个或更多个。例如,包括至少一个,是指包括一个、两个或更多个,而且不限制包括的是哪几个,例如,包括A、B和C中的至少一个,那么包括的可以是A、B、C、A和B、A和C、B和C、或A和B和C。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
除非有相反的说明,本申请实施例提及“第一”、“第二”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。
本申请实施例提供的窗口管理方法可以应用于如图1所示电子设备100中,图1所示的电子设备100运行着一个主操作系统,以下简称主系统,此外为了弥补主系统中专业设计与办公软件的不足,电子设备100还运行着一个客操作系统,以下简称客系统,客系统和其应用运行在主系统下的虚拟机或者容器内,主系统中可以混合运行主系统应用和客系统应用,主系统桌面上可以混合显示主系统应用的窗口和客系统应用的窗口。
在一些实施例中,图1所示的电子设备100可以是个人计算机PC:personalcomputer,诸如台式电脑、笔记本电脑等,也可以是安装有操作系统的其他设备,例如物联网设备、手持终端等。
示例性的,图1以台式电脑为例示出了电子设备100的结构示意图。如图1所示,电子设备100可以包括:处理器110、存储器120和外围设备130等部件。可以理解的是,本申请实施例示意的电子设备100的结构并不构成对电子设备100的限定,本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。这些部件可通过一根或多根总线140或信号线进行通信,总线可以分为地址总线、数据总线、控制总线等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
外围设备130可以包括显示器、扬声器、麦克风等器件。
存储器120,用于存储电子设备100的系统所包括的代码和数据,例如应用程序和操作系统对应的代码。存储器120可以包括内存、外部存储器以及寄存器,内存可以用于存储操作系统以及处于运行状态的应用程序对应的代码,外部存储器以及寄存器可以用于存储处于运行状态的应用程序在运行过程中产生的数据,外部存储器还可以用于存储其他未运行的应用程序对应的代码。处理器110可将外部存储器中存储的代码或者数据调存到内存中,以实现该代码定义的功能。例如,处理器110可以在电子设备100开机时,将操作系统对应的代码调存到内存中,从而在电子设备100上实现操作系统的各种功能;处理器110也可以根据用户需求,将其他应用程序对应的代码调存到内存中,从而在电子设备100上实现该应用程序的各种功能。
在电子设备100上已安装了主系统,为了弥补主系统中专业设计与办公软件的不足,采用在主系统中无差别运行客系统应用的方案来提高主系统的生产力,即在主系统上可以无差别的兼容运行客系统的应用程序,以下以主系统为
Figure BDA0003449735960000091
系统,客系统为
Figure BDA0003449735960000092
系统为例进行介绍。
在相关技术中,当在Andriod系统环境下混合运行多个Linux应用和多个Android应用时,请参考图2a,图2a示出了一种Andriod系统桌面的应用场景示意图,如图2a所示在Android桌面上运行有四个应用,其中两个是Android应用:android app1、android app2,两个是Linux应用:Linux app1、Linux app2,其中android app1、android app2、Linuxapp2只打开1个窗口,而Linux app1打开有窗口1和窗口2。请参考图2b,图2b示出了Andriod系统桌面的另一个应用场景示意图,当我们在图2a所示的Android桌面上点击Linux app1的窗口1时,如图2b所示在Android桌面上的Linux app1的窗口1会被激活并置顶显示,这时Android系统侧的Linux app1窗口1的z-order发生改变,但Linux系统侧实际的Linux app1窗口1的z-order并没有发生改变,这是由于在Android系统侧和Linux系统侧没有关于窗口z-order变化的通知和更新机制,所以会出现在Android系统侧的Linux应用窗口的z-order和在Linux系统侧实际的Linux应用窗口的z-order不一致的情况,这种情况会导致在Android桌面上显示的Linux应用的窗口的z-order是错误的。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
图3为本申请实施例提供的一种窗口管理方法的架构示意图,应用于图1所示的电子设备100中,电子设备100中运行有客系统和主系统,其包括主系统和客系统;所述客系统运行在所述主系统中,在所述客系统中构建有应用显示模块,在所述主系统中构建有代理应用模块,所述应用显示模块与所述代理应用模块通信连接。其中,应用显示模块用来接收并组织管理客系统应用的窗口信息,同时把其中的窗口管理信息传递给主系统的代理应用模块,传递的窗口管理信息包括:窗口创建、窗口激活、窗口销毁等。代理应用模块用来接收客系统的应用显示模块发送的窗口管理信息,根据这些窗口管理信息调用主系统的系统服务对主系统中客系统应用的窗口的z-order进行管理。示例性的,当主系统为
Figure BDA0003449735960000093
系统,客系统为/>
Figure BDA0003449735960000094
系统时,代理应用模块根据应用显示模块发送的窗口管理信息对客系统应用进行管理,一方面创建与客系统应用对应的activity,一方面按照应用显示模块对窗口的管理信息调整这些activity的z-order。
图4为本申请实施例提供的一种Android系统中运行Linux系统的架构示意图,可以应用于图1所示的电子设备100中,电子设备100中运行有主系统-Android系统和客系统-Linux系统,Linux系统设置有应用显示模块和第一通信模块,Android系统设置有代理应用模块和与第一通信模块对应的第一通信模块客户端client。如图4所示,Linux系统下的可显示的图形应用有两种,一种是X11协议的应用,另外一种是wayland协议的应用。Linux系统和其应用可以运行在Android系统下的虚拟机或者容器内,其中X11协议的应用,通过X服务器(XServer)和应用显示模块进行交互,wayland协议的应用直接用wayland协议和应用显示模块进行交互,Linux应用向应用显示模块直接传输窗口、显示相关的信息,这些信息经过应用显示模块处理后,把应用单窗口的显示信息、单窗口的管理信息提取出来,通过第一通信模块和第一通信模块client传递给Android系统的应用代理模块,然后由应用代理模块调用android系统服务,完成android系统上显示linux应用窗口和图像的功能。
图5为本申请实施例提供的一种窗口管理方法的流程示意图,应用于图1所示的电子设备100中,如图5所示,所述窗口管理方法可以包括:
步骤101:收到针对所述客系统中目标应用的用户操作指令,传递所述用户操作指令,以使所述目标应用在所述客系统中执行所述用户操作指令。
步骤102:所述应用显示模块获取所述目标应用在所述客系统中执行所述用户操作指令而生成的窗口管理信息,根据所述窗口管理信息生成窗口操作指令发送给所述代理应用模块。
步骤103:所述代理应用模块在所述主系统中执行所述窗口操作指令以管理所述目标应用的窗口。
需要说明的是,本实施例中客系统中目标应用是指用户操作所针对的客系统中的应用程序,目标应用可以为客系统中任一个应用程序,本实施例对目标应用的类型不作限定。本实施例中用户操作指令可以包括:打开应用窗口、激活应用窗口、关闭应用窗口等用户操作对应的用户操作指令,本实施例对用户操作指令的类型不作限定。
上述窗口管理方法中,在对客系统中目标应用做了用户操作后,主系统必须等到客系统的应用显示模块发送的窗口操作指令来了之后再由主系统的代理应用模块按照应用显示模块的窗口操作指令进行相应的窗口显示,保证了主系统桌面上混合显示主系统应用的窗口和客系统应用的窗口时按照客系统的窗口显示逻辑显示针对客系统中目标应用的窗口。
在一些实施例中,收到针对客系统中目标应用的用户操作指令的情况可以分为两种,一种是在主系统中收到针对客系统中目标应用的用户操作指令,另一种是在客系统中收到针对客系统中目标应用的用户操作指令,以下针对两种情况分别进行介绍。
示例性的,当用户在主系统中对客系统中目标应用进行操作时,主系统会收到针对客系统中目标应用的用户操作指令,主系统会将用户操作指令传递给代理应用模块,代理应用模块再将用户操作指令发送给应用显示模块,应用显示模块将用户操作指令发送给目标应用,以使目标应用在客系统中执行用户操作指令。
示例性的,当用户在客系统中对目标应用进行操作时,客系统会收到针对目标应用的用户操作指令,客系统将所述用户操作指令传递给所述目标应用,以使所述目标应用在客系统中执行用户操作指令。
在上述实施例中,无论是在主系统中还是客系统中收到针对客系统中目标应用的用户操作指令,最终都要保证目标应用在客系统中执行用户操作指令。如果是在主系统中收到针对客系统中目标应用的用户操作指令,就会通过应用显示模块和代理应用模块进行用户操作指令传递,将用户操作指令传递给客系统中目标应用,以使目标应用在客系统中执行用户操作指令,这么操作的目的是为了在目标应用在客系统中执行时,获取目标应用在客系统中正确的窗口管理信息,为后续的窗口管理步骤服务。
在一些实施例中,针对客系统中目标应用的用户操作指令可以为打开应用窗口指令,当用户操作指令为打开应用窗口指令时,应用显示模块和代理应用模块会根据打开应用操作指令执行不同的操作,以保证客系统应用的窗口在主系统桌面上显示的z-order和在客系统内的z-order保持一致。
图6为本申请实施例提供的另一种窗口管理方法的流程示意图,如图6所示,在图5所示实施例中,当所述用户操作指令为打开应用窗口指令,步骤102可以包括:步骤1021:所述应用显示模块获取所述目标应用在所述客系统中执行打开应用窗口指令而生成的窗口创建信息,根据所述窗口创建信息生成窗口创建指令发送给所述代理应用模块。
步骤103可以包括:步骤1031:所述代理应用模块在主系统中执行所述窗口创建指令以创建所述目标应用的窗口。
其中,打开应用窗口指令可以为右键点击客系统目标应用、或者双击客系统目标应用生成的打开应用窗口指令。
需要说明的是,当目标应用在客系统执行打开应用窗口指令时,客系统会生成对应的窗口创建信息,应用显示模块获取所述窗口创建信息,将窗口创建信息转换为窗口创建指令发送给代理应用模块,代理应用模块在主系统中执行所述窗口创建指令以创建所述目标应用的窗口,通过上述方法保证了在主系统进行客系统目标应用的窗口创建时,目标应用在主系统桌面上显示的z-order与客系统内的z-order一致。
进一步的,在一些场景中,在打开客系统中目标应用的窗口后还需要将该应用的窗口置顶,即窗口创建信息中还包括了窗口激活信息。
图7为本申请实施例提供的又一种窗口管理方法的流程示意图,如图7所示,在图6所示实施例中,当所述窗口创建信息包括了窗口激活信息时,在步骤1021所述应用显示模块根据所述窗口创建信息生成窗口创建指令发送给所述代理应用模块步骤后,还包括:步骤10211:所述应用显示模块根据所述窗口激活信息生成窗口激活指令发送给所述代理应用模块;
步骤103还包括:步骤10311:所述代理应用模块在所述主系统中执行所述窗口激活指令以置顶所述目标应用的窗口。
需要说明的是:当目标应用在客系统执行打开应用窗口指令时,客系统除了生成对应的窗口创建信息以外,还生成窗口激活信息,应用显示模块获取所述窗口激活信息,将窗口激活信息转换为窗口激活指令发送给代理应用模块,代理应用模块在主系统中执行所述窗口激活指令以激活刚创建的目标应用的窗口,通过上述方法保证了在主系统进行客系统目标应用的窗口创建并激活时,目标应用在主系统桌面上显示的z-order与客系统内的z-order一致。
在一些实施例中,当客系统中目标应用的应用窗口已经打开后,针对客系统中目标应用的用户操作指令可以为激活应用窗口指令,当用户操作指令为激活应用窗口指令时,应用显示模块和代理应用模块会根据激活应用窗口指令执行不同的操作,以保证客系统应用的窗口在主系统桌面上显示的z-order和在客系统内的z-order保持一致。
图8为本申请实施例提供的再一种窗口管理方法的流程示意图,如图8所示,在图5所示实施例中,当用户操作指令为激活应用窗口指令时,步骤102可以包括:步骤1022:所述应用显示模块获取所述目标应用在所述客系统中执行激活应用窗口指令而生成的窗口激活信息,根据所述窗口激活信息生成窗口激活指令发送给所述代理应用模块。
步骤103可以包括:步骤1032:所述代理应用模块在所述主系统中执行所述窗口激活指令以置顶所述目标应用的窗口。
需要说明的是,通过上述方法保证了在主系统进行客系统目标应用的窗口激活时,目标应用在主系统桌面上显示的z-order与客系统内的z-order一致。
在一些实施例中,当客系统中目标应用的应用窗口已经打开后,针对客系统中目标应用的用户操作指令可以为关闭应用窗口指令,当用户操作指令为关闭应用窗口指令时,应用显示模块和代理应用模块会根据关闭应用窗口指令执行不同的操作,以保证客系统应用的窗口在主系统桌面上显示的z-order和在客系统内的z-order保持一致。
图9为本申请实施例提供的另一种窗口管理方法的流程示意图,如图9所示,在图5所示实施例中,当所述用户操作指令为关闭应用窗口指令,步骤102可以包括:
步骤1023:所述应用显示模块获取所述目标应用在所述客系统中执行所述关闭应用窗口指令而生成的窗口销毁信息,根据所述窗口销毁信息生成窗口销毁指令发送给所述代理应用模块。
步骤103可以包括:步骤1033:所述代理应用模块在所述主系统中执行所述窗口销毁指令以关闭所述目标应用的窗口。
需要说明的是,通过应用显示模块根据获取的窗口销毁信息生成窗口销毁指令,并发送给代理应用模块在主系统中执行的方法,保证了在主系统进行客系统目标应用的窗口关闭时,目标应用窗口关闭后在主系统桌面上显示的z-order与客系统内的z-order一致。
以下以主系统为Android系统,客系统为Linux系统为例,在应用场景中介绍在Android系统或者Linux系统中输入针对Linux系统中目标应用的打开应用窗口指令、激活应用窗口指令或者关闭应用窗口指令时的窗口管理流程。
应用场景一,图10a为本申请实施例提供的一种窗口管理方法的原理示意图,如图10a所示,当用户在Android系统执行打开目标应用的操作,例如点击Android桌面上的Linux应用启动图标时,电子设备获取到对应的打开应用窗口指令,将该打开应用窗口指令传递给代理应用模块,窗口管理流程包括:步骤2011,代理应用模块将打开应用窗口指令发送给应用显示模块,步骤2012,应用显示模块将打开应用窗口指令发送给目标应用,步骤2013,目标应用打开并创建窗口,生成窗口创建信息和窗口激活信息,步骤2014,应用显示模块获取窗口创建信息,根据窗口创建信息生成窗口创建指令,步骤2015,应用显示模块将窗口创建指令发送给代理应用模块,步骤2016,代理应用模块创建目标应用的activity,用于映射和管理Linux系统侧对应的窗口,步骤2017,应用显示模块获取窗口激活信息,步骤2018,应用显示模块将窗口激活指令发送给代理应用模块,步骤2019,代理应用模块置顶目标应用的窗口对应的activity,其中,本实施例提到的置顶目标应用窗口也可以叫做激活目标应用窗口。
应用场景二,图10b为本申请实施例提供的另一种窗口管理方法的原理示意图,如图10b所示,当用户在Linux系统侧打开目标应用,例如用户通过命令行、其他应用自动拉起等从Linux系统侧打开目标应用时,电子设备获取到打开目标应用的用户操作指令,窗口管理流程包括:步骤2021,目标应用打开并创建窗口,生成窗口创建信息和窗口激活信息,步骤2022,应用显示模块获取窗口创建信息,根据窗口创建信息生成窗口创建指令,步骤2023,应用显示模块将窗口创建指令发送给代理应用模块,步骤2024,代理应用模块创建目标应用的窗口的activity,用于映射和管理Linux系统侧对应的窗口,步骤2025,应用显示模块获取窗口激活信息,步骤2026,应用显示模块将窗口激活指令发送给代理应用模块,步骤2027,代理应用模块置顶目标应用的窗口对应的activity。
应用场景三:图10c为本申请实施例提供的再一种窗口管理方法的原理示意图,如图10c所示,当用户在Android系统执行激活目标应用的窗口的操作,例如点击目标应用的窗口时,电子终端设备收到对应的第一用户操作指令,将所述第一用户操作指令传递给代理应用模块,窗口管理流程包括:步骤2031,代理应用模块将第一用户操作指令发送给应用显示模块,步骤2032,应用显示模块将第一用户操作指令发送给目标应用,步骤2033,目标应用识别出第一用户操作指令为激活窗口指令后执行,生成窗口激活信息,步骤2034,应用显示模块获取窗口激活信息,根据窗口激活信息生成窗口激活指令,步骤2035,应用显示模块将窗口激活指令发送给代理应用模块,步骤2036,代理应用模块激活目标应用的窗口对应的activity。
应用场景四:图10d为本申请实施例提供的又一种窗口管理方法的原理示意图,如图10d所示,当用户在Linux系统激活目标应用的窗口,例如快捷键操作时,电子设备收到窗口激活的用户操作指令,窗口管理流程包括:步骤2041,目标应用激活窗口,生成窗口激活信息,步骤2042,应用显示模块获取窗口激活信息,根据窗口激活信息生成窗口激活指令,步骤2043,应用显示模块将窗口激活指令发送给代理应用模块,步骤2044,代理应用模块激活目标应用的窗口对应的activity。
应用场景五:图10e为本申请实施例提供的一种窗口管理方法的原理示意图,如图10c所示,当用户在Android系统执行关闭目标应用窗口的操作,例如点击窗口右上角的×按钮时,电子设备收到对应的第二用户操作指令,窗口管理流程包括:步骤2051,代理应用模块将第二用户操作指令发送给应用显示模块,步骤2052,应用显示模块将第二用户操作指令发送给目标应用,步骤2053,目标应用识别出第二用户操作指令为关闭窗口指令后执行,生成窗口关闭信息,步骤2054,应用显示模块获取窗口关闭信息,根据窗口关闭信息生成窗口关闭指令,步骤2055,应用显示模块将窗口关闭指令发送给代理应用模块,步骤2036,代理应用模块关闭目标应用的窗口对应的activity。
应用场景六:图10f为本申请实施例提供的一种窗口管理方法的原理示意图,如图10f所示,当用户在Linux系统关闭目标应用的窗口、例如用命令行杀死对应的应用、或者应用由于出现问题异常退出时,电子设备收到窗口关闭的用户操作指令,窗口管理流程包括:步骤2061,目标应用关闭窗口,生成窗口关闭信息,步骤2062,应用显示模块获取窗口关闭信息,根据窗口关闭信息生成窗口关闭指令,步骤2063,应用显示模块将窗口关闭指令发送给代理应用模块,步骤2064,代理应用模块关闭目标应用的窗口对应的activity。
示例性的,在图2a所示的Android桌面上运行有四个应用,每个应用有至少1个窗口,当某个应用的窗口超过1个后,窗口之间就可能存在关联关系,这里的关联关系可以包括父子关系,父子关系的窗口的z-order需满足如下要求:子窗口的z-order大于父窗口的z-order,即子窗口一定在父窗口的上面显示。关联关系不仅限于父子关系,只要对2个或2个以上窗口的显示顺序有要求的关系都可以认为是关联关系。当我们在Android桌面上点击Linux app1的窗口1时,请参考图2b,如图2b所示在Android桌面上的Linux app1的窗口1会被激活并置顶显示,由于Linux app1的窗口1是窗口2的父窗口,因此在Android桌面上显示的Linux app1的窗口2显示在窗口1上面时z-order是错误的。为了解决当客系统中目标应用的窗口存在关联关系时在主系统桌面显示的z-order错误问题,需要对本申请的方案进行进一步优化。
图11为本申请实施例提供的一种窗口管理方法的流程示意图,如图11所示,在图6所示实施例中,所述应用显示模块预设有能够动态更新的关联窗口排序关系,所述关联窗口排序关系用于指示所有已创建的应用窗口中存在关联关系的应用窗口之间的窗口显示排序关系,步骤102还包括:
步骤1041:所述应用显示模块根据所述窗口创建信息判断所述目标应用的窗口与已创建的应用窗口是否存在关联关系,若是,则将所述目标应用的窗口与存在关联关系的应用窗口之间的窗口显示排序关系添加到所述关联窗口排序关系中。
需要说明的是,应用显示模块用于对窗口关系进行管理,应用显示模块预存有关联窗口排序关系,当在客系统中创建目标应用的窗口时,窗口创建信息携带的关系包含了他的父子关系,因此应用显示模块要将目标应用的窗口与存在关联关系的应用窗口之间的窗口显示排序关系添加到所述关联窗口排序关系中,以对窗口的z-order进行管理。
进一步的,在打开客系统中目标应用的应用窗口后还需要将该应用窗口置顶,即窗口创建信息中还包括了窗口激活信息。
图12为本申请实施例提供的又一种窗口管理方法的流程示意图,如图12所示,在图11所示实施例中,当所述窗口创建信息包括了窗口激活信息时,在步骤1021所述应用显示模块根据所述窗口创建信息生成窗口创建指令发送给所述代理应用模块步骤后,还包括:步骤10211:所述应用显示模块根据所述窗口激活信息生成窗口激活指令发送给所述代理应用模块;
步骤1031还包括:步骤10311:所述代理应用模块在所述主系统中执行所述窗口激活指令以置顶所述目标应用的窗口。
需要说明的是:通过上述方法保证了在主系统进行客系统目标应用的窗口创建并激活时,目标应用在主系统桌面上显示的z-order与客系统内的z-order一致。
在一些实施例中,当客系统中目标应用的应用窗口已经打开后,针对客系统中目标应用的用户操作指令可以为激活应用窗口指令,当用户操作指令为激活应用窗口指令,且应用窗口存在关联关系时,应用显示模块和代理应用模块会根据激活应用窗口指令执行不同的操作,以保证客系统应用的窗口在主系统桌面上显示的z-order和在客系统内的z-order保持一致。
图13为本申请实施例提供的再一种窗口管理方法的流程示意图,如图13所示,在图5所示实施例中,所述应用显示模块预设有能够动态更新的关联窗口排序关系,所述关联窗口排序关系用于指示所有已创建的应用窗口中存在关联关系的应用窗口之间的窗口显示排序关系,当用户操作指令为激活应用窗口指令时,步骤102可以包括:
步骤1042:所述应用显示模块获取所述目标应用在所述客系统中执行所述激活应用窗口指令而生成的窗口激活信息,当根据当前的所述关联窗口排序关系检测到待激活的目标应用的窗口与已创建的应用窗口存在第一关联关系,则根据所述窗口激活信息和所述第一关联关系对应的窗口显示排序关系生成窗口激活序列指令发送给所述代理应用模块,所述窗口激活序列指令包括指示所述第一关联关系对应的所有应用窗口按照所述第一关联关系对应的窗口显示排序关系进行激活的激活指令。
步骤103可以包括:步骤1043:所述代理应用模块收到所述窗口激活序列指令,在所述主系统中执行所述窗口激活序列指令,以使所述待激活的目标应用的窗口和与其存在第一关联关系的已创建的应用窗口在主系统中按照所述第一关联关系对应的窗口显示排序关系显示。
需要说明的是,当待激活的窗口与其他已创建的窗口存在第一关联关系时,需要根据第一关联关系对应的窗口显示排序关系生成窗口激活序列指令,以实现按照窗口显示排序关系依次激活各个窗口。通过上述方法保证了当待激活的窗口与已创建的窗口存在关联关系,在主系统进行客系统目标应用的窗口激活时,目标应用在主系统桌面上显示的z-order与客系统内的z-order一致。
进一步的,当客系统中目标应用的应用窗口已经打开后,针对客系统中目标应用的用户操作指令可以为激活应用窗口指令,当用户操作指令为激活应用窗口指令,且应用窗口不存在关联关系时,应用显示模块和代理应用模块会根据激活应用窗口指令执行不同的操作,以保证客系统应用的窗口在主系统桌面上显示的z-order和在客系统内的z-order保持一致。
图14为本申请实施例提供的另一种窗口管理方法的流程示意图,如图14所示,在图5所示实施例中,所述应用显示模块预设有能够动态更新的关联窗口排序关系,所述关联窗口排序关系用于指示所有已创建的应用窗口中存在关联关系的应用窗口之间的窗口显示排序关系,当用户操作指令为激活应用窗口指令时,步骤102可以包括:
步骤1044:所述应用显示模块获取所述目标应用在所述客系统中执行所述激活应用窗口指令而生成的窗口激活信息,当所述应用显示模块根据当前的所述关联窗口排序关系检测到所述待激活的目标应用的窗口与已创建的应用窗口不存在关联关系,则针对所述待激活的目标应用的窗口,根据所述窗口激活信息生成窗口激活指令发送给所述代理应用模块。
步骤103可以包括:步骤1045:所述代理应用模块收到所述窗口激活指令,在主系统中执行所述窗口激活指令以置顶所述目标应用的窗口。
需要说明的是,当待激活的窗口与已创建窗口不存在关联关系时,则生成针对待激活窗口的窗口激活指令以激活待激活的窗口。通过上述方法保证了在主系统进行客系统目标应用的窗口激活时,目标应用在主系统桌面上显示的z-order与客系统内的z-order一致。
可以理解的是,所述应用显示模块根据所述窗口激活信息和所述第一关联关系对应的窗口显示排序关系生成窗口激活序列指令发送给所述代理应用模块可以,包括:针对所述第一关联关系对应的每个应用窗口分别生成窗口激活指令,并按照第一关联关系对应的窗口显示排序关系依次将每个应用窗口的窗口激活指令发送给所述代理应用模块;或者
按照所述第一关联关系对应的窗口显示排序关系生成包含每个应用窗口激活顺序的窗口激活指令,将包含每个应用窗口激活顺序的窗口激活指令一次发送给所述代理应用模块,以使所述代理应用模块按照所述窗口激活顺序激活所述每个应用窗口。
通过一个例子来说明上面的技术方案,当用户要激活应用A的窗口2,应用A的窗口2与应用A的窗口3存在关联关系,即窗口3为子窗口,窗口2为父窗口:窗口3必须显示在窗口2上面,那么发送的窗口激活序列指令,有两种方式,一种是逐条发送,即依次发两条窗口激活指令,第1条是窗口2的激活指令,第2条是窗口3的激活指令,由于窗口3比窗口2后激活,因此窗口3显示在窗口2的上面;另一种是打包发送,即发一条窗口激活指令,这条窗口激活指令中包含了先激活窗口2,再激活窗口3的指令,由于窗口3比窗口2后激活,因此窗口3显示在窗口2的上面。可见两种方式发送的激活序列指令都是一样的效果,只是发送的方式有区别。此外也可以采取其他方式发送激活指令,只要能实现相同的效果,因此本实施例不限定激活序列指令的构成形式。在该例子中,如果用户要激活应用A的窗口3,由于应用A的窗口2与应用A的窗口3存在关联关系:窗口3必须显示在窗口2上面。由于窗口2和窗口3是被捆绑在一起的,因此发送的窗口激活序列指令与激活窗口2的指令是一样的,且都是按照显示排序顺序从下到上发送对应窗口的激活指令。这里不再赘述。
在一些实施例中,当客系统中目标应用的应用窗口已经打开后,针对客系统中目标应用的用户操作指令可以为关闭应用窗口指令,当用户操作指令为关闭应用窗口指令时,应用显示模块和代理应用模块会根据激活应用窗口指令执行不同的操作,以保证客系统应用的窗口在主系统桌面上显示的z-order和在客系统内的z-order保持一致。
图15为本申请实施例提供的又一种窗口管理方法的流程示意图,如图15所示,在图5所示实施例中,所述应用显示模块预设有能够动态更新的关联窗口排序关系,所述关联窗口排序关系用于指示所有已创建的应用窗口中存在关联关系的应用窗口之间的窗口显示排序关系,步骤102可以包括:
步骤1046:所述应用显示模块获取所述目标应用在所述客系统中执行所述关闭应用窗口指令而生成的窗口销毁信息,根据所述窗口销毁信息生成窗口销毁指令发送给所述代理应用模块,当根据当前的所述关联窗口排序关系检测到待关闭的目标应用的窗口与已创建的应用窗口存在第二关联关系,则从所述第二关联关系对应的窗口显示排序关系中将所述待关闭的目标应用的窗口删除。
步骤103可以包括:步骤1047:所述代理应用模块在主系统中执行所述窗口销毁指令以关闭所述目标应用的窗口。
需要说明的是,当某一个应用窗口要关闭时,需要检测其是否与其他窗口存在关联关系,若存在,则在窗口显示排序关系中将待关闭的目标应用的窗口删除,以实现窗口显示排序关系的及时更新。通过上述方法保证了在主系统进行客系统目标应用的窗口关闭时,目标应用窗口关闭后在主系统桌面上显示的z-order与客系统内的z-order一致。
以下以主系统为Android系统,客系统为Linux系统,Linux系统中目标应用的窗口存在父子关系为例,在应用场景中详细介绍在Android系统或者在Linux系统中输入针对Linux系统中目标应用的打开应用窗口指令、激活应用窗口指令或者关闭应用窗口指令时的窗口管理流程。
应用场景一:图16a为本申请实施例提供的一种窗口管理方法的原理示意图,如图16a所示,当用户在Android系统执行打开目标应用的窗口的操作时,例如点击Android桌面上的Linux应用启动图标时,电子设备接收到对应的第三用户操作指令,窗口管理流程包括:步骤3011,代理应用模块将第三用户操作指令发送给应用显示模块,步骤3012,应用显示模块将第三用户操作指令发送给目标应用,步骤3013,目标应用识别出第三用户操作指令对应创建窗口指令并执行,生成窗口创建信息和窗口激活信息,步骤3014,应用显示模块获取窗口创建信息,根据窗口创建信息生成窗口创建指令,步骤3015,应用显示模块将窗口创建指令发送给代理应用模块,步骤3016,代理应用模块创建目标应用的activity,步骤3017,应用显示模块获取窗口激活信息,步骤3018,应用显示模块将窗口激活指令发送给代理应用模块,步骤3019,代理应用模块置顶目标应用的activity,步骤3020,应用显示模块判断新建窗口与已创建窗口存在关联关系,将关联关系对应的窗口显示排序关系添加到关联窗口排序关系中。当用户在Linux系统打开目标应用时,窗口管理流程则从步骤3013开始执行,执行到步骤3020结束,这里不再赘述。
应用场景二,图16b为本申请实施例提供的一种窗口管理方法的原理示意图,如图16b所示,当用户在Android系统执行激活目标应用的子窗口操作,例如点击目标应用的子窗口时,电子设备收到对应的第四用户操作指令,窗口管理流程包括:步骤3021,将第四用户操作指令传递给代理应用模块,步骤3022,代理应用模块将第四用户操作指令发送给应用显示模块,步骤3023,应用显示模块将第四用户操作指令发送给目标应用,步骤3024,目标应用识别到第四用户操作指令位激活子窗口操作指令后执行,顺序激活父窗口、子窗口,生成窗口激活信息,步骤3025,应用显示模块获取窗口激活信息,根据窗口激活信息和窗口显示排序关系生成窗口激活序列(窗口激活序列包括父窗口的窗口激活指令和子窗口的窗口激活指令),步骤3026,应用显示模块将父窗口的窗口激活指令发送给代理应用模块,步骤3027:应用显示模块将子窗口的窗口激活指令发送给代理应用模块,步骤3028,代理应用模块置顶目标应用的父窗口的activity,步骤3029,代理应用模块置顶目标应用的子窗口的activity。当用户在Linux系统激活目标应用的子窗口时,窗口管理流程则从步骤3024开始执行,执行到步骤3029结束,这里不再赘述。
应用场景三:图16c为本申请实施例提供的一种窗口管理方法的原理示意图,如图16c所示,当用户在Android系统执行激活目标应用的父窗口的操作,例如点击目标应用的父窗口时,电子设备收到对应的第五用户操作指令,窗口管理流程包括:步骤3031,将第五用户操作指令传递给代理应用模块,步骤3032,代理应用模块将第五用户操作指令发送给应用显示模块,步骤3033,应用显示模块将第五用户操作指令发送给目标应用,步骤3034,目标应用识别到第五用户操作指令为激活父窗口指令后执行,顺序激活父窗口、子窗口,生成窗口激活信息,步骤3035,应用显示模块获取窗口激活信息,根据窗口激活信息和关联窗口排序关系生成窗口激活序列(窗口激活序列包括父窗口的窗口激活指令和子窗口的窗口激活指令),步骤3036,应用显示模块将父窗口的窗口激活指令发送给代理应用模块,步骤3037:应用显示模块将子窗口的窗口激活指令发送给代理应用模块,步骤3038,代理应用模块置顶目标应用的父窗口的activity,步骤3039,代理应用模块置顶目标应用的子窗口的activity。当用户在Linux系统激活目标应用的父窗口时,窗口管理流程则从步骤3034开始执行,执行到步骤3039结束,这里不再赘述。
应用场景四:图16d为本申请实施例提供的一种窗口管理方法的原理示意图,如图16d所示,当用户在Android系统执行关闭目标应用的窗口的操作时,例如点击窗口右上角的×按钮时,电子设备收到对应的第六用户操作指令,窗口管理流程包括:步骤3041:将第六用户操作指令传递给代理应用模块,步骤3042,代理应用模块将第六用户操作指令发送给应用显示模块,步骤3043,应用显示模块将第六用户操作指令发送给目标应用,步骤3044,目标应用识别出第六用户操作指令为关闭窗口指令并执行,生成窗口关闭信息,步骤3045,应用显示模块获取窗口关闭信息,根据窗口关闭信息生成窗口关闭指令,步骤3046,应用显示模块将窗口关闭指令发送给代理应用模块,步骤3047,代理应用模块关闭目标应用的窗口activity,步骤3048,应用显示模块判断关闭窗口与已创建窗口存在关联关系,从关联窗口排序关系中删除关闭的窗口。当用户在Linux系统关闭目标应用的窗口时,窗口管理流程则从步骤3044开始执行,执行到步骤3048结束,这里不再赘述。
本申请提供的窗口管理方法,实现了当在主系统中混合运行主系统应用和客系统应用时,在任何操作下能够将主系统应用的窗口和客系统应用的窗口按照正确的z-order在主系统桌面上混合显示,并且当客系统目标应用的窗口z-order反正变化时,不需要一次传递客系统内所有窗口的z-order。
图17为本申请实施例提供的一种窗口管理装置的结构示意图,应用于电子设备,所述电子设备包括主系统和客系统;所述客系统运行在所述主系统中,所述窗口管理装置400包括指令传递模块401、应用显示模块402和代理应用模块403,所述应用显示模块402预设在所述客系统中,所述代理应用模块403预设在所述主系统中,所述应用显示模块402与所述代理应用模块403通信连接,其中:
所述指令传递模块401,用于收到针对所述客系统中目标应用的用户操作指令,传递所述用户操作指令,以使所述目标应用在所述客系统中执行所述用户操作指令;
所述应用显示模块402,用于获取所述目标应用在所述客系统中执行所述用户操作指令而生成的窗口管理信息,根据所述窗口管理信息生成窗口操作指令发送给所述代理应用模块403;
所述代理应用模块403,用于在所述主系统中执行所述窗口操作指令以管理所述目标应用的窗口。
在一种可能的实现方式中,所述指令传递模块401具体用于:在主系统中收到针对所述客系统中目标应用的用户操作指令,将所述用户操作指令传递给所述代理应用模块403;
所述代理应用模块403还用于:将所述用户操作指令发送给所述应用显示模块402;
所述应用显示模块402还用于:将所述用户操作指令发送给所述目标应用,以使所述目标应用在所述客系统中执行所述用户操作指令。
在一种可能的实现方式中,所述指令传递模块401具体用于:在所述客系统中收到针对所述客系统中目标应用的用户操作指令,将所述用户操作指令传递给所述目标应用,以使所述目标应用在所述客系统中执行所述用户操作指令。
在一种可能的实现方式中,当所述用户操作指令为打开应用窗口指令,所述应用显示模块具体用于:获取所述目标应用在所述客系统中执行打开应用窗口指令而生成的窗口创建信息,根据所述窗口创建信息生成窗口创建指令发送给所述代理应用模块;所述代理应用模块具体用于:在主系统中执行所述窗口创建指令以创建所述目标应用的窗口。
在一种可能的实现方式中,当所述用户操作指令为激活应用窗口指令,所述应用显示模块具体用于:获取所述目标应用在所述客系统中执行激活应用窗口指令而生成的窗口激活信息,根据所述窗口激活信息生成窗口激活指令发送给所述代理应用模块;所述代理应用模块具体用于:在所述主系统中执行所述窗口激活指令以置顶所述目标应用的窗口。
在一种可能的实现方式中,当所述用户操作指令为关闭应用窗口指令,所述应用显示模块具体用于:获取所述目标应用在所述客系统中执行所述关闭应用窗口指令而生成的窗口销毁信息,根据所述窗口销毁信息生成窗口销毁指令发送给所述代理应用模块;所述代理应用模块具体用于:在所述主系统中执行所述窗口销毁指令以关闭所述目标应用的窗口。
在一种可能的实现方式中,所述应用显示模块预设有能够动态更新的关联窗口排序关系,所述关联窗口排序关系用于指示所有已创建的应用窗口中存在关联关系的应用窗口之间的窗口显示排序关系,所述应用显示模块还用于:根据所述窗口创建信息判断所述目标应用的窗口与已创建的应用窗口是否存在关联关系,若是,则将所述目标应用的窗口与存在关联关系的应用窗口之间的窗口显示排序关系添加到所述关联窗口排序关系中。
在一种可能的实现方式中,所述窗口创建信息还包括窗口激活信息,在所述应用显示模块根据所述窗口创建信息生成窗口创建指令发送给所述代理应用模块后,所述应用显示模块还用于:根据所述窗口创建信息生成窗口激活指令发送给所述代理应用模块;所述代理应用模块还用于:在所述主系统中执行所述窗口激活指令以置顶所述目标应用的窗口。
在一种可能的实现方式中,所述应用显示模块预设有能够动态更新的关联窗口排序关系,所述关联窗口排序关系用于指示所有已创建的应用窗口中存在关联关系的应用窗口之间的窗口显示排序关系,当所述用户操作指令为激活应用窗口指令,所述应用显示模块包括:
激活信息获取子模块,用于获取所述目标应用在所述客系统中执行所述激活应用窗口指令而生成的窗口激活信息;
激活序列生成子模块,用于当根据当前的所述关联窗口排序关系检测到待激活的目标应用的窗口与已创建的应用窗口存在第一关联关系,则根据所述窗口激活信息和所述第一关联关系对应的窗口显示排序关系生成窗口激活序列指令发送给所述代理应用模块,所述窗口激活序列指令包括指示所述第一关联关系对应的所有应用窗口按照所述第一关联关系对应的窗口显示排序关系进行激活的激活指令;
所述代理应用模块包括激活序列执行子模块,用于收到所述窗口激活序列指令,在所述主系统中执行所述窗口激活序列指令,以使所述待激活的目标应用的窗口和与其存在第一关联关系的已创建的应用窗口在主系统中按照所述第一关联关系对应的窗口显示排序关系显示。
在一种可能的实现方式中,所述应用显示模块还包括激活指令生成子模块:用于当根据当前的所述关联窗口排序关系检测到所述待激活的目标应用的窗口与已创建的应用窗口不存在关联关系,则针对所述待激活的目标应用的窗口,根据所述窗口激活信息生成窗口激活指令发送给所述代理应用模块;
所述代理应用模块还包括激活指令执行子模块,用于收到所述窗口激活指令,在主系统中执行所述窗口激活指令以置顶所述目标应用的窗口。
在一种可能的实现方式中,所述激活序列生成子模块,具体用于:针对所述第一关联关系对应的每个应用窗口分别生成窗口激活指令,并按照第一关联关系对应的窗口显示排序关系依次将每个应用窗口的窗口激活指令发送给所述代理应用模块;或者按照所述第一关联关系对应的窗口显示排序关系生成包含每个应用窗口激活顺序的窗口激活指令,将包含每个应用窗口激活顺序的窗口激活指令一次发送给所述代理应用模块,以使所述代理应用模块按照所述窗口激活顺序激活所述每个应用窗口。
在一种可能的实现方式中,所述应用显示模块预设有能够动态更新的关联窗口排序关系,所述关联窗口排序关系用于指示所有已创建的应用窗口中存在关联关系的应用窗口之间的窗口显示排序关系,当所述用户操作指令为关闭应用窗口指令,所述应用显示模块包括:
销毁指令生成子模块,用于获取所述目标应用在所述客系统中执行所述关闭应用窗口指令而生成的窗口销毁信息,根据所述窗口销毁信息生成窗口销毁指令发送给所述代理应用模块;
关系窗口删除子模块,用于当根据当前的所述关联窗口排序关系检测到待关闭的目标应用的窗口与已创建的应用窗口存在第二关联关系,则从所述第二关联关系对应的窗口显示排序关系中将所述待关闭的目标应用的窗口删除;
所述代理应用模块包括销毁指令执行子模块,用于所述代理应用模块还具体用于:在主系统中执行所述窗口销毁指令以关闭所述目标应用的窗口。
本申请实施例还进一步提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,当所述计算机可执行指令在电子设备上运行时,使得所述电子设备执行前述任一项所述的窗口管理方法。
上述计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(readonly memory,ROM)、可擦式可编程只读存储器(erasable programmable read onlymemory,EPROM)或闪存、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、射频(radio frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本说明书操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(localarea network,LAN)或广域网(wide area network,WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本申请实施例还进一步提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行前述任一项所述的窗口管理方法。
其中,本申请实施例提供的电子设备、计算机存储介质、计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其他的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (27)

1.一种窗口管理方法,其特征在于,应用于电子设备,所述电子设备包括主系统和客系统;所述客系统运行在所述主系统中,所述客系统预设有应用显示模块,所述主系统预设有代理应用模块,所述应用显示模块与所述代理应用模块通信连接,所述方法包括:
收到针对所述客系统中目标应用的用户操作指令,传递所述用户操作指令,以使所述目标应用在所述客系统中执行所述用户操作指令;
所述应用显示模块获取所述目标应用在所述客系统中执行所述用户操作指令而生成的窗口管理信息,根据所述窗口管理信息生成窗口操作指令发送给所述代理应用模块;
所述代理应用模块在所述主系统中执行所述窗口操作指令以管理所述目标应用的窗口。
2.根据权利要求1所述的方法,其特征在于,所述收到针对所述客系统中目标应用的用户操作指令,传递所述用户操作指令,以使所述目标应用在所述客系统中执行所述用户操作指令包括:
在主系统中收到针对所述客系统中目标应用的用户操作指令,将所述用户操作指令传递给所述代理应用模块;
所述代理应用模块将所述用户操作指令发送给所述应用显示模块;
所述应用显示模块将所述用户操作指令发送给所述目标应用,以使所述目标应用在所述客系统中执行所述用户操作指令。
3.根据权利要求1所述的方法,其特征在于,所述收到针对所述客系统中目标应用的用户操作指令,传递所述用户操作指令,以使所述目标应用在所述客系统中执行所述用户操作指令包括:
在所述客系统中收到针对所述客系统中目标应用的用户操作指令,将所述用户操作指令传递给所述目标应用,以使所述目标应用在所述客系统中执行所述用户操作指令。
4.根据权利要求1-3任一项所述的方法,其特征在于,当所述用户操作指令为打开应用窗口指令,所述应用显示模块获取所述目标应用在所述客系统中执行所述用户操作指令而生成的窗口管理信息,根据所述窗口管理信息生成窗口操作指令发送给所述代理应用模块包括:
所述应用显示模块获取所述目标应用在所述客系统中执行打开应用窗口指令而生成的窗口创建信息,根据所述窗口创建信息生成窗口创建指令发送给所述代理应用模块;
所述代理应用模块在所述主系统中执行所述窗口操作指令以管理所述目标应用的窗口包括:
所述代理应用模块在主系统中执行所述窗口创建指令以创建所述目标应用的窗口。
5.根据权利要求1-3任一项所述的方法,其特征在于,当所述用户操作指令为激活应用窗口指令,所述应用显示模块获取所述目标应用在所述客系统中执行所述用户操作指令而生成的窗口管理信息,根据所述窗口管理信息生成窗口操作指令发送给所述代理应用模块包括:
所述应用显示模块获取所述目标应用在所述客系统中执行激活应用窗口指令而生成的窗口激活信息,根据所述窗口激活信息生成窗口激活指令发送给所述代理应用模块;
所述代理应用模块在所述主系统中执行所述窗口操作指令以管理所述目标应用的窗口包括:
所述代理应用模块在所述主系统中执行所述窗口激活指令以置顶所述目标应用的窗口。
6.根据权利要求1-3任一项所述的方法,其特征在于,当所述用户操作指令为关闭应用窗口指令,所述应用显示模块获取所述目标应用在所述客系统中执行所述用户操作指令而生成的窗口管理信息,根据所述窗口管理信息生成窗口操作指令发送给所述代理应用模块包括:
所述应用显示模块获取所述目标应用在所述客系统中执行所述关闭应用窗口指令而生成的窗口销毁信息,根据所述窗口销毁信息生成窗口销毁指令发送给所述代理应用模块;
所述代理应用模块在所述主系统中执行所述窗口操作指令以管理所述目标应用的窗口包括:
所述代理应用模块在所述主系统中执行所述窗口销毁指令以关闭所述目标应用的窗口。
7.根据权利要求4所述的方法,其特征在于,所述应用显示模块预设有能够动态更新的关联窗口排序关系,所述关联窗口排序关系用于指示所有已创建的应用窗口中存在关联关系的应用窗口之间的窗口显示排序关系,所述方法还包括:
所述应用显示模块根据所述窗口创建信息判断所述目标应用的窗口与已创建的应用窗口是否存在关联关系,若是,则将所述目标应用的窗口与存在关联关系的应用窗口之间的窗口显示排序关系添加到所述关联窗口排序关系中。
8.根据权利要求4或7所述的方法,其特征在于,所述窗口创建信息还包括窗口激活信息,在所述应用显示模块根据所述窗口创建信息生成窗口创建指令发送给所述代理应用模块后,还包括:
所述应用显示模块根据所述窗口激活信息生成窗口激活指令发送给所述代理应用模块;
所述代理应用模块在所述主系统中执行所述窗口操作指令以管理所述目标应用的窗口还包括:
所述代理应用模块在所述主系统中执行所述窗口激活指令以置顶所述目标应用的窗口。
9.根据权利要求1所述的方法,其特征在于,所述应用显示模块预设有能够动态更新的关联窗口排序关系,所述关联窗口排序关系用于指示所有已创建的应用窗口中存在关联关系的应用窗口之间的窗口显示排序关系,当所述用户操作指令为激活应用窗口指令,所述应用显示模块获取所述目标应用在所述客系统中执行所述用户操作指令而生成的窗口管理信息,根据所述窗口管理信息生成窗口操作指令发送给所述代理应用模块包括:
所述应用显示模块获取所述目标应用在所述客系统中执行所述激活应用窗口指令而生成的窗口激活信息,当根据当前的所述关联窗口排序关系检测到待激活的目标应用的窗口与已创建的应用窗口存在第一关联关系,则根据所述窗口激活信息和所述第一关联关系对应的窗口显示排序关系生成窗口激活序列指令发送给所述代理应用模块,所述窗口激活序列指令包括指示所述第一关联关系对应的所有应用窗口按照所述第一关联关系对应的窗口显示排序关系进行激活的激活指令;
所述代理应用模块在所述主系统中执行所述窗口操作指令以管理所述目标应用的窗口包括:
所述代理应用模块收到所述窗口激活序列指令,在所述主系统中执行所述窗口激活序列指令,以使所述待激活的目标应用的窗口和与其存在第一关联关系的已创建的应用窗口在主系统中按照所述第一关联关系对应的窗口显示排序关系显示。
10.根据权利要求9所述的方法,其特征在于,所述应用显示模块获取所述目标应用在所述客系统中执行所述用户操作指令而生成的窗口管理信息,根据所述窗口管理信息生成窗口操作指令发送给所述代理应用模块还包括:
当所述应用显示模块根据当前的所述关联窗口排序关系检测到所述待激活的目标应用的窗口与已创建的应用窗口不存在关联关系,则针对所述待激活的目标应用的窗口,根据所述窗口激活信息生成窗口激活指令发送给所述代理应用模块;
所述代理应用模块在主系统中执行所述窗口操作指令以管理所述目标应用的窗口还包括:
所述代理应用模块收到所述窗口激活指令,在主系统中执行所述窗口激活指令以置顶所述目标应用的窗口。
11.根据权利要求9所述的方法,其特征在于,所述应用显示模块根据所述窗口激活信息和所述第一关联关系对应的窗口显示排序关系生成窗口激活序列指令发送给所述代理应用模块,包括:
针对所述第一关联关系对应的每个应用窗口分别生成窗口激活指令,并按照第一关联关系对应的窗口显示排序关系依次将每个应用窗口的窗口激活指令发送给所述代理应用模块;或者
按照所述第一关联关系对应的窗口显示排序关系生成包含每个应用窗口激活顺序的窗口激活指令,将包含每个应用窗口激活顺序的窗口激活指令一次发送给所述代理应用模块,以使所述代理应用模块按照所述窗口激活顺序激活所述每个应用窗口。
12.根据权利要求1所述的方法,其特征在于,所述应用显示模块预设有能够动态更新的关联窗口排序关系,所述关联窗口排序关系用于指示所有已创建的应用窗口中存在关联关系的应用窗口之间的窗口显示排序关系,当所述用户操作指令为关闭应用窗口指令,所述应用显示模块获取所述目标应用在所述客系统中执行所述用户操作指令而生成的窗口管理信息,根据所述窗口管理信息生成窗口操作指令发送给所述代理应用模块包括:
所述应用显示模块获取所述目标应用在所述客系统中执行所述关闭应用窗口指令而生成的窗口销毁信息,根据所述窗口销毁信息生成窗口销毁指令发送给所述代理应用模块,当根据当前的所述关联窗口排序关系检测到待关闭的目标应用的窗口与已创建的应用窗口存在第二关联关系,则从所述第二关联关系对应的窗口显示排序关系中将所述待关闭的目标应用的窗口删除;
所述代理应用模块在所述主系统中执行所述窗口操作指令以管理所述目标应用的窗口包括:
所述代理应用模块在主系统中执行所述窗口销毁指令以关闭所述目标应用的窗口。
13.一种窗口管理装置,其特征在于,应用于电子设备,所述电子设备包括主系统和客系统;所述客系统运行在所述主系统中,所述窗口管理装置包括指令传递模块、应用显示模块和代理应用模块,所述应用显示模块预设在所述客系统中,所述代理应用模块预设在所述主系统中,所述应用显示模块与所述代理应用模块通信连接,其中:
所述指令传递模块,用于收到针对所述客系统中目标应用的用户操作指令,传递所述用户操作指令,以使所述目标应用在所述客系统中执行所述用户操作指令;
所述应用显示模块,用于获取所述目标应用在所述客系统中执行所述用户操作指令而生成的窗口管理信息,根据所述窗口管理信息生成窗口操作指令发送给所述代理应用模块;
所述代理应用模块,用于在所述主系统中执行所述窗口操作指令以管理所述目标应用的窗口。
14.根据权利要求13所述的装置,其特征在于,所述指令传递模块具体用于:在主系统中收到针对所述客系统中目标应用的用户操作指令,将所述用户操作指令传递给所述代理应用模块;
所述代理应用模块还用于:将所述用户操作指令发送给所述应用显示模块;
所述应用显示模块还用于:将所述用户操作指令发送给所述目标应用,以使所述目标应用在所述客系统中执行所述用户操作指令。
15.根据权利要求13所述的装置,其特征在于,所述指令传递模块具体用于:在所述客系统中收到针对所述客系统中目标应用的用户操作指令,将所述用户操作指令传递给所述目标应用,以使所述目标应用在所述客系统中执行所述用户操作指令。
16.根据权利要求13-15任一项所述的装置,其特征在于,当所述用户操作指令为打开应用窗口指令,所述应用显示模块具体用于:
获取所述目标应用在所述客系统中执行打开应用窗口指令而生成的窗口创建信息,根据所述窗口创建信息生成窗口创建指令发送给所述代理应用模块;
所述代理应用模块具体用于:
在主系统中执行所述窗口创建指令以创建所述目标应用的窗口。
17.根据权利要求13-15任一项所述的装置,其特征在于,当所述用户操作指令为激活应用窗口指令,所述应用显示模块具体用于:
获取所述目标应用在所述客系统中执行激活应用窗口指令而生成的窗口激活信息,根据所述窗口激活信息生成窗口激活指令发送给所述代理应用模块;
所述代理应用模块具体用于:
在所述主系统中执行所述窗口激活指令以置顶所述目标应用的窗口。
18.根据权利要求13-15任一项所述的装置,其特征在于,当所述用户操作指令为关闭应用窗口指令,所述应用显示模块具体用于:
获取所述目标应用在所述客系统中执行所述关闭应用窗口指令而生成的窗口销毁信息,根据所述窗口销毁信息生成窗口销毁指令发送给所述代理应用模块;
所述代理应用模块具体用于:
在所述主系统中执行所述窗口销毁指令以关闭所述目标应用的窗口。
19.根据权利要求16所述的装置,其特征在于,所述应用显示模块预设有能够动态更新的关联窗口排序关系,所述关联窗口排序关系用于指示所有已创建的应用窗口中存在关联关系的应用窗口之间的窗口显示排序关系,所述应用显示模块还用于:
根据所述窗口创建信息判断所述目标应用的窗口与已创建的应用窗口是否存在关联关系,若是,则将所述目标应用的窗口与存在关联关系的应用窗口之间的窗口显示排序关系添加到所述关联窗口排序关系中。
20.根据权利要求16或19所述的装置,其特征在于,所述窗口创建信息还包括窗口激活信息,在所述应用显示模块根据所述窗口创建信息生成窗口创建指令发送给所述代理应用模块后,所述应用显示模块还用于:
根据所述窗口创建信息生成窗口激活指令发送给所述代理应用模块;
所述代理应用模块还用于:在所述主系统中执行所述窗口激活指令以置顶所述目标应用的窗口。
21.根据权利要求13所述的装置,其特征在于,所述应用显示模块预设有能够动态更新的关联窗口排序关系,所述关联窗口排序关系用于指示所有已创建的应用窗口中存在关联关系的应用窗口之间的窗口显示排序关系,当所述用户操作指令为激活应用窗口指令,所述应用显示模块包括:
激活信息获取子模块,用于获取所述目标应用在所述客系统中执行所述激活应用窗口指令而生成的窗口激活信息;
激活序列生成子模块,用于当根据当前的所述关联窗口排序关系检测到待激活的目标应用的窗口与已创建的应用窗口存在第一关联关系,则根据所述窗口激活信息和所述第一关联关系对应的窗口显示排序关系生成窗口激活序列指令发送给所述代理应用模块,所述窗口激活序列指令包括指示所述第一关联关系对应的所有应用窗口按照所述第一关联关系对应的窗口显示排序关系进行激活的激活指令;
所述代理应用模块包括激活序列执行子模块,用于收到所述窗口激活序列指令,在所述主系统中执行所述窗口激活序列指令,以使所述待激活的目标应用的窗口和与其存在第一关联关系的已创建的应用窗口在主系统中按照所述第一关联关系对应的窗口显示排序关系显示。
22.根据权利要求21所述的装置,其特征在于,所述应用显示模块还包括激活指令生成子模块:用于当根据当前的所述关联窗口排序关系检测到所述待激活的目标应用的窗口与已创建的应用窗口不存在关联关系,则针对所述待激活的目标应用的窗口,根据所述窗口激活信息生成窗口激活指令发送给所述代理应用模块;
所述代理应用模块还包括激活指令执行子模块,用于收到所述窗口激活指令,在主系统中执行所述窗口激活指令以置顶所述目标应用的窗口。
23.根据权利要求21所述的装置,其特征在于,所述激活序列生成子模块,具体用于:
针对所述第一关联关系对应的每个应用窗口分别生成窗口激活指令,并按照第一关联关系对应的窗口显示排序关系依次将每个应用窗口的窗口激活指令发送给所述代理应用模块;或者
按照所述第一关联关系对应的窗口显示排序关系生成包含每个应用窗口激活顺序的窗口激活指令,将包含每个应用窗口激活顺序的窗口激活指令一次发送给所述代理应用模块,以使所述代理应用模块按照所述窗口激活顺序激活所述每个应用窗口。
24.根据权利要求13所述的方法,其特征在于,所述应用显示模块预设有能够动态更新的关联窗口排序关系,所述关联窗口排序关系用于指示所有已创建的应用窗口中存在关联关系的应用窗口之间的窗口显示排序关系,当所述用户操作指令为关闭应用窗口指令,所述应用显示模块包括:
销毁指令生成子模块,用于获取所述目标应用在所述客系统中执行所述关闭应用窗口指令而生成的窗口销毁信息,根据所述窗口销毁信息生成窗口销毁指令发送给所述代理应用模块;
关系窗口删除子模块,用于当根据当前的所述关联窗口排序关系检测到待关闭的目标应用的窗口与已创建的应用窗口存在第二关联关系,则从所述第二关联关系对应的窗口显示排序关系中将所述待关闭的目标应用的窗口删除;
所述代理应用模块包括销毁指令执行子模块,用于在主系统中执行所述窗口销毁指令以关闭所述目标应用的窗口。
25.一种电子设备,其特征在于,包括:至少一个处理器;存储器;以及至少一个计算机程序,其中所述至少一个计算机程序被存储在所述存储器中,所述至少一个计算机程序包括指令,当所述指令被所述电子设备执行时,使得所述电子设备执行如权利要求1-12中任一项所述的窗口管理方法。
26.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,当所述计算机可执行指令在电子设备上运行时,使得所述电子设备执行如权利要求1-12中任一项所述的窗口管理方法。
27.一种计算机程序产品,其特征在于,当计算机程序产品在电子设备上运行时,使得电子设备执行如权利要求1-12中任一项所述的窗口管理方法。
CN202111661508.2A 2021-12-31 2021-12-31 窗口管理方法、装置、电子设备和存储介质 Pending CN116414490A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111661508.2A CN116414490A (zh) 2021-12-31 2021-12-31 窗口管理方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111661508.2A CN116414490A (zh) 2021-12-31 2021-12-31 窗口管理方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN116414490A true CN116414490A (zh) 2023-07-11

Family

ID=87051678

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111661508.2A Pending CN116414490A (zh) 2021-12-31 2021-12-31 窗口管理方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN116414490A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149341A (zh) * 2023-10-31 2023-12-01 成都阿加犀智能科技有限公司 一种显示Linux GUI程序的方法、装置、设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149341A (zh) * 2023-10-31 2023-12-01 成都阿加犀智能科技有限公司 一种显示Linux GUI程序的方法、装置、设备及介质
CN117149341B (zh) * 2023-10-31 2024-01-05 成都阿加犀智能科技有限公司 一种显示Linux GUI程序的方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
US9549007B2 (en) User interface widget unit sharing for application user interface distribution
AU2022211850B2 (en) Application function implementation method and electronic device
EP4060475A1 (en) Multi-screen cooperation method and system, and electronic device
WO2022127661A1 (zh) 应用共享方法、电子设备和存储介质
CN109933442B (zh) 小程序平台间的通讯方法、设备和计算机存储介质
CN112492203A (zh) 虚拟照相方法、装置、设备及存储介质
US11716428B1 (en) Method of dynamically mapping scanner names from client to agent
WO2023088459A1 (zh) 设备协同方法及相关装置
CN115237481A (zh) 驱动外接设备的方法、装置、设备及存储介质
CN116414490A (zh) 窗口管理方法、装置、电子设备和存储介质
WO2012128555A2 (en) Method and system for providing calender services in a universal plug and play home network environment
WO2022242503A1 (zh) 投屏方法及相关装置
US20130111025A1 (en) Client application and resource arbitration
CN114430410A (zh) 基于虚拟域名的系统访问方法、装置及设备
CN116366957B (zh) 一种虚拟化相机使能的方法、电子设备及协同工作系统
WO2023246604A1 (zh) 手写输入方法及终端
US11683359B2 (en) Methods and systems for persistent communications between client applications and application servers
WO2024017211A1 (zh) 一种任务接续方法、电子设备、程序产品及介质
US11604874B1 (en) Providing audio visual privacy controls
WO2024045651A1 (zh) 消息显示方法、装置、消息处理方法、服务器及系统
WO2022228005A1 (zh) 一种消息提醒方法及终端设备
WO2024055867A1 (zh) 基于应用分身的界面显示方法及相关装置
CN118740901A (zh) 视联网远程桌面的通信连接建立方法、装置、设备及介质
CN115421643A (zh) 跨设备控制方法与装置、电子设备
CN113176957A (zh) 一种基于rpc的远程应用自动化系统

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