CN116339877A - 跨系统运行应用程序的方法及电子设备 - Google Patents
跨系统运行应用程序的方法及电子设备 Download PDFInfo
- Publication number
- CN116339877A CN116339877A CN202111603512.3A CN202111603512A CN116339877A CN 116339877 A CN116339877 A CN 116339877A CN 202111603512 A CN202111603512 A CN 202111603512A CN 116339877 A CN116339877 A CN 116339877A
- Authority
- CN
- China
- Prior art keywords
- application program
- target application
- interface
- software system
- window
- 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
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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- 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
- 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/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- 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/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Stored Programmes (AREA)
Abstract
本申请适用于终端技术领域,提供了一种跨系统运行应用程序的方法及电子设备,所述方法包括:在第一软件系统中展示目标应用程序的第一界面,目标应用程序在第二软件系统中运行;通过第二软件系统向目标应用程序反馈输入事件,得到目标应用程序刷新的第二界面,输入事件为在第一软件系统中针对第一界面触发的;将第一软件系统中的第一界面替换为第二界面,无需运行第一软件系统相匹配的目标应用程序,即可无差别的在第一软件系统中展示在第二软件系统中运行的目标应用程序,可以避免出现与不同软件系统相匹配的不同版本的目标应用程序之间的差异,可以提高终端设备运行不同应用程序的多样性,也可以提高终端设备应用在不同场景的适应性。
Description
技术领域
本申请涉及终端设备技术领域,尤其涉及一种跨系统运行应用程序的方法及电子设备。
背景技术
不同的终端设备可以搭载不同的软件系统,不同的软件系统可以安装不同的应用程序,以适应不同的场景。例如,手机搭载的安卓(Android)系统,可以安装用于即时通信类的应用程序,电脑搭载的Windows系统或Linux系统,可以安装用于办公的应用程序。
随着终端设备的不断发展,同一应用程序可以针对不同的软件系统,分别开发出与不同软件系统相匹配的版本,使得终端设备在安装与软件系统相匹配的应用程序后,可以适用于更多的场景。但是,同一应用程序与不同软件系统相匹配的各版本之间差异较大。
发明内容
本申请提供一种跨系统运行应用程序的方法及电子设备,解决了现有技术中同一应用程序与不同软件系统相匹配的各版本之间差异较大的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种跨系统运行应用程序的方法,应用于电子设备,所述电子设备搭载第一软件系统和第二软件系统,所述第二软件系统基于所述第一软件系统运行,所述方法包括:
在所述第一软件系统中展示目标应用程序的第一界面,所述目标应用程序在所述第二软件系统中运行;
通过所述第二软件系统向所述目标应用程序反馈输入事件,得到所述目标应用程序刷新的第二界面,所述输入事件为在所述第一软件系统中针对所述第一界面触发的;
将所述第一软件系统中的所述第一界面替换为所述第二界面。
在第一软件系统中展示目标应用程序的第一界面,并根据输入事件将第一界面替换为刷新后的第二界面,无需运行第一软件系统相匹配的目标应用程序,即可无差别的在第一软件系统中展示在第二软件系统中运行的目标应用程序,可以避免出现与不同软件系统相匹配的不同版本的目标应用程序之间的差异。而且基于第一软件系统采集的输入事件,也可以在第一软件系统中刷新目标应用程序的界面,从而可以实现用户与第二软件系统中运行的目标应用程序之间的交互,可以提高终端设备运行不同应用程序的多样性,也可以提高终端设备应用在不同场景的适应性。
在第一方面的第一种可能的实现方式中,所述第一软件系统为安卓系统,所述第二软件系统为Linux系统。
基于第一方面的上述任意一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述在所述第一软件系统中展示目标应用程序的第一界面之前,所述方法还包括:
从所述第一软件系统向所述第二软件系统发送启动信息;
在所述第二软件系统中根据所述启动信息启动所述目标应用程序,得到所述第一界面。
基于第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述从所述第一软件系统向所述第二软件系统发送启动信息,包括:
根据在所述第一软件系统中触发的操作,在所述第一软件系统中启动代理安卓应用程序包APK;
通过所述代理APK的主活动main activity获取启动信令、所述目标应用程序的存储路径和所述目标应用程序的应用标识,组成所述启动信息;
通过所述代理APK的管理层和通信层,从所述第一软件系统向所述第二软件系统发送所述启动信息。
基于第一方面的第二种可能的实现方式,在第一方面的第四种可能的实现方式中,所述启动信息包括:启动信令、所述目标应用程序的存储路径和所述目标应用程序的应用标识;
所述在所述第二软件系统中根据所述启动信息启动所述目标应用程序,得到所述第一界面,包括:
所述第二软件系统根据所述启动信令,结合所述目标应用程序的存储路径和应用标识,查找所述目标应用程序;
启动所述目标应用程序,得到所述目标应用程序生成的所述第一界面。
基于第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述启动所述目标应用程序,得到所述目标应用程序生成的所述第一界面,包括:
所述目标应用程序向所述第二软件系统的窗口服务请求窗口,得到所述窗口服务为所述目标应用程序分配的窗口;
所述目标应用程序根据所述窗口服务分配的窗口,结合所述目标应用程序的资源,绘制得到所述第一界面。
基于第一方面的上述任意一种可能的实现方式,在第一方面的第六种可能的实现方式中,所述在所述第一软件系统中展示目标应用程序的第一界面,包括:
所述第一软件系统通过代理APK,接收所述第二软件系统通过窗口服务发送的所述第一界面、窗口信息和创建信令,所述窗口信息用于表示所述第二软件系统的窗口服务为所述目标应用程序分配的窗口的信息;
所述代理APK根据所述创建信令,结合所述第一软件系统的活动管理服务AMS,在所述第一软件系统中创建与所述目标应用程序对应的应用活动app activity;
所述代理APK通过所述应用活动,结合所述第一界面和所述窗口信息,在所述第一软件系统中显示所述第一界面。
通过代理APK可以在第一软件系统中建立一个或多个app activity,结合创建的一个或多个app activity,可以在第一软件系统中同时显示一个或多个在第二软件系统中运行的应用程序所对应的界面,可以进一步提高终端设备应用在不同场景的适应性和广泛性。
基于第一方面的第六种可能的实现方式,在第一方面的第七种可能的实现方式中,所述窗口信息包括所述目标应用程序对应的窗口标识;
在所述通过所述第二软件系统向所述目标应用程序反馈输入事件,得到所述目标应用程序刷新的第二界面之前,所述方法还包括:
所述代理APK通过管理层,建立所述目标应用程序对应的窗口标识与所述目标应用程序对应的应用活动之间的对应关系。
通过建立app activity与目标应用程序的窗口标识之间的对应关系,可以减少在第一软件系统中刷新目标应用程序的界面所需时间,可以实现app activity与目标应用程序之间的窗口管理的同步和生命周期的同步。
基于第一方面的上述任意一种可能的实现方式,在第一方面的第八种可能的实现方式中,在所述通过所述第二软件系统向所述目标应用程序反馈输入事件,得到所述目标应用程序刷新的第二界面之前,所述方法还包括:
在所述第一软件系统中采集触发的所述输入事件;
通过代理APK从所述第一软件系统向所述第二软件系统反馈所述输入事件。
基于第一方面的第八种可能的实现方式,在第一方面的第九种可能的实现方式中,所述在所述第一软件系统中采集触发的所述输入事件,包括:
通过所述第一软件系统的输入管理服务IMS采集所述输入事件;
通过所述第一软件系统的窗口管理服务WMS向所述目标应用程序对应的应用活动转发所述输入事件。
基于第一方面的第八种可能的实现方式,在第一方面的第十种可能的实现方式中,所述通过代理APK从所述第一软件系统向所述第二软件系统反馈所述输入事件,包括:
所述代理APK通过管理层和通信层,向所述第二软件系统反馈所述目标应用程序对应的应用活动所接收的所述输入事件。
基于第一方面的上述第八种至第十种中任意一种可能的实现方式,在第一方面的第十一种可能的实现方式中,所述在所述第一软件系统中采集触发的所述输入事件,包括:
获取所述输入事件的输入类型和所述第一软件系统中各窗口之间的层叠关系;
若所述输入事件的输入类型为按键输入、且所述目标应用程序对应的窗口处于前台,则采集所述输入事件;
若所述输入事件的输入类型为鼠标输入或触屏输入,则根据所述输入事件的位置,结合所述第一软件系统中各窗口之间的层叠关系,确定所述输入事件对应的窗口;
若所述输入事件对应的窗口为所述目标应用程序对应的窗口,则采集所述输入事件。
根据第一软件系统中当前处于前台的窗口对输入事件进行采集,若当前处于前台的窗口为目标应用程序对应的窗口,则第一软件系统可以向第二软件系统反馈采集的输入事件,获取并显示目标应用程序根据输入事件重新绘制的界面,可以解决在第一软件系统中采集针对目标应用程序所触发的输入问题和误操作问题,可以提高采集针对目标应用程序的输入事件的准确性。
基于第一方面的上述任意一种可能的实现方式,在第一方面的第十二种可能的实现方式中,所述通过所述第二软件系统向所述目标应用程序反馈输入事件,得到所述目标应用程序刷新的第二界面,包括:
通过所述第二软件系统的窗口服务接收所述输入事件,并向所述目标应用程序映射所述输入事件;
所述目标应用程序根据映射的所述输入事件,重新绘制所述目标应用程序的界面,得到所述第二界面。
基于第一方面的上述任意一种可能的实现方式,在第一方面的第十三种可能的实现方式中,所述将所述第一软件系统中的所述第一界面替换为所述第二界面,包括:
通过所述第二软件系统的窗口服务,向代理APK反馈所述第二界面和所述目标应用程序的窗口信息;
所述代理APK根据所述第二界面和所述目标应用程序的窗口信息,将所述第一软件系统中所述目标应用程序对应的所述第一界面,替换为所述第二界面。
基于第一方面的第十三种可能的实现方式,在第一方面的第十四种可能的实现方式中,所述代理APK根据所述第二界面和所述目标应用程序的窗口信息,将所述第一软件系统中所述目标应用程序对应的所述第一界面,替换为所述第二界面,包括:
所述代理APK通过通信层接收所述第二界面和所述目标应用程序的窗口信息;
所述代理APK通过管理层,根据所述目标应用程序对应的窗口标识与所述目标应用程序对应的应用活动之间的对应关系,查找所述窗口信息对应的应用活动;
所述代理APK通过管理层,向所述窗口信息对应的应用活动发送所述第二界面,将所述第一界面替换为所述第二界面。
基于第一方面的上述任意一种可能的实现方式,在第一方面的第十五种可能的实现方式中,所述输入事件包括:窗口大小调整操作、窗口位置调整操作和窗口功能交互操作。
第二方面,本申请实施例提供了一种跨系统运行应用程序的装置,该装置包含在电子设备中,该装置具有实现如上述第一方面任一项所述的跨系统运行应用程序的方法的功能。
第三方面,提供一种电子设备,包括:处理器,所述处理器用于运行存储器中存储的计算机程序,以使得所述电子设备实现如第一方面中任一项所述的跨系统运行应用程序的方法。
第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面中任一项所述的跨系统运行应用程序的方法。
第五方面,提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得所述电子设备实现如第一方面中任一项所述的跨系统运行应用程序的方法。
第六方面,提供一种芯片系统,所述芯片系统包括存储器和处理器,所述处理器执行所述存储器中存储的计算机程序,以实现如第一方面中任一项所述的跨系统运行应用程序的方法。
可以理解的是,上述第二方面至第六方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
图1为本申请实施例提供的一种终端设备搭载的软件系统的系统架构图;
图2为本申请实施例提供的一种安卓系统与Linux系统之间的信令交互图;
图3为本申请实施例提供的一种跨系统运行应用程序的方法的示意性流程图;
图4为本申请实施例提供的一种终端设备的界面示意图;
图5A为本申请实施例提供的一种终端设备根据输入事件刷新界面的示意图;
图5B为本申请实施例提供的一种终端设备根据输入事件刷新界面的示意图;
图5C为本申请实施例提供的一种终端设备根据输入事件刷新界面的示意图;
图5D为本申请实施例提供的一种终端设备根据输入事件刷新界面的示意图;
图5E为本申请实施例提供的一种终端设备根据输入事件刷新界面的示意图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。
以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“所述”、“上述”和“该”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。
终端设备的种类繁多,不同类型的终端设备可以分别应用于不同的场景,且不同类型的终端设备可以搭载不同的软件系统。终端设备应用在某个场景时,可以基于终端设备搭载的软件系统,运行与该场景相匹配的应用程序。
例如,当终端设备为台式电脑或笔记本电脑时,终端设备可以搭载Windows系统或Linux系统,运行办公类应用程序,应用在办公场景中;当终端设备为手机或平板电脑时,终端设备可以搭载安卓系统,运行即时通讯类的应用程序,应用在即时通讯的场景中。
为了使终端设备可以应用在更多的场景,开发者可以针对同一应用程序,分别开发与不同软件系统相匹配的不同版本的应用程序,以便搭载不同软件系统的多个终端设备,在同一场景下,均可以运行与该场景相对应的应用程序,实现对终端设备的应用场景的扩展。
例如,在办公场景中,台式电脑或笔记本电脑可以搭载Windows系统或Linux系统,并开启办公类应用程序。在开发得到与安卓系统相匹配的办公类应用程序之后,搭载安卓系统的手机或平板电脑,也可以开启办公类应用程序,应用在办公场景中,实现对手机或平板电脑的应用场景的扩展。
但是,受到终端设备的硬件影响,不同类型的终端设备具有不同的运算能力和不同大小的显示屏幕,在开发与各个软件系统相匹配的应用程序的过程中,还需要结合各个软件系统所对应的终端设备,对应用程序的功能和界面等进行调整,以得到与终端设备的硬件和软件系统均匹配的应用程序。
相应的,不同类型的终端设备在运行同一应用程序的过程中,各个终端设备所展示的应用程序的界面也有所差异,而且,不同类型的终端设备运行的应用程序所提供的功能也具有一定的差异。
例如,在办公场景中,台式电脑或笔记本电脑运行的办公类应用程序,与手机或平板电脑运行的办公类应用程序相比,具有更大的显示界面,也可以提供更丰富的软件功能,从而可以简化使用办公类应用程序的操作步骤。
因此,本申请提出一种跨系统运行应用程序的方法,终端设备在运行第一软件系统的基础上,通过虚拟机或容器运行第二软件系统,并通过第二软件系统运行应用程序。终端设备还可以在第一软件系统的界面中展示在第二软件系统中运行的应用程序,从而可以向用户提供第一软件系统无法运行的应用程序,或者,可以向用户提供第一软件系统运行时功能缺失的应用程序,实现跨系统运行应用程序。
下述以终端设备搭载有安卓系统,并通过容器运行Linux系统为例,对终端设备的软件系统架构进行说明。
图1为本申请实施例提供的一种终端设备搭载的软件系统的系统架构图,终端设备的第一软件系统为安卓系统,第二软件系统为Linux系统。如图1所示,安卓系统和Linux系统均采用Linux内核(Linux kernel)。而且,安卓系统还可以包括:应用框架层(Application Framework)和应用层;Linux系统包括:窗口服务(Weston)和多个应用程序。
其中,安卓系统的应用框架层可以包括:输入管理服务(input manager service,IMS)、活动管理服务(activity manager service,AMS)、窗口管理服务(window managerservice,WMS)和系统服务Surface Flinger。其中,IMS用于管理终端设备检测到的输入操作,AMS用于管理各个应用程序的活动(activity),WMS用于管理各个应用程序的窗口,系统服务Surface Flinger用于负责合成安卓系统所有显示图层的服务进程。
需要说明的是,终端设备的安卓系统还可以包括图1中并未示出的硬件抽象层和系统运行库,系统运行库可以包括:安卓运行库,安卓运行库可以包括核心库和虚拟机,系统运行库还可以包括:C库或C++库,在此不再赘述。
而且,Linux系统的多个应用程序可以包括:多个X11应用程序(X11 APP)和多个wayland应用程序(wayland app)。其中,X11应用程序为与旧版X11协议相匹配的应用程序,wayland应用程序为与新版wayland协议相匹配的应用程序。
另外,Linux系统的Weston可以包括:系统界面管理器(desktop-shell)、兼容应用协议(xwayland)、合成器(compositor)和后端合成器(compositor backend)。其中,系统界面管理器用于管理Linux系统的全局界面;兼容应用协议用于在与各个wayland应用相匹配的基础上兼容各个X11应用;合成器用于对应用程序的各个图层进行组合,得到合成完毕的界面;后端合成器用于处理合成完毕的界面。
终端设备在跨系统运行应用程序的过程中,终端设备可以在安卓系统中开启应用层的代理安卓应用程序包(android application package,APK),安卓系统通过代理APK与Linux系统进行数据交互,显示Linux系统中运行的与该代理APK相对应的应用程序。
进一步地,参见图1,图1中还示出了代理APK的软件架构,如图1所示,代理APK软件架构可以包括:通信层(native)、管理层(myservice)和活动层(activity)。
其中,native作为代理APK与Linux系统之间的通信通道,用于向Linux系统传输信息,也可以接收Linux系统反馈的信息。例如,native可以向Linux系统发送用于启动位于Linux系统的应用程序的启动信令,也可以向Linux系统发送检测到的输入事件,还可以接收Linux系统反馈的窗口显示信息(如刷新显示的界面)或窗口管理信息(如调整显示的大小或位置)。
myservice用于根据Linux系统反馈的信息,确定多个app activity中与反馈的信息相对应的app activity,并向确定的app activity转发Linux系统反馈的信息,使得该app activity可以根据Linux系统反馈的信息对显示的界面进行刷新,或者,对该appactivity窗口进行调整。当然,myservice还可以根据Linux系统反馈的信息,建立某个appactivity或销毁某个app activity,实现对app activity的管理。
activity中可以包括:主(main)activity和应用(app)activity,main activity为代理APK的主程序,用于启动代理APK;app activity可以为与Linux系统中运行的应用程序相对应的activity。例如,Linux系统在根据代理APK启动应用程序后,代理APK可以根据Linux系统反馈的信息,在代理APK中建立与应用程序相对应的app activity。
其中,每个app activity可以采集触发的输入事件,并通过myservice和native向Linux系统发送采集的输入事件,并通过native接收Linux系统基于输入事件反馈的信息,再根据Linux系统反馈的信息,对app activity当前显示的界面进行刷新(如显示悬浮框、图标闪烁和颜色变化等),或者,对app activity显示的窗口进行调整(如对窗口的大小或位置进行调整)。
参见图2,下述以平板电脑应用在办公场景为例,介绍平板电脑的安卓系统与Linux系统之间运行办公类应用程序时信令交互的过程。其中,平板电脑可以与外设的键盘和鼠标连接,从而获取键盘和鼠标触发的输入事件。
如图2所示,平板电脑的安卓系统与Linux系统进行信令交互的过程可以包括如下步骤:
S201、平板电脑在检测到用户对代理APK触发的开启操作后,可以启动代理APK的main activity。
S202、代理APK可以通过native向Linux系统发送启动办公类应用程序(图2中以app1表示)的信令,还可以向Linux系统发送办公类应用程序在Linux系统中的存储路径和名称。
S203、Linux系统可以根据接收的信令,按照办公类应用程序对应的存储路径和名称启动办公类应用程序。相应的,办公类应用程序可以向Weston请求窗口,再根据Weston分配的窗口进行绘制,得到办公类应用程序的界面。
S204、办公类应用程序可以向Weston发送办公类应用程序的界面,由Weston向安卓系统中的代理APK发送办公类应用程序的界面、创建与办公类应用程序相对应appactivity的信令、以及Weston为办公类应用程序分配的窗口对应的窗口信息。其中,窗口信息可以包括窗口标识、窗口尺寸和窗口位置等信息。
S205、代理APK可以通过native接收Linux系统反馈的信息,并向myservice转发接收的信息。代理APK可以根据Linux反馈的信令,通过myservice建立与代理APK相对应的appactivity,并向该app activity转发接收的办公类应用程序的界面,使得app activity显示办公类应用程序对应的界面。
而且,代理APK还可以通过myservice,结合Linux反馈的窗口信息,建立窗口信息中的窗口标识与建立的app activity之间的关联关系,以便再次接收到Linux系统反馈的信息时,myservice可以根据该关联关系,确定窗口标识对应的app activity,从而向appactivity转发Linux系统反馈的信息。
S206、当办公类应用程序对应的app activity在前台时,该app activity可以通过安卓系统采集触发的输入事件。
S207、通过代理APK的myservice和native向Linux系统发送采集的输入事件。
S208、Linux系统的Weston可以向办公类应用程序反馈该输入事件,办公类应用程序根据输入事件再次绘制办公类应用程序的界面,得到刷新后的界面。
S209、办公类应用程序可以向Weston发送刷新后的界面,Weston可以向代理APK反馈刷新后的界面,并携带办公类应用程序对应的窗口信息。
S210、代理APK可以通过native接收刷新后的界面和窗口信息,并通过myservice查找与窗口信息中窗口标识相对应的app activity,再向查找到的app activity转发刷新后的界面,使得app activity可以显示刷新后的界面。
需要说明的是,若平板电脑检测到触发的关闭办公类应用程序的操作,平板电脑也可以采用与上述方式类似的过程,关闭Linux系统中的办公类应用程序,并在安卓系统中停止显示办公类应用程序的界面。
另外,上述仅是以在安卓系统中显示Linux系统运行的办公类应用程序为例进行说明,在实际应用中,安卓系统中还可以同时显示Linux系统中运行的其他应用程序(图2中以app2表示,图2中针对app2,也可以执行前述S201-S210类似的步骤),在安卓系统中显示其他应用程序的过程,与上述显示办公类应用程序的过程类似,在此不再赘述。
图3是本申请实施例提供的一种跨系统运行应用程序的方法的示意性流程图,作为示例而非限定,该方法可以应用于上述在搭载的第一软件系统中通过虚拟机或容器运行第二软件系统的终端设备中,参见图3,该方法包括:
步骤301、在第一软件系统中启动代理APK,建立main activity。
为了使同一终端设备能够应用在更多的场景中,终端设备在搭载第一软件系统的基础上,可以通过虚拟机或容器搭载第二软件系统,从而可以通过第一软件系统和第二软件系统分别运行不同的应用程序,以适应不同的场景。
在实际应用中,终端设备可以搭载不同的软件系统,则终端设备搭载的第一软件系统和第二软件系统也有多种不同的组合。本申请实施例中,以安卓系统为第一软件系统、以Linux系统为第二软件系统为例,说明终端设备跨系统运行应用程序的过程。
安卓系统和Linux系统可以分别运行不同的应用程序,以适应不同的场景。相应的,终端设备在运行过程中,可以根据不同的场景在不同软件系统中开启不同的应用程序。若当前场景需要开启安卓系统运行的应用程序,则终端设备可以根据触发的操作,在安卓系统中运行应用程序即可。
若当前场景需要开启Linux系统运行的应用程序,则在安卓系统对应的界面中,终端设备可以根据对代理APK触发的操作启动代理APK,并调用安卓系统的AMS,建立代理APK相对应的main activity。
需要说明的是,终端设备可以根据不同的方式启动代理APK。例如,终端设备可以根据检测到的对代理APK的图标触发点击的操作启动代理APK,也可以根据输入的命令提示符启动代理APK,还可以根据触发的其他操作启动代理APK,本申请实施例对启动代理APK的方式不做限定。
其中,若终端设备根据对代理APK的图标进行点击的操作启动代理APK,则说明终端设备在安卓系统中可以生成代理APK的图标,并通过代理APK的图标启动代理APK。
而且,终端设备可以在安卓系统中生成一个或多个代理APK的图标,从而可以通过一个或多个代理APK的图标,在Linux系统中运行一个或多个应用程序。若终端设备只生成了一个代理APK的图标,则该代理APK的图标可以与Linux系统中的多个应用程序相对应;若终端设备创建了多个代理APK的图标,则各个代理APK的图标可以与Linux系统中的各个应用程序一一对应。
步骤302、在第一软件系统中通过代理APK的native,向第二软件系统传输启动信息。
其中,启动信息可以包括启动位于Linux系统的目标应用程序的启动信令,还可以包括目标应用程序的存储路径和应用标识,目标应用程序的存储路径为应用程序在Linux系统中所在的存储空间,目标应用程序的应用标识可以为应用程序的名称、身份(identification,ID)或其他用于唯一指示该目标应用程序的信息,本申请实施例对存储路径和应用标识不做限定。
在一种可选实施例中,终端设备在安卓系统中开启代理APK后,可以通过代理APK的main activity生成启动信令,并获取目标应用程序的存储路径和应用标识,从而组合得到启动信息。之后,代理APK可以通过native向Linux系统发送该启动信息,以便Linux系统可以根据启动信息运行目标应用程序。
例如,终端设备当前应用在办公场景中,则终端设备需要在Linux系统中运行办公类应用程序,并在安卓系统中显示该办公类应用程序所对应的界面。相应的,终端设备在安卓系统中启动代理APK后,可以通过代理APK向Linux系统发送启动信息,该启动信息中可以包括指示Linux系统启动办公类应用程序的信令,也可以包括Linux系统中办公类应用程序的存储路径和应用标识。
步骤303、第二软件系统根据接收的启动信息,启动目标应用程序。
与步骤302相对应的,Linux系统可以接收代理APK发送的启动信息,并对启动信息中的各数据进行提取,得到启动信令、目标应用程序的存储路径和应用标识。Linux系统则可以根据启动信令,结合目标应用程序的存储路径和应用标识,启动该目标应用程序。
步骤304、第二软件系统获取目标应用程序的界面,并向代理APK转发目标应用程序的界面。
Linux系统在根据启动信息运行目标应用程序后,目标应用程序可以根据目标应用程序的资源,自动绘制目标应用程序的界面,向Linux系统的Weston发送目标应用程序的界面。Weston则可以向安卓系统中的代理APK转发目标应用程序的界面。
在目标应用程序绘制界面的过程中,目标应用程序可以先向Weston请求窗口,则Weston可以根据配置的数据为目标应用程序分配窗口。之后,目标应用程序可以根据目标应用程序的资源,在分配的窗口中绘制得到目标应用程序的界面。
其中,Weston分配的窗口可以对应有窗口标识、窗口尺寸和窗口位置等信息,窗口标识用于唯一指示该窗口,窗口尺寸用于表示该窗口的大小,窗口位置用于指示显示该窗口的位置。
另外,Weston在向代理APK转发目标应用程序的界面时,还可以携带创建appactivity的创建信令和Weston所分配窗口的窗口信息,该窗口信息可以包括窗口标识、窗口尺寸和窗口位置等。
需要说明的是,在实际应用中,应用程序绘制的界面可以包括一个或多个图层。在包括多个图层时,可以通过Weston的合成器根据各个图层之间的层叠关系和透明度等信息,对各个图层进行组合,得到合成完毕的界面。而本申请实施例为了简便说明,以目标应用程序的界面包括一个图层为例进行说明,本申请实施例对目标应用程序的界面所包括的图层的数量不做限定。
步骤305、代理APK在第一软件系统中显示目标应用程序的界面。
在安卓系统中的代理APK不但可以向Linux系统发送启动目标应用程序的信令,还可以接收Linux系统反馈的目标应用程序所生成的界面,从而可以在安卓系统中显示目标应用程序的界面,实现跨系统显示应用程序的界面。
具体地,代理APK可以通过native接收Linux系统反馈的目标应用程序的界面,同时还可以接收Linux系统反馈的窗口信息和创建信令。代理APK可以根据创建信令,调用安卓系统的AMS创建与目标应用程序相对应的app activity,并向建立的app activity输入目标应用程序的界面,结合窗口信息中的窗口尺寸和窗口位置等信息,从而在安卓系统中显示该目标应用程序的界面。
需要说明的是,在实际应用中,代理APK可以根据Linux系统中运行的各个应用程序,在安卓系统中创建与各个应用程序相对应的app activity,也即是在安卓系统中创建一个或多个app activity。本申请实施例仅是以创建一个app activity为例进行说明,对安卓系统中通过代理APK创建的app activity的数目不做限定。
另外需要说明的是,若代理APK接收的应用程序的界面包括多个图层,则代理APK可以调用安卓系统的Surface flinger对多个图层进行协调,从而得到与Linux系统中运行的目标应用程序相一致的界面。
进一步地,在安卓系统中展示的目标应用程序的界面,是目标应用程序在Linux系统中展示的界面所对应的图像,也即是在安卓系统中展示的是与目标应用程序的界面相一致的图像。
步骤306、针对目标应用程序的窗口标识和对应的app activity,代理APK建立窗口标识与app activity之间的对应关系。
代理APK在建立目标应用程序对应的app activity后,可以通过代理APK的myservice,结合窗口信息中目标应用程序对应的窗口标识,建立app activity与窗口标识之间的对应关系,以便在后续步骤中,代理APK可以根据该对应关系,从多个app activity中查找与目标应用程序相对应的app activity,从而在安卓系统中更新显示目标应用程序刷新后的界面。
需要说明的是,本申请实施例中是以先显示目标应用程序的界面,再建立appactivity与窗口标识之间的对应关系为例进行说明,在实际应用中,也可以先建立appactivity与窗口标识之间的对应关系,再在app activity中显示目标应用程序的界面;还可以在建立对应关系的同时显示目标应用程序的界面,本申请实施例对在建立appactivity之后,建立对应关系和显示目标应用程序的界面的顺序不做限定。
步骤307、代理APK向第二软件系统反馈在第一软件系统中检测到的针对目标应用程序触发的输入事件。
其中,输入事件用于表示终端设备采集的用户对终端设备触发的输入操作。
安卓系统在显示目标应用程序对应的界面后,还可以根据用户触发的输入事件对显示的界面进行刷新,从而实现用户与Linux系统中运行的目标应用程序之间的交互,使得显示的应用程序对应的界面可以根据用户触发的操作不断更新。
而且,终端设备在安卓系统中可以向用户展示多个界面,多个界面中的部分界面可以为安卓系统运行的应用程序所对应的界面,多个界面中的其他界面可以为Linux系统运行的应用程序对应的界面。
相应的,终端设备在采集到输入事件时,安卓系统当前聚焦的界面可能是安卓系统运行的应用程序所对应的界面,也可能是Linux系统运行的应用程序所对应的界面。终端设备可以针对聚焦的不同界面,采用不同的方式结合输入事件对当前聚焦的界面进行刷新。
具体地,若安卓系统当前聚焦的界面为Linux系统运行的目标应用程序所对应的界面,则终端设备可以通过安卓系统的IMS采集输入事件,并向WMS发送采集的输入事件,WMS则可以向目标应用程序对应的app activity转发采集的输入事件。目标应用程序对应的app activity可以先后通过myservice和native向Linux系统转发采集到的输入事件,以便Linux系统中的目标应用程序可以根据输入事件生成刷新后的界面。
其中,若输入事件为鼠标输入或触屏输入,则该输入事件还可以对应有位置信息,表示在终端设备的屏幕中触发该输入事件的位置。例如,该位置信息可以为坐标信息。
进一步地,输入事件可以包括多种类型的输入操作,如通过键盘触发的按键输入操作、通过鼠标触发的点击、拖动或滑动等鼠标输入操作、以及通过触摸屏触发的点击、拖动或滑动等触屏输入操作,本申请实施例对输入事件的类型不做限定。
代理APK在向Linux系统反馈输入事件之前,可以先确定输入事件的类型,若输入事件的类型为按键输入,且安卓系统当前聚焦的界面为目标应用程序所对应的界面,则代理APK可以向Linux系统反馈采集到的输入事件。
若输入事件的类型为鼠标输入或触屏输入,则安卓系统可以先根据输入事件对应的坐标,结合安卓系统中各个界面之间的层叠关系,确定该输入事件所对应的界面,并对该确定的界面进行聚焦。若该界面为目标应用程序所对应的界面,则代理APK可以向Linux系统反馈该输入事件。
例如,参见图4,图4中示出了终端设备在安卓系统中展示的界面A和界面B,界面A对应的应用程序为安卓系统运行的应用程序,界面B对应的应用程序为Linux系统运行的应用程序。当前安卓系统对界面A聚焦,若检测对界面B的某个区域触发了鼠标输入或触屏输入类型的输入事件,安卓系统确定该输入事件与界面B相对应,则安卓系统可以对界面B进行聚焦,也即是将界面B切换至安卓系统的前台,并通过代理APK向Linux系统反馈该输入事件。
步骤308、第二软件系统向目标应用程序反馈输入事件,得到目标应用程序根据输入事件刷新后的界面。
Linux系统在接收到代理APK反馈的输入事件后,可以向目标应用程序反馈该输入事件,使得目标应用程序可以根据输入事件,刷新目标应用程序的界面,以便在后续步骤中,安卓系统可以显示目标应用程序刷新后的界面。
具体地,Linux系统可以通过Weston接收在安卓系统中针对目标应用程序触发的输入事件,并根据输入事件向目标应用程序进行映射,目标应用程序则可以根据映射的输入事件,对当前显示的界面进行刷新,得到刷新后的界面。
而且,与步骤307类似的,安卓系统可以采集不同类型的输入操作,也可以向Linux系统反馈不同类型的输入操作。相应的,Linux系统在收到不同类型的操作时,也可以采用与步骤307类似的方式,向目标应用程序进行映射反馈。
例如,在Linux系统中运行有多个应用程序的情况下,若目标应用程序位于Linux系统的前台,且在Linux系统接收到按键输入类型的输入事件,则Linux系统可以向目标应用程序反馈该输入事件,目标应用程序可以根据输入事件刷新当前显示的界面。
若目标应用程序位于Linux系统的后台,且在Linux系统接收到鼠标输入类型或触屏输入类型的输入事件,则Linux系统可以根据该输入事件对应的位置信息,结合Linux系统中各个应用程序的界面之间的层叠关系,确定该输入操作所对应的应用程序。若该输入操作与目标应用程序相对应,则Linux系统可以将目标应用程序切换至前台,也即是Linux系统对目标应用程序的界面进行聚焦。
需要说明的是,目标应用程序根据输入事件对当前显示的界面进行刷新,得到刷新后的界面的过程,可以参考现有技术,本申请实施例对此不做限定。
步骤309、第二软件系统向代理APK反馈刷新后的界面。
与步骤304类似的,目标应用程序在刷新界面后,目标应用程序可以向Linux系统的Weston发送刷新后的界面,Weston则可以向代理APK发送刷新后的界面和窗口信息,本步骤在此不再赘述。
步骤310、代理APK根据接收的刷新后的界面,在第一软件系统中刷新目标应用程序对应的界面。
代理APK在向Linux系统反馈采集的输入事件后,可以接收Linux系统发送的刷新后的界面,并根据该刷新后的界面对安卓系统中当前目标应用程序对应的界面进行替换,实现跨系统运行应用程序。
在一种可选实施例中,代理APK可以通过native接收Linux系统反馈的刷新后的界面和窗口信息,native则可以向代理APK的myservice转发刷新后的界面和窗口信息。myservice根据窗口信息中的窗口标识,结合在步骤306中建立的对应关系,确定与该窗口标识相对应的app activity,从而向该app activity发送刷新后的界面,使得appactivity可以采用刷新后的界面替换当前显示的界面。
例如,图5A、图5B、图5C、图5D和图5E分别示出了终端设备根据触发的不同输入事件,在安卓系统中对目标应用程序对应的界面进行更新的过程,下述分别对触发的不同输入事件对应的界面变化进行介绍:
如图5A所示,终端设备在安卓系统中,响应于对代理APK的图标进行点击的操作启动代理APK,通过代理APK在Linux系统中运行目标应用程序,从而在安卓系统中通过代理APK显示目标应用程序所对应的界面。
如图5B所示,在终端设备展示目标应用程序所对应的界面后,用户可能需要调整展示目标应用程序对应界面的位置,则终端设备的安卓系统可以检测到对界面中的标题栏区域触发的按压操作和滑动操作,并通过代理APK向Linux系统转发该按压操作和滑动操作,以及各操作相对应的坐标。相应的,Linux系统可以向目标应用程序反馈接收的各操作和对应的坐标,目标应用程序可以根据各操作相对应的坐标,确定按压操作和滑动操作与界面的标题栏相对应,同时还可以确定按压操作和滑动操作用于调整目标应用程序的界面的位置,从而可以向Linux系统的Weston反馈调整界面位置的信息。Weston则可以根据按压操作和滑动操作调整目标应用程序的界面的位置,同时Weston还可以向代理APK转发该信息,指示安卓系统根据按压操作和滑动操作在安卓系统中调整目标应用程序对应界面的位置,从而在安卓系统中展示调整界面位置的过程。
与图5B中代理APK向Linux系统转发在安卓系统中采集得到的输入操作类似的,如图5C所示,终端设备也可以在安卓系统中采集触发的操作,并通过代理APK向Linux系统转发采集的输入操作。Linux系统向目标应用程序反馈接收的输入操作,从而完成对目标应用程序的界面大小进行调整,并在调整过程中不断刷新目标应用程序的界面,再向代理APK反馈不断刷新的目标应用程序的界面。安卓系统则可以根据代理APK接收的界面,刷新目标应用程序在安卓系统中对应的界面,从而在安卓系统中展示调整界面大小的过程。
与图5C中代理APK向Linux系统转发在安卓系统中采集得到的输入操作类似的,如图5D所示,当安卓系统检测到触发的输入操作为键入操作时,也可以通过代理APK向Linux系统进行反馈,Linux系统也可以根据与上述调整界面大小的过程类似的方式,在目标应用程序中增加与键入操作相对应的信息,得到不断刷新目标应用程序的界面,并向代理APK反馈不断刷新的目标应用程序的界面。安卓系统则可以根据与上述调整界面大小的过程类似的方式,不断在界面中显示与键入操作相对应的信息,从而在安卓系统中展示键入信息的过程。
如图5E所示,当用户想关闭目标应用程序时,可以对安卓系统中目标应用程序对应界面中的关闭选项触发关闭操作。相应的,终端设备则可以在安卓系统中采集触发的输入操作以及对应的坐标,也即是在某位置触发的点击操作,并向Linux系统转发该输入操作以及对应的坐标。相应的,Linux系统可以根据该输入操作以及对应的坐标向目标应用程序进行反馈,目标应用程序根据该坐标可以确定是关闭选项对应的区域,结合点击操作确定对目标应用程序进行关闭,从而可以结束目标应用程序的进程,不再显示目标应用程序的界面。Weston则可以向代理APK发送销毁对应app activity的指令,代理APK则可以根据窗口标识对目标应用程序对应的app activity进行销毁,不再显示目标应用程序对应的界面。
综上所述,本申请实施例提供的跨系统运行应用程序的方法,通过在第一软件系统中展示目标应用程序的第一界面,并根据输入事件将第一界面替换为刷新后的第二界面,无需运行第一软件系统相匹配的目标应用程序,即可无差别的在第一软件系统中展示在第二软件系统中运行的目标应用程序,可以避免出现与不同软件系统相匹配的不同版本的目标应用程序之间的差异。而且基于第一软件系统采集的输入事件,也可以在第一软件系统中刷新目标应用程序的界面,从而可以实现用户与第二软件系统中运行的目标应用程序之间的交互,可以提高终端设备运行不同应用程序的多样性,也可以提高终端设备应用在不同场景的适应性。
而且,通过代理APK可以在第一软件系统中建立一个或多个app activity,结合创建的一个或多个app activity,可以在第一软件系统中同时显示一个或多个在第二软件系统中运行的应用程序所对应的界面,可以进一步提高终端设备应用在不同场景的适应性和广泛性。
另外,通过建立app activity与目标应用程序的窗口标识之间的对应关系,可以减少在第一软件系统中刷新目标应用程序的界面所需时间,可以实现app activity与目标应用程序之间的窗口管理的同步和生命周期的同步。
进一步地,根据第一软件系统中当前处于前台的窗口对输入事件进行采集,若当前处于前台的窗口为目标应用程序对应的窗口,则第一软件系统可以向第二软件系统反馈采集的输入事件,获取并显示目标应用程序根据输入事件重新绘制的界面,可以解决在第一软件系统中采集针对目标应用程序所触发的输入问题和误操作问题,可以提高采集针对目标应用程序的输入事件的准确性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的跨系统运行应用程序的方法,本申请实施例还提供了一种跨系统运行应用程序的装置,该装置具有实现如上述图1至图5E中任一项所对应的跨系统运行应用程序的方法的功能,在此不再赘述。
下面介绍本申请实施例涉及的电子设备。请参阅图6,图6是本申请实施例提供的一种电子设备的结构示意图。
电子设备可以包括处理器610,外部存储器接口620,内部存储器621,通用串行总线(universal serial bus,USB)接口630,充电管理模块640,电源管理模块641,电池642,天线1,天线2,移动通信模块650,无线通信模块660,音频模块670,扬声器670A,受话器670B,麦克风670C,耳机接口670D,传感器模块680,按键690,马达691,指示器692,摄像头693,显示屏694,以及用户标识模块(subscriber identification module,SIM)卡接口695等。其中传感器模块680可以包括压力传感器680A,陀螺仪传感器680B,气压传感器680C,磁传感器680D,加速度传感器680E,距离传感器680F,接近光传感器680G,指纹传感器680H,温度传感器680J,触摸传感器680K,环境光传感器680L,骨传导传感器680M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备的具体限定。在本申请另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器610可以包括一个或多个处理单元,例如:处理器610可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器610中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器610中的存储器为高速缓冲存储器。该存储器可以保存处理器610刚用过或循环使用的指令或数据。如果处理器610需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器610的等待时间,因而提高了系统的效率。
在一些实施例中,处理器610可以包括一个或多个接口。接口可以包括集成电路(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)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器610可以包含多组I2C总线。处理器610可以通过不同的I2C总线接口分别耦合触摸传感器680K,充电器,闪光灯,摄像头693等。例如:处理器610可以通过I2C接口耦合触摸传感器680K,使处理器610与触摸传感器680K通过I2C总线接口通信,实现电子设备的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器610可以包含多组I2S总线。处理器610可以通过I2S总线与音频模块670耦合,实现处理器610与音频模块670之间的通信。在一些实施例中,音频模块670可以通过I2S接口向无线通信模块660传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块670与无线通信模块660可以通过PCM总线接口耦合。在一些实施例中,音频模块670也可以通过PCM接口向无线通信模块660传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器610与无线通信模块660。例如:处理器610通过UART接口与无线通信模块660中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块670可以通过UART接口向无线通信模块660传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器610与显示屏694,摄像头693等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器610和摄像头693通过CSI接口通信,实现电子设备的拍摄功能。处理器610和显示屏694通过DSI接口通信,实现电子设备的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器610与摄像头693,显示屏694,无线通信模块660,音频模块670,传感器模块680等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口630是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口630可以用于连接充电器为电子设备充电,也可以用于电子设备与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。在本申请另一些实施例中,电子设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电子设备的无线通信功能可以通过天线1,天线2,移动通信模块650,无线通信模块660,调制解调处理器以及基带处理器等实现。
电子设备通过GPU,显示屏694,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏694和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器610可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏694用于显示图像,视频等。显示屏694包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备可以包括1个或N个显示屏694,N为大于1的正整数。
电子设备可以通过ISP,摄像头693,视频编解码器,GPU,显示屏694以及应用处理器等实现拍摄功能。
ISP用于处理摄像头693反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头693中。
摄像头693用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备可以包括1个或N个摄像头693,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备可以支持一种或多种视频编解码器。这样,电子设备可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture e7perts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口620可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备的存储能力。外部存储卡通过外部存储器接口620与处理器610通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器621可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器610通过运行存储在内部存储器621的指令,从而执行电子设备的各种功能应用以及数据处理。内部存储器621可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器621可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
压力传感器680A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器680A可以设置于显示屏694。压力传感器680A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器680A,电极之间的电容改变。电子设备根据电容的变化确定压力的强度。当有触摸操作作用于显示屏694,电子设备根据压力传感器680A检测所述触摸操作强度。电子设备也可以根据压力传感器680A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器680B可以用于确定电子设备的运动姿态。在一些实施例中,可以通过陀螺仪传感器680B确定电子设备围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器680B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器680B检测电子设备抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备的抖动,实现防抖。陀螺仪传感器680B还可以用于导航,体感游戏场景。
触摸传感器680K,也称“触控面板”。触摸传感器680K可以设置于显示屏694,由触摸传感器680K与显示屏694组成触摸屏,也称“触控屏”。触摸传感器680K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏694提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器680K也可以设置于电子设备的表面,与显示屏694所处的位置不同。
按键690包括开机键,音量键等。按键690可以是机械按键。也可以是触摸式按键。电子设备可以接收按键输入,产生与电子设备的用户设置以及功能控制有关的键信号输入。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到电子设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (20)
1.一种跨系统运行应用程序的方法,其特征在于,应用于电子设备,所述电子设备搭载第一软件系统和第二软件系统,所述第二软件系统基于所述第一软件系统运行,所述方法包括:
在所述第一软件系统中展示目标应用程序的第一界面,所述目标应用程序在所述第二软件系统中运行;
通过所述第二软件系统向所述目标应用程序反馈输入事件,得到所述目标应用程序刷新的第二界面,所述输入事件为在所述第一软件系统中针对所述第一界面触发的;
将所述第一软件系统中的所述第一界面替换为所述第二界面。
2.根据权利要求1所述的方法,其特征在于,所述第一软件系统为安卓系统,所述第二软件系统为Linux系统。
3.根据权利要求1或2所述的方法,其特征在于,所述在所述第一软件系统中展示目标应用程序的第一界面之前,所述方法还包括:
从所述第一软件系统向所述第二软件系统发送启动信息;
在所述第二软件系统中根据所述启动信息启动所述目标应用程序,得到所述第一界面。
4.根据权利要求3所述的方法,其特征在于,所述从所述第一软件系统向所述第二软件系统发送启动信息,包括:
根据在所述第一软件系统中触发的操作,在所述第一软件系统中启动代理安卓应用程序包APK;
通过所述代理APK的主活动main activity获取启动信令、所述目标应用程序的存储路径和所述目标应用程序的应用标识,组成所述启动信息;
通过所述代理APK的管理层和通信层,从所述第一软件系统向所述第二软件系统发送所述启动信息。
5.根据权利要求3所述的方法,其特征在于,所述启动信息包括:启动信令、所述目标应用程序的存储路径和所述目标应用程序的应用标识;
所述在所述第二软件系统中根据所述启动信息启动所述目标应用程序,得到所述第一界面,包括:
所述第二软件系统根据所述启动信令,结合所述目标应用程序的存储路径和应用标识,查找所述目标应用程序;
启动所述目标应用程序,得到所述目标应用程序生成的所述第一界面。
6.根据权利要求5所述的方法,其特征在于,所述启动所述目标应用程序,得到所述目标应用程序生成的所述第一界面,包括:
所述目标应用程序向所述第二软件系统的窗口服务请求窗口,得到所述窗口服务为所述目标应用程序分配的窗口;
所述目标应用程序根据所述窗口服务分配的窗口,结合所述目标应用程序的资源,绘制得到所述第一界面。
7.根据权利要求1至6任一所述的方法,其特征在于,所述在所述第一软件系统中展示目标应用程序的第一界面,包括:
所述第一软件系统通过代理APK,接收所述第二软件系统通过窗口服务发送的所述第一界面、窗口信息和创建信令,所述窗口信息用于表示所述第二软件系统的窗口服务为所述目标应用程序分配的窗口的信息;
所述代理APK根据所述创建信令,结合所述第一软件系统的活动管理服务AMS,在所述第一软件系统中创建与所述目标应用程序对应的应用活动app activity;
所述代理APK通过所述应用活动,结合所述第一界面和所述窗口信息,在所述第一软件系统中显示所述第一界面。
8.根据权利要求7所述的方法,其特征在于,所述窗口信息包括所述目标应用程序对应的窗口标识;
在所述通过所述第二软件系统向所述目标应用程序反馈输入事件,得到所述目标应用程序刷新的第二界面之前,所述方法还包括:
所述代理APK通过管理层,建立所述目标应用程序对应的窗口标识与所述目标应用程序对应的应用活动之间的对应关系。
9.根据权利要求1至8任一所述的方法,其特征在于,在所述通过所述第二软件系统向所述目标应用程序反馈输入事件,得到所述目标应用程序刷新的第二界面之前,所述方法还包括:
在所述第一软件系统中采集触发的所述输入事件;
通过代理APK从所述第一软件系统向所述第二软件系统反馈所述输入事件。
10.根据权利要求9所述的方法,其特征在于,所述在所述第一软件系统中采集触发的所述输入事件,包括:
通过所述第一软件系统的输入管理服务IMS采集所述输入事件;
通过所述第一软件系统的窗口管理服务WMS向所述目标应用程序对应的应用活动转发所述输入事件。
11.根据权利要求9所述的方法,其特征在于,所述通过代理APK从所述第一软件系统向所述第二软件系统反馈所述输入事件,包括:
所述代理APK通过管理层和通信层,向所述第二软件系统反馈所述目标应用程序对应的应用活动所接收的所述输入事件。
12.根据权利要求9至11任一所述的方法,其特征在于,所述在所述第一软件系统中采集触发的所述输入事件,包括:
获取所述输入事件的输入类型和所述第一软件系统中各窗口之间的层叠关系;
若所述输入事件的输入类型为按键输入、且所述目标应用程序对应的窗口处于前台,则采集所述输入事件;
若所述输入事件的输入类型为鼠标输入或触屏输入,则根据所述输入事件的位置,结合所述第一软件系统中各窗口之间的层叠关系,确定所述输入事件对应的窗口;
若所述输入事件对应的窗口为所述目标应用程序对应的窗口,则采集所述输入事件。
13.根据权利要求1至12任一所述的方法,其特征在于,所述通过所述第二软件系统向所述目标应用程序反馈输入事件,得到所述目标应用程序刷新的第二界面,包括:
通过所述第二软件系统的窗口服务接收所述输入事件,并向所述目标应用程序映射所述输入事件;
所述目标应用程序根据映射的所述输入事件,重新绘制所述目标应用程序的界面,得到所述第二界面。
14.根据权利要求1至13任一所述的方法,其特征在于,所述将所述第一软件系统中的所述第一界面替换为所述第二界面,包括:
通过所述第二软件系统的窗口服务,向代理APK反馈所述第二界面和所述目标应用程序的窗口信息;
所述代理APK根据所述第二界面和所述目标应用程序的窗口信息,将所述第一软件系统中所述目标应用程序对应的所述第一界面,替换为所述第二界面。
15.根据权利要求14所述的方法,其特征在于,所述代理APK根据所述第二界面和所述目标应用程序的窗口信息,将所述第一软件系统中所述目标应用程序对应的所述第一界面,替换为所述第二界面,包括:
所述代理APK通过通信层接收所述第二界面和所述目标应用程序的窗口信息;
所述代理APK通过管理层,根据所述目标应用程序对应的窗口标识与所述目标应用程序对应的应用活动之间的对应关系,查找所述窗口信息对应的应用活动;
所述代理APK通过管理层,向所述窗口信息对应的应用活动发送所述第二界面,将所述第一界面替换为所述第二界面。
16.根据权利要求1至15任一所述的方法,其特征在于,所述输入事件包括:窗口大小调整操作、窗口位置调整操作和窗口功能交互操作。
17.一种电子设备,其特征在于,包括:处理器,所述处理器用于运行存储器中存储的计算机程序,以使得所述电子设备实现如权利要求1至16中任一项所述的跨系统运行应用程序的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至16中任一项所述的跨系统运行应用程序的方法。
19.一种计算机程序产品,其特征在于,当计算机程序产品在电子设备上运行时,使得所述电子设备实现如权利要求1至16中任一项所述的跨系统运行应用程序的方法。
20.一种芯片系统,其特征在于,所述芯片系统包括存储器和处理器,所述处理器执行所述存储器中存储的计算机程序,以实现如权利要求1至16中任一项所述的跨系统运行应用程序的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111603512.3A CN116339877A (zh) | 2021-12-24 | 2021-12-24 | 跨系统运行应用程序的方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111603512.3A CN116339877A (zh) | 2021-12-24 | 2021-12-24 | 跨系统运行应用程序的方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116339877A true CN116339877A (zh) | 2023-06-27 |
Family
ID=86875164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111603512.3A Pending CN116339877A (zh) | 2021-12-24 | 2021-12-24 | 跨系统运行应用程序的方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116339877A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116560532A (zh) * | 2023-07-06 | 2023-08-08 | 麒麟软件有限公司 | 一种wayland环境下远程桌面获取硬件光标的实现方法 |
WO2024037542A1 (zh) * | 2022-08-19 | 2024-02-22 | 华为技术有限公司 | 一种触控输入的方法、系统、电子设备及存储介质 |
-
2021
- 2021-12-24 CN CN202111603512.3A patent/CN116339877A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024037542A1 (zh) * | 2022-08-19 | 2024-02-22 | 华为技术有限公司 | 一种触控输入的方法、系统、电子设备及存储介质 |
CN116560532A (zh) * | 2023-07-06 | 2023-08-08 | 麒麟软件有限公司 | 一种wayland环境下远程桌面获取硬件光标的实现方法 |
CN116560532B (zh) * | 2023-07-06 | 2023-09-26 | 麒麟软件有限公司 | 一种wayland环境下远程桌面获取硬件光标的实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112714901B (zh) | 系统导航栏的显示控制方法、图形用户界面及电子设备 | |
WO2021036770A1 (zh) | 一种分屏处理方法及终端设备 | |
CN114115769B (zh) | 一种显示方法及电子设备 | |
CN117063461A (zh) | 一种图像处理方法和电子设备 | |
CN114040242B (zh) | 投屏方法、电子设备和存储介质 | |
CN116360725B (zh) | 显示交互系统、显示方法及设备 | |
WO2021008589A1 (zh) | 一种应用的运行方法及电子设备 | |
CN116339877A (zh) | 跨系统运行应用程序的方法及电子设备 | |
CN116048358B (zh) | 悬浮球的控制方法和相关装置 | |
CN115756268A (zh) | 跨设备交互的方法、装置、投屏系统及终端 | |
CN112740148A (zh) | 一种向输入框中输入信息的方法及电子设备 | |
CN113391775A (zh) | 一种人机交互方法及设备 | |
CN111275607A (zh) | 界面显示方法、装置、计算机设备及存储介质 | |
WO2022062902A1 (zh) | 一种文件传输方法和电子设备 | |
CN113051015B (zh) | 页面渲染方法、装置、电子设备及存储介质 | |
CN115150542B (zh) | 一种视频防抖方法及相关设备 | |
CN111580892B (zh) | 一种业务组件调用的方法、装置、终端和存储介质 | |
CN116263971A (zh) | 图像帧的预测方法、电子设备及计算机可读存储介质 | |
CN116795476B (zh) | 一种删除壁纸的方法及电子设备 | |
CN114764300B (zh) | 一种窗口页面的交互方法、装置、电子设备以及可读存储介质 | |
CN116700578B (zh) | 图层合成方法、电子设备以及存储介质 | |
CN116382896B (zh) | 图像处理算法的调用方法、终端设备、介质及产品 | |
CN116700655B (zh) | 一种界面显示方法及电子设备 | |
WO2022206709A1 (zh) | 应用程序的组件加载方法及相关装置 | |
US20240045557A1 (en) | Method for Sharing Input Device, Electronic Device, and System |
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 |