CN115543526A - 一种控制方法及电子设备 - Google Patents
一种控制方法及电子设备 Download PDFInfo
- Publication number
- CN115543526A CN115543526A CN202110729247.7A CN202110729247A CN115543526A CN 115543526 A CN115543526 A CN 115543526A CN 202110729247 A CN202110729247 A CN 202110729247A CN 115543526 A CN115543526 A CN 115543526A
- Authority
- CN
- China
- Prior art keywords
- operating system
- application
- storage path
- simulator
- message
- 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
- 238000000034 method Methods 0.000 title claims abstract description 95
- 238000009434 installation Methods 0.000 claims abstract description 83
- 230000006870 function Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 17
- 230000005012 migration Effects 0.000 claims description 14
- 238000013508 migration Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 abstract description 23
- 238000004891 communication Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 9
- 230000006399 behavior Effects 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 241000223026 Akodon simulator Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision of facilities of other operating environments, e.g. WINE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种控制方法及电子设备,涉及计算机控制技术领域。通过本方案,在模拟器中的虚拟机运行过程中,当电子设备的应用市场中设置的下载目录发生变化后,模拟器可以基于新的下载目录对虚拟设备进行重构,且模拟器中的虚拟机可以挂载到重构后的虚拟设备,使得模拟器中的虚拟机可以直接访问到新的下载目录中的安装包,以及对新的下载目录中的安装包进行安装,由此实现了在虚拟机运行过程中实时修改宿主机与虚拟机之间的共享路径,且不需要重新启动虚拟机,从而不用关闭虚拟机中当前正在使用的应用,进而不影响虚拟机中当前正在使用的应用。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种控制方法及电子设备。
背景技术
随着个人计算机(personal computer,PC)和手机的进一步融合,在PC产品的系统(如Window系统,IOS系统等)上逐渐能通过模拟器的虚拟化技术使用手机产品的安卓(Android)系统的应用程序(application,APP),进而使得用户可以在PC产品上通过模拟器使用安卓APP。其中,模拟器是一种能够在PC上运行并模拟安卓系统的软件,其能在PC上模拟出安卓系统的运行环境,从而使得用户可以在PC上体验安卓游戏和应用。
目前,对模拟器而言,宿主机(即PC产品上的系统)与虚拟机(即Android系统)的文件共享是极为重要的基础能力。现在大部分的模拟器均采用将宿主文件目录虚拟成设备,挂载到虚拟机中的方式实现文件共享功能。但这种方法有一个明显的缺点,在虚拟机运行过程中,宿主机与虚拟机之间的共享路径无法改变,且若需要更改共享路径,则只能重新启动虚拟机,进而导致虚拟机中正在运行的应用被关闭而受影响。因此,如何在虚拟机运行过程中实现实时修改宿主机与虚拟机之间的共享路径,且不需要重新启动虚拟机,是目前亟需解决的技术问题。
发明内容
本申请实施例提供了一种控制方法及电子设备,能够实现在虚拟机运行过程中实现实时修改宿主机与虚拟机之间的共享路径,且不需要重新启动虚拟机,提升了用户体验。
第一方面,本申请实施例提供了一种控制方法,应用于模拟器,模拟器用于在电子设备上安装,电子设备具有第一操作系统,模拟器中包括第二操作系统,方法包括:响应于接收到的电子设备上第一客户端发送的第一消息,判断第一存储路径与第二存储路径是否相同,其中,第一消息用于指示安装第一应用程序,第一存储路径为第一应用程序的安装包的存储路径;在第一存储路径与第二存储路径不同时,基于第一存储路径,构建第一虚拟设备;向第二操作系统发送第二消息,第二消息用于指示第二操作系统挂载至第一虚拟设备。
这样,在模拟器中的虚拟机运行过程中,当电子设备的客户端(比如应用市场)中设置的下载目录发生变化后,模拟器可以基于新的下载目录对虚拟设备进行重构,且模拟器中的虚拟机可以挂载到重构后的虚拟设备,使得模拟器中的虚拟机(即第二操作系统)可以直接访问到新的下载目录中的安装包,以及对新的下载目录中的安装包进行安装,由此实现了在虚拟机运行过程中实时修改宿主机与虚拟机之间的共享路径,且不需要重新启动虚拟机,从而不用关闭虚拟机中当前正在使用的应用,进而不影响虚拟机中当前正在使用的应用。
在一种可能的实现方式中,第二消息还用于指示第二操作系统安装第一应用程序。
在一种可能的实现方式中,方法还包括:响应于接收到的第二操作系统发送的第三消息,向第二操作系统发送第四消息,第三消息用于表示挂载成功,第四消息用于指示第二操作系统安装第一应用程序。由此,在第二操作系统成功挂载至第一虚拟设备后指示第二操作系统安装第一应用程序。
在一种可能的实现方式中,第一消息中包括以下一项或多项:第一应用程序的名称,第一存储路径,或,第二存储路径是否被修改的信息。
在一种可能的实现方式中,第二消息中包括挂载方式和挂载参数。
在一种可能的实现方式中,挂载方式包括直接挂载或先卸载再挂载。
在一种可能的实现方式中,挂载参数包括以下一项多项:第一虚拟设备的名称,挂载至第二操作系统中的目录,或,指定的文件系统的类型。
在一种可能的实现方式中,在基于第一存储路径,构建第一虚拟设备之前,方法还包括:销毁第二虚拟设备,第二虚拟设备基于第二存储路径构建。
在一种可能的实现方式中,第一客户端为具备应用提供功能的客户端,或者,第一客户端为具备应用迁移功能的客户端。
在一种可能的实现方式中,第一操作系统为Windows操作系统,第二操作系统为安卓操作系统,第一应用程序为安卓应用程序。
在一种可能的实现方式中,第一虚拟设备用于供第二操作系统访问第一存储路径。
在一种可能的实现方式中,第二存储路径为第二应用程序的存储路径,第二应用程序为前次安装的应用程序。
第二方面,本申请实施例提供了一种控制方法,应用于电子设备,电子设备具有第一操作系统,电子设备上安装有模拟器,模拟器中包括第二操作系统,方法包括:响应于用户在电子设备上的第一客户端上对第一应用程序的安装操作,判断第一存储路径与第二存储路径是否相同,第一存储路径为第一应用程序的安装包的存储路径;在第一存储路径与第二存储路径不同时,基于第一存储路径,构建第一虚拟设备,以及将第二操作系统挂载至第一虚拟设备;安装第一应用程序,以及显示第一应用程序。
这样,在模拟器中的虚拟机运行过程中,当电子设备的客户端(比如应用市场)中设置的下载目录发生变化后,模拟器可以基于新的下载目录对虚拟设备进行重构,且模拟器中的虚拟机可以挂载到重构后的虚拟设备,使得模拟器中的虚拟机(即第二操作系统)可以直接访问到新的下载目录中的安装包,以及对新的下载目录中的安装包进行安装,由此实现了在虚拟机运行过程中实时修改宿主机与虚拟机之间的共享路径,且不需要重新启动虚拟机,从而不用关闭虚拟机中当前正在使用的应用,进而不影响虚拟机中当前正在使用的应用。
在一种可能的实现方式中,第一客户端为具备应用提供功能的客户端,或者,第一客户端为具备应用迁移功能的客户端。
在一种可能的实现方式中,第一操作系统为Windows操作系统,第二操作系统为安卓操作系统,第一应用程序为安卓应用程序。
在一种可能的实现方式中,第一虚拟设备用于供第二操作系统访问第一存储路径。
在一种可能的实现方式中,在基于第一存储路径,构建第一虚拟设备之前,方法还包括:
销毁第二虚拟设备,第二虚拟设备基于第二存储路径构建。
在一种可能的实现方式中,第二存储路径为第二应用程序的存储路径,第二应用程序为前次安装的应用程序。
第三方面,本申请提供一种控制装置,该装置包括用于执行上述第一方面中的方法的单元。该装置可对应于执行上述第一方面中描述的方法,该装置中的单元的相关描述请参照上述第一方面的描述,为了简洁,在此不再赘述。示例性的,该控制装置可以为模拟器。
其中,上述第一方面描述的方法可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,处理模块或单元、显示模块或单元等。
第四方面,本申请提供一种电子设备,电子设备包括处理器,处理器与存储器耦合,存储器用于存储计算机程序或指令,处理器用于执行存储器存储的计算机程序或指令,使得第一方面或第二方面中的方法被执行。
例如,处理器用于执行存储器存储的计算机程序或指令,使得该电子设备执行第一方面中的方法。
第五方面,本申请提供一种计算机可读存储介质,其上存储有用于实现第一方面或第二方面中的方法的计算机程序(也可称为指令或代码)。
例如,该计算机程序被计算机执行时,使得该计算机可以执行第一方面或第二方面中的方法。
第六方面,本申请提供一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行第一方面或第二方面中的方法。
可选地,芯片还包括存储器,存储器与处理器通过电路或电线连接。
第七方面,本申请提供一种芯片系统,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行第一方面或第二方面中的方法。
可选地,芯片系统还包括存储器,存储器与处理器通过电路或电线连接。
第八方面,本申请提供一种计算机程序产品,计算机程序产品包括计算机程序(也可称为指令或代码),计算机程序被计算机执行时使得计算机实现第一方面或第二方面中的方法。
可以理解的是,上述第三方面至第八方面的有益效果可以参见上述第一方面或第二方面中的相关描述,在此不再赘述。
附图说明
图1是本申请实施例提供的一种应用场景示意图;
图2是本申请实施例的一种电子设备的结构框图;
图3是本申请实施例的一种电子设备的界面显示示意图;
图4a是本申请实施例的一种电子设备的界面显示示意图;
图4b是本申请实施例的一种电子设备的界面显示示意图;
图5是本申请实施例的一种电子设备的界面显示示意图;
图6是本申请实施例的一种电子设备的界面显示示意图;
图7是本申请实施例的一种电子设备的界面显示示意图;
图8是本申请实施例提供的一种控制方法的流程示意图;
图9是本申请实施例提供的另一种控制方法的流程示意图;
图10是本申请实施例提供的又一种控制方法的流程示意图;
图11是本申请实施例的一种芯片的结构示意图;
图12是本申请实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本文中符号“/”表示关联对象是或者的关系,例如A/B表示A或者B。
本文中的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一响应消息和第二响应消息等是用于区别不同的响应消息,而不是用于描述响应消息的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或者两个以上,例如,多个处理单元是指两个或者两个以上的处理单元等;多个元件是指两个或者两个以上的元件等。
首先对本方案中涉及的技术术语进行介绍。
(1)挂载
挂载(mount)是指把某个设备与目录树中的某个特定位置进行关联,以便于操作系统能够从根目录开始找到这个刚刚加入的设备,从而访问该设备的内的文件数据。其中,这里的设备是泛指,其可以是硬盘或光盘存储器等这样真实的设备,也可以是操作系统中的某个目录,亦可以是其他的虚拟设备等。
举例来说,当需要访问存储在U盘(USB flash disk)上的数据时,为了使计算机中的操作系统找到U盘,必须要把U盘挂载到操作系统中目录树结构的某个位置下(比如,/media/usb/)。假设U盘设备是/dev/usb,那么在把U盘插入计算机时,计算机对应执行的命令就是:mount/dev/usb/media/usb,即将U盘挂载到/media/usb/目录下。在计算机执行上述命令后,U盘中的文件就对计算机中的操作系统可见了,比如在U盘中的某个文件位于/dir/hello.txt,那么操作系统可访问的对应路径就是/media/usb/dir/hello.txt。
接下来对本申请实施例中的技术方案进行描述。
图1是本申请实施例提供的一种应用场景示意图。如图1所示,电子设备A上安装有模拟器11和应用市场12。模拟器11可以在电子设备A上模拟出安卓系统的运行环境,且能够运行安卓系统。应用市场12可以提供与电子设备A上配置的系统适配的应用,同时也可以提供与安卓系统适配的应用。例如,当电子设备A上配置的系统为windows系统时,应用市场12可以提供windows应用,也可以提供安卓应用,其中,windows应用的安装包的后缀可以为.exe,安卓应用的安卓包的后缀可以为.apk;当电子设备A上配置的系统为ios系统时,应用市场12可以提供ios应用,也可以提供安卓应用,ios应用的安装包的后缀可以为.ipa,安卓应用的安卓包的后缀可以为.apk。
本方案中,用户可以在应用市场12中设置安卓应用的下载目录,该下载目录可以理解为宿主机(即电子设备A上配置的系统)与虚拟机(即模拟器12中的安卓系统)之间的共享路径。在模拟器12中的虚拟机运行过程中,当应用市场12中设置的下载目录发生变化后,模拟器12可以基于新的下载目录对虚拟设备进行重构,且模拟器12中的虚拟机可以挂载重构后的虚拟设备,从而使得模拟器12中的虚拟机可以直接访问到新的下载目录中的安装包,以及对新的下载目录中的安装包进行安装。由此,实现在虚拟机运行过程中实时修改宿主机与虚拟机之间的共享路径,使得虚拟机可以访问到修改后的共享路径中的数据且不需要重新启动虚拟机,从而不用关闭虚拟机中当前正在使用的应用,进而不影响虚拟机中当前正在使用的应用。
可以理解的是,电子设备A上配置的系统可以为windows系统,也可以为ios系统,亦可以为其他的操作系统,具体可根据实际情况而定,在此不做限定。此外,电子设备A可以为移动终端,也可以为非移动终端。示例性的,移动终端可以为平板电脑、笔记本电脑、掌上电脑、车载终端等,非移动终端可以为个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,在此不做具体限定。
接下来,基于图1所示的场景,以电子设备A上配置的系统为windows系统为例,对本方案中涉及的电子设备的结构进行介绍。
图2是本申请实施例的一种电子设备的结构框图。如图2所示,电子设备A可以是搭载windows系统的电子设备,在该windows系统下可以安装多个应用,比如模拟器11(模拟器名称.exe)。其中,模拟器11可以是搭载安卓系统111的应用,安卓系统111下可以包括安卓应用和文件管理器。示例性的,安卓应用可以为电子邮件应用、华为视频应用等。文件管理器可以理解为文件管理工具,利用该文件管理器可以对安卓系统111中的文件进行管理,例如查看文件、编辑文件、删除文件、移动文件等等。
本方案中,安卓系统111可以挂载到模拟器11构建的虚拟设备上。在安卓系统111挂载到虚拟设备上后,安卓系统111可以访问电子设备A中windows系统中的共享文件夹13,该共享文件夹13可以位于电子设备A中windows系统的磁盘目录中。其中,用户从电子设备A的应用市场中下载的安卓应用的安装包可以存储在共享文件夹13中,以便安卓系统111可以从共享文件夹13中获取到安卓应用,并进行安装。可以理解的是,本方案中,共享文件夹13可以通过电子设备A的应用市场进行设定。此外,安卓系统111中的虚拟设备可以理解为是磁盘,可以将其形象的理解为个人计算机中的C盘或D盘,其可以为安卓系统提供数据存储空间。
接下来,基于图1所示的场景和图2所示的电子设备的结构,对本方案中涉及的控制方法进行介绍。
(1)修改电子设备A中的共享路径
继续参阅图1,用户可以打开(如双击或单击等)电子设备A上应用市场12。之后,电子设备A的显示界面可以由图1所示的界面进入到如图3所示的界面。在图3中,用户可以通过应用市场12中的“设置”的入口查看到共享路径((即下载目录))的修改入口121。接着,用户可以从修改入口121对共享路径进行修改。例如,将下载目录由“D:Download\AppGallery”修改为“E:Download\AppGallery”。
(2)在电子设备A上安装安卓应用
继续参阅图1,用户可以打开(如双击或单击等)电子设备A上应用市场12。之后,电子设备A的显示界面可以由图1所示的界面进入到如图4所示的界面。在图4a中,用户可以通过应用市场12中的“安卓应用”的入口查看或搜索到可以安装的安卓应用。接着,用户可以从中选取一个安卓应用a,并选择安卓应用a对应的安装控件122。之后,电子设备A则从应用市场12中下载(即获取)安卓应用a,以及将该安卓应用a的安装包存储至电子设备A中的共享路径(即下载目录)中。例如,可以将安卓应用a存储至“E:Download\AppGallery”这一下载目录下。在一个例子中,在电子设备A下载和/或安装安卓应用a的过程中,如图4b所示,可以在安卓应用a的对应的安装控件(如图4a中的122所示)更新显示为显示控件(如图4b中的123所示),从而使得用户可以通过显示控件123实时观察到下载和/或安装进度。
在电子设备A将安卓应用a下载完成后,应用市场12可以通过进程间通信(inter-process communication,IPC)向模拟器11发送安装命令,以及发送安卓应用a的应用名称信息和安装包存储路径信息(即共享路径信息)等。
可以理解的是,当电子设备A中的模拟器11未处于开启状态时,电子设备A可以控制模拟器11静默开启。示例性的,在模拟器11未处于开启状态时,电子设备A可以向模拟器11发送后台启动指令,以指示模拟器11在后台启动;接着,模拟器11接收到后台启动指令后,可以在后台启动并运行,由此实现控制模拟器11静默开启。
(3)模拟器校验共享路径是否发生变化
电子设备A中的模拟器11通过IPC接收到应用市场12发送的安装命令,以及安卓应用a的应用名称信息和安装包存储路径信息(即共享路径信息)之后,模拟器11可以对共享路径信息进行校验,以便确定共享路径是否发生变化。
在一个例子中,模拟器11中可以至少记录有前次接收到的共享路径信息。接着,在模拟器11本次接收到共享路径信息之后,模拟器11可以将本次接收到的共享路径信息与前次接收到的共享路径信息进行比对,以确定共享路径是否发生变化。例如,前次接收到的共享路径信息为“D:Download\AppGallery”,本次接收到的共享路径信息为“E:Download\AppGallery”,将两者对比可知共享路径已发生变化。
在一个例子中,电子设备A中也可以记录共享路径的修改信息。此时,电子设备A可以基于其记录的修改信息,确定出此次的共享路径是否发生变化。其中,当电子设备A确定出此次的共享路径发生变化时,电子设备A可以向模拟器11发送用于指示共享路径发生变化的消息。之后,模拟器11接收到电子设备A发送的用于指示共享路径发生变化的消息后,模拟器11即可以获知到共享路径已发生变化。
需说明的是,本方案中,当共享路径发生变化时,模拟器11则可以进行动态挂载。当共享路径未发生变化时,模拟器11则可以不进行动态挂载,并向模拟器11中的虚拟机(即安卓系统)发送安装命令,以指示模拟器11中的虚拟机安装安卓应用a。
(4)模拟器动态挂载
a、模拟器重构虚拟设备
本方案中,当共享路径发生变化时,模拟器11可以销毁原有的虚拟设备,以及基于新的共享路径,构建新的虚拟设备,即虚拟设备的软件初始化。示例性的,模拟器11在构建新的虚拟设备时,模拟器11可以向电子设备A的操作系统申请内存,然后模拟器11再设置相应的行为处理函数,比如读取或写入所需的处理函数,以及将共享路径作为相应的行为处理函数的读写目录,即,该行为处理函数的读写均是在共享路径中进行的;最后,将行为处理函数注册到模拟器中,即可以构建出可以指向共享路径的新的虚拟设备,这样当访问虚拟设备时就可以访问到共享路径中的文件,由此即完成虚拟设备的软件初始化。示例性的,该虚拟设备可以供模拟器11中的虚拟机访问电子设备A的硬盘,其是一个虚拟的设备,其可以指向电子设备A中系统下的某个路径,比如,用户设置的共享路径。其中,当虚拟设备指向电子设备A中系统下用户设置的共享路径时,模拟器11中的虚拟机可以通过该虚拟设备访问到该共享路径。
模拟器11构建新的虚拟设备后,可以通过管道通信(communication pipeline)或者基于共享内存的通信向其内的虚拟机(即安卓系统)发送挂载命令,以便虚拟机挂载到新的虚拟设备上。
本方案中,挂载命令可以包括挂载方式和挂载参数。其中,挂载方式可以包括直接挂载或先卸载再挂载;挂载参数可以包括:最小存储单元大小,所需挂载的虚拟设备的标识(比如名称等),挂载到虚拟机中的目录,或,指定的文件系统的类型等。在一个例子中,最小存储单元大小可以理解为为虚拟设备分配的最小存储位置的大小。在一个例子中,若在虚拟机的挂载列表中存在与本次新构建的虚拟设备的名称相同的设备,则表明本次新构建的虚拟设备不是首次挂载,因此为了避免出现冲突,挂载方式可以为先卸载再挂载,即先卸载原有的虚拟设备,再挂载到新的虚拟设备上。若在虚拟机的挂载列表中不存在与本次新构建的虚拟设备的名称相同的设备,则挂载方式可以为直接挂载。在一个例子中,指定的文件系统的类型可以为9p文件系统(plan 9file system,9pfs)。
在一个例子中,若模拟器11中的虚拟机当前处于休眠状态,模拟器11则可以向其内的虚拟机发送唤醒指令,以唤醒其内的虚拟机。
b、模拟器中的虚拟机挂载到新的虚拟设备
模拟器11中的虚拟机接收到模拟器11发送的挂载命令后,可以卸载原有的虚拟设备,并挂载到新的虚拟设备上。举例来说,假设虚拟设备的名称为:virtual_disk,挂载到虚拟机中的目录是:\data\media,那么虚拟机对应执行的命令就是:mountvirtual_disk\data\media,即将新的虚拟设备挂载到\data\media目录下;之后,虚拟机直接访问\data\media,就可以访问到虚拟设备。由于虚拟设备是指向共享路径的,因此,当虚拟机访问到虚拟设备时,即可以访问到共享路径中的文件。示例性的,虚拟设备可以理解为宿主机与虚拟机之间的文件共享媒介。
在虚拟机挂载到新的虚拟设备上后,虚拟机可以将挂载结果反馈给模拟器11,以便模拟器11获知到反馈结果。
(5)模拟器中的虚拟机安装安卓应用
模拟器11在获知到其内的虚拟机已成功挂载到新的虚拟设备上后,可以向虚拟机发送安装命令,以及安卓应用a的应用名称信息。
接着,虚拟机接收到模拟器11发送的安装命令后,可以基于安卓应用a的应用名称信息,访问虚拟设备,进而从虚拟设备所指向的共享路径中访问到安卓应用a的安装包。之后,虚拟机即可以安装安卓应用a。当虚拟机安装成功后,可以将安装结果反馈给模拟器11,以便模拟器获知到安装结果。
此外,在虚拟机成功安装安卓应用a后,如图5所示,在虚拟机中可以显示安卓应用a的快捷方式图标,从而便于用户在虚拟机中对安卓应用a进行启动或卸载等操作。
可以理解的是,当模拟器11在获知到其内的虚拟机挂载失败后,可以向用户呈现失败信息,以便用户获知到挂载失败的结果,以及供用户选择是否重新进行挂载。示例性的,如图6所示,在挂载失败后,可以在安卓应用a的对应的安装控件(如图4a中的122所示)更新显示为重试控件(如图6中的124所示);之后,当用户点击重试控件124后,即可以重新进行挂载。
(6)应用市场显示安装结果
模拟器11获知到安装结果后,可以将安装结果通过IPC发送至应用市场12。之后,应用市场12可以显示安装结果,如安装成功或失败等。示例性的,如图7所示,在安装成功后,可以在安卓应用a的对应的安装控件(如图4a中的122所示)更新显示为开启控件或打开控件(如图7中的125所示)。至此即完成安卓应用的安装。
可以理解的是,若在安装安卓应用时,电子设备A中的模拟器11处于未开启状态,则在安卓应用安卓完毕后,可以将模拟器11的状态还原到未开启状态(即初始状态)。此外,上述方案除了适用于安装安卓应用外,也同样适用于更新安卓应用,其中,更新安卓应用的过程与安装安卓应用的过程相同,此处不再赘述。
需说明的是,上述(1)、(2)、(3)、(4)、(5)、(6)并不构成对本方案中各个流程执行顺序的限制,它们之间可以选择性的调换顺序。
由此,本方案中,在模拟器中的虚拟机运行过程中,当电子设备的应用市场中设置的下载目录发生变化后,模拟器可以基于新的下载目录对虚拟设备进行重构,且模拟器中的虚拟机可以挂载到重构后的虚拟设备,使得模拟器中的虚拟机可以直接访问到新的下载目录中的安装包,以及对新的下载目录中的安装包进行安装,由此实现了在虚拟机运行过程中实时修改宿主机与虚拟机之间的共享路径,且不需要重新启动虚拟机,从而不用关闭虚拟机中当前正在使用的应用,进而不影响虚拟机中当前正在使用的应用。
为便于理解,下面举例描述本方案中提供的控制方法。
示例性的,图8是本申请实施例提供的一种控制方法的流程示意图。其中,图8中的第一客户端和模拟器均可以安装在电子设备上,且电子设备具有第一操作系统,模拟器中包括第二操作系统,第一操作系统不同于第二操作系统。示例性的,第一操作系统可以为Windows操作系统,第二操作系统可以为安卓操作系统。示例性的,第一客户端可以为具备应用提供功能的客户端,比如:应用市场,该应用市场可以提供适配于第二操作系统的应用程序,如安卓应用;第二操作系统可以称之为虚拟机。其中,图8中描述的是通过第一客户端在第二操作系统中安装应用程序的过程。
如图8所示,该控制方法可以包括以下步骤:
S801、响应于用户在第一客户端上对第一应用程序的安装操作,第一客户端下载第一应用程序的安装包,并将该安装包放入第一存储路径。
具体的,用户可以在第一客户端中下载第一应用程序,其中,第一客户端中可以有默认的下载路径,即第一存储路径。此外,在用户下载第一应用程序前,用户也可以更改第一下载路径。其中,第一应用程序的安装包可以存放于第一存储路径中。示例性的,安装操作可以为安装应用程序的操作,也可以为更新应用程序的操作,此处不做限定。示例性的,第一应用程序可以为安卓应用程序。示例性的,该第一下载路径可以理解为共享路径。
S802、第一客户端向模拟器发送第一消息,第一消息用于指示安装第一应用程序。
具体的,第一客户端下载完成后,可以通过IPC向模拟器发送应用指示模拟器安装第一应用程序的第一消息,以便模拟器安装第一应用程序。示例性的,该第一消息可以包括以下一项或多项:第一应用程序的名称,第一存储路径,或,第二存储路径是否被修改的信息。
S803、模拟器判断第一存储路径与第二存储路径是否相同,第一存储路径为第一应用程序的安装包的存储路径。
具体的,模拟器可以对第一应用程序的安装包的第一存储路径(即共享路径)进行校验,以确定第一存储路径与第二存储路径是否相同,进而确定出共享路径是否发生变化。其中,第二存储路径可以为前次安装的应用程序的存储路径,也可以为第一客户端上默认的存储路径。
示例性的,模拟器可以通过将第一存储路径与其记录的存储路径信息(即共享路径信息)进行比对,以确定共享路径是否发生变化。此外,第一客户端也可以将第二存储路径是否被修改的信息发送给模拟器,这样模拟器即可以确定出共享路径是否发生变化。
S804、模拟器在判断出第一存储路径与第二存储路径不同时,基于第一存储路径,构建第一虚拟设备。
具体的,当模拟器判断出第一存储路径与第二存储路径不同(即共享路径发生变化)时,模拟器可以基于第一存储路径,构建第一虚拟设备。示例性的,在构建第一虚拟设备时,模拟器可以向电子设备的第一操作系统申请内存,然后模拟器再设置相应的行为处理函数,比如读取或写入所需的处理函数,以及将第一存储路径作为相应的行为处理函数的读写目录,即,该行为处理函数的读写均是在第一存储路径中进行的;最后,将行为处理函数注册到模拟器中,即可以构建出可以指向第一存储路径的第一虚拟设备。其中,当模拟器中的第二操作系统访问该第一虚拟设备时,即可以访问到第一存储路径。
在一个例子中,在构建第一虚拟设备前,模拟器可以先销毁基于第二存储路径构建的第二虚拟设备。
S805、模拟器向第二操作系统发送第二消息,第二消息用于指示第二操作系统挂载至第一虚拟设备。
具体的,模拟器创建出第一虚拟设备后,可以通过管道通信向第二操作系统发送用于指示第二操作系统挂载至第一虚拟设备的第二消息,以便第二操作系统挂载到第一虚拟设备上。
示例性的,第二消息中可以包括挂载方式和挂载参数。挂载方式包括直接挂载或先卸载再挂载。挂载参数包括以下一项多项:第一虚拟设备的名称,挂载至第二操作系统中的目录,或,指定的文件系统的类型。
S806、第二操作系统挂载到第一虚拟设备上。
具体的,第二操作系统可以根据第二消息中所包含的挂载方式和挂载参数,挂载到第一虚拟设备上,详细的挂载过程,详见上文中的描述,此处不再赘述。
S807、第二操作系统向模拟器发送第三消息,第三消息用于表示挂载成功。
具体地,第二操作系统在成功挂载至第一虚拟设备上后,可以通过管道通信向模拟器发送用于表示挂载成功的第三消息。此外,第二操作系统也可以在挂载失败时,通过管道通信向模拟器发送用于表示挂载失败的消息。
S808、响应于接收到的第三消息,模拟器向第二操作系统发送第四消息,第四消息用于指示第二操作系统安装第一应用程序。
具体的,模拟器获知到第二操作系统成功挂载至第一虚拟设备后,可以通过管道通信向第二操作系统发送用于指示第二操作系统安装第一应用程序的第四消息,以便第二操作系统安装第一应用程序。
S809、第二操作系统安装第一应用程序。
具体地,第二操作系统可以访问第一虚拟设备,从而访问到第一存储路径,进而获取到存储在第一存储路径中的第一应用程序的安装包,并安装第一应用程序。
S810、第二操作系统向模拟器发送第五消息,第五消息用于表示安装结果。
具体地,第二操作系统可以通过管道通信向模拟器发送用于表示安装结果的第五消息。其中,安装结果可以包括安装成功或安装失败。
S811、模拟器向第一客户端发送第六消息,第六消息用于表示第二操作系统安装第一应用程序的结果。
具体地,模拟器获知到第二操作系统对第一应用程序的安装结果后,可以通过IPC向第一客户端发送第六消息,其中,第六消息用于表示第二操作系统安装第一应用程序的结果。
S812、第一客户端输出安装结果。
具体地,第一客户端获知到第二操作系统安装第一应用程序的结果后,可以输出该安装结果。示例性的,第一客户端可以通过文字方式、图形方式、语音方式、振动方式等中的一种或多种输出该安装结果,以便向用户展示安装结果。
可以理解的是,S805中的第二消息还可以用于指示第二操作系统安装第一应用程序,即在第二操作系统挂载到第一虚拟设备上后,第二操作系统可以安装第一应用程序。此时,在S806中当第二操作系统成功挂载至第一虚拟设备后,可以直接执行S809,即第二操作系统直接安装第一应用程序。
可以理解的是,在S803处,若判断出共享路径未发生变化,则可以直接执行S808,即直接通过管道通信向第二操作系统发送第四消息。上述各个步骤的详细描述可参考上文中的相关描述,在此就不再一一赘述。
接下来,基于上文所描述的内容,对本申请实施例提供的另一种控制方法进行描述。
示例性的,图9是本申请实施例提供的另一种控制方法的流程示意图。其中,图9中的第一客户端和模拟器均可以安装在电子设备上,且电子设备具有第一操作系统,模拟器中包括第二操作系统,第一操作系统不同于第二操作系统。示例性的,第一操作系统可以为Windows操作系统,第二操作系统可以为安卓操作系统。示例性的,第一客户端可以为具备应用提供功能的客户端,比如:应用市场,该应用市场可以提供适配于第二操作系统的应用程序,如安卓应用;第二操作系统可以称之为虚拟机。图9中描述的是通过第一客户端在第二操作系统中安装应用程序的过程。其中,图9与图8的不同之处在于,图9中是第一客户端可以预先将用户设置的存储路径(即共享路径)或者存储路径是否发生变化的信息发送至模拟器,从而使得模拟器可以预先获知到共享路径是否发生变化,进而在安装应用程序时,可以直接基于判断结果确定是否重新构建虚拟设备,避免在安装时判断共享路径是否发生变化,提升安装效率。
如图9所示,该控制方法可以包括以下步骤:
S901、第一客户端向模拟器发送第六消息,第六消息用于表示第一客户端中的第一存储路径。
具体地,第一客户端可以周期性向模拟器发送第六消息。其中,第六消息用于表示第一客户端中的第一存储路径。此外,第一客户端也可以在存储路径发生变化后向模拟器发送第六消息,此处不做限定。其中,第一存储路径可以是默认的下载路径,也可以是用户更改后的下载路径,该第一存储路径可以存放第一应用程序的安装包。
S902、模拟器判断第一存储路径与第二存储路径是否相同,并存储判断结果。
具体地,模拟器接收到第六消息后,可以判断第一存储路径与第二存储路径是否相同,进而得到判断结果,并存储该判断结果。其中,第二存储路径为前次安装应用的安装包所在的存储路径,或者为模拟器前次接收到的第一客户端发送的存储路径。
S903、响应于用户在第一客户端上对第一应用程序的安装操作,第一客户端下载第一应用程序的安装包,并将该安装包放入第一存储路径。
具体的,用户可以在第一客户端中下载第一应用程序,其中,第一客户端中可以有默认的下载路径,即第一存储路径。此外,在用户下载第一应用程序前,用户也可以更改第一下载路径。其中,第一应用程序的安装包可以存放于第一存储路径中。示例性的,安装操作可以为安装应用程序的操作,也可以为更新应用程序的操作,此处不做限定。示例性的,第一应用程序可以为安卓应用程序。示例性的,该第一下载路径可以理解为共享路径。
S904、第一客户端向模拟器发送第一消息,第一消息用于指示安装第一应用程序。
具体的,第一客户端下载完成后,可以通过IPC向模拟器发送应用指示模拟器安装第一应用程序的第一消息,以便模拟器安装第一应用程序。示例性的,该第一消息可以包括以下一项或多项:第一应用程序的名称,第一存储路径,或,第二存储路径是否被修改的信息。
S905、模拟器在判断结果为存储路径发生变化时,基于第一存储路径,构建第一虚拟设备。
具体的,当判断结果为存储路径发生变化(即共享路径发生变化)时,模拟器可以基于第一存储路径,构建第一虚拟设备,详见上文描述,此处不再赘述。
S906、模拟器向第二操作系统发送第二消息,第二消息用于指示第二操作系统挂载至第一虚拟设备。
具体的,模拟器创建出第一虚拟设备后,可以通过管道通信向第二操作系统发送用于指示第二操作系统挂载至第一虚拟设备的第二消息,以便第二操作系统挂载到第一虚拟设备上。示例性的,第二消息中可以包括挂载方式和挂载参数。挂载方式包括直接挂载或先卸载再挂载。挂载参数包括以下一项多项:第一虚拟设备的名称,挂载至第二操作系统中的目录,或,指定的文件系统的类型。
S907、第二操作系统挂载到第一虚拟设备上。
具体的,第二操作系统可以根据第二消息中所包含的挂载方式和挂载参数,挂载到第一虚拟设备上,详细的挂载过程,详见上文中的描述,此处不再赘述。
S908、第二操作系统向模拟器发送第三消息,第三消息用于表示挂载成功。
具体地,第二操作系统在成功挂载至第一虚拟设备上后,可以通过管道通信向模拟器发送用于表示挂载成功的第三消息。此外,第二操作系统也可以在挂载失败时,通过管道通信向模拟器发送用于表示挂载失败的消息。
S909、响应于接收到的第三消息,模拟器向第二操作系统发送第四消息,第四消息用于指示第二操作系统安装第一应用程序。
具体的,模拟器获知到第二操作系统成功挂载至第一虚拟设备后,可以通过管道通信向第二操作系统发送用于指示第二操作系统安装第一应用程序的第四消息,以便第二操作系统安装第一应用程序
S910、第二操作系统安装第一应用程序。
具体地,第二操作系统可以访问第一虚拟设备,从而访问到第一存储路径,进而获取到存储在第一存储路径中的第一应用程序的安装包,并安装第一应用程序。
S911、第二操作系统向模拟器发送第五消息,第五消息用于表示安装结果。
具体地,第二操作系统可以通过管道通信向模拟器发送用于表示安装结果的第五消息。其中,安装结果可以包括安装成功或安装失败。
S912、模拟器向第一客户端发送第六消息,第六消息用于表示第二操作系统安装第一应用程序的结果。
具体地,模拟器获知到第二操作系统对第一应用程序的安装结果后,可以通过IPC向第一客户端发送第六消息,其中,第六消息用于表示第二操作系统安装第一应用程序的结果。
S913、第一客户端输出安装结果。
具体地,第一客户端获知到第二操作系统安装第一应用程序的结果后,可以输出该安装结果。示例性的,第一客户端可以通过文字方式、图形方式、语音方式、振动方式等中的一种或多种输出该安装结果,以便向用户展示安装结果。
可以理解的是,在S904处,若判断结果为共享路径未发生变化,则可以直接执行S908,即直接通过向虚拟机发送第四消息。上述各个步骤的详细描述可参考上文中的相关描述。此外,S902与S903之间可以间隔预设时长,也可以是在执行完S902后,立即执行S903,此处不做限定。
接下来,基于上文所描述的内容,对本申请实施例提供的又一种控制方法进行描述。
示例性的,图10是本申请实施例提供的又一种控制方法的流程示意图。其中,图10中的第一客户端和模拟器均可以安装在电子设备上,且电子设备具有第一操作系统,模拟器中包括第二操作系统,第一操作系统不同于第二操作系统。此外,电子设备可以与其他的电子设备(比如手机等)相连。示例性的,第一操作系统可以为Windows操作系统,第二操作系统可以为安卓操作系统。示例性的,第一客户端可以为具备应用迁移功能的客户端,比如:手机管家等;第二操作系统可以称之为虚拟机。图10中主要描述的是通过第一客户端将与电子设备相连的其他的电子设备上的应用(比如安卓应用等)迁移到第二操作系统中的过程。
如图10所示,该方法可以包括以下步骤:
S1001、响应于用户在第一客户端上对目标应用的迁移操作,第一客户端将目标应用的应用数据放入第一存储路径。
具体的,当用户将其所使用的第一电子设备(比如:手机)与安装有模拟器的第二电子设备建立连接后,用户可以在第一客户端中对安装于用户所使用的第一电子设备上的目标应用进行迁移操作。第一客户端在接收到用户对目标应用的迁移操作后,可以将目标应用的应用数据写入至第二电子设备上用户预先设置或系统默认的第一存储路径中。
S1002、第一客户端向模拟器发送第七消息,第七消息用于指示模拟器迁移目标应用,第七消息中可以包括第一存储路径。
具体地,第一客户端可以向模拟器发送用于指示模拟器迁移目标应用的第七消息。示例性的,第七消息中可以包括目标应用的名称和第一存储路径,或者包括目标应用的名称,和用于表示第一存储路径的迁移标识。
S1003、模拟器判断第一存储路径与第二存储路径是否相同。
具体的,模拟器可以将第一存储路径与第二存储路径进行对比,以确定出两者是否相同。其中,第二存储路径可以为模拟器记录的前次执行应用迁移时的路径。
S1004、模拟器在判断出第一存储路径与第二存储路径不同时,基于第一存储路径,构建第一虚拟设备。
具体的,当模拟器判断出第一存储路径与第二存储路径不同(即共享路径发生变化)时,模拟器可以基于第一存储路径,构建第一虚拟设备,详见上文描述,此处不再赘述。
S1005、模拟器向第二操作系统发送第二消息,第二消息用于指示第二操作系统挂载至第一虚拟设备。
具体的,模拟器创建出第一虚拟设备后,可以通过管道通信向第二操作系统发送用于指示第二操作系统挂载至第一虚拟设备的第二消息,以便第二操作系统挂载到第一虚拟设备上。示例性的,第二消息中可以包括挂载方式和挂载参数。挂载方式包括直接挂载或先卸载再挂载。挂载参数包括以下一项多项:第一虚拟设备的名称,挂载至第二操作系统中的目录,或,指定的文件系统的类型。
S1006、第二操作系统挂载到第一虚拟设备上。
具体的,第二操作系统可以根据第二消息中所包含的挂载方式和挂载参数,挂载到第一虚拟设备上,详细的挂载过程,详见上文中的描述,此处不再赘述。
S1007、第二操作系统向模拟器发送第三消息,第三消息用于表示挂载成功。
具体地,第二操作系统在成功挂载至第一虚拟设备上后,可以通过管道通信向模拟器发送用于表示挂载成功的第三消息。此外,第二操作系统也可以在挂载失败时,通过管道通信向模拟器发送用于表示挂载失败的消息。
S1008、响应于接收到的第三消息,模拟器向第二操作系统发送第八消息,第八消息用于指示第二操作系统迁移目标应用。
具体的,模拟器获知到虚拟机挂载成功后,可以向第二操作系统发送用于指示第二操作系统迁移目标应用的第八消息,以便第二操作系统迁移目标应用。
S10010、第二操作系统迁移目标应用。
具体地,第二操作系统接收到第八消息后,可以通过访问其挂载的第一虚拟设备访问到第一存储路径中目标应用的应用数据,进而基于目标应用的应用数据,迁移目标应用。
S1010、第二操作系统输出目标应用。
具体地,第二操作系统完成目标应用的迁移工作后,可以输出目标应用,例如显示目标应用的图标,语音提示用户迁移完成等等。此外,第二操作系统也可以向模拟器反馈迁移结果,从而使得模拟器可以将迁移结果反馈至第一客户端。
示例性的,在第二操作系统完成目标应用的迁移工作后,用户可以在第二操作系统上开启目标应用,并可以从目标应用中查看到其在第一电子设备内的历史使用数据等等。例如,当目标应用为社交类应用时,用户可以在第二操作系统中的目标应用中查看到其在第一电子设备上使用目标应用的聊天记录。
可以理解的是,在S1003处,若判断出共享路径未发生变化,则可以直接执行S1008,即直接向虚拟机发送第八消息。上述各个步骤的详细描述可参考上文中的相关描述,在此就不再一一赘述。
基于上述实施例中的方法,本申请实施例还提供了一种芯片。请参阅图11,图11为本申请实施例提供的一种芯片的结构示意图。如图11所示,芯片1100包括一个或多个处理器1101以及接口电路1102。可选的,芯片1100还可以包含总线1103。其中:
处理器1101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1101可以是通用处理器、数字通信器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。接口电路1102可以用于数据、指令或者信息的发送或者接收,处理器1101可以利用接口电路1102接收的数据、指令或者其它信息,进行加工,可以将加工完成信息通过接口电路1102发送出去。
可选的,芯片还包括存储器,存储器可以包括只读存储器和随机存取存储器,并向处理器提供操作指令和数据。存储器的一部分还可以包括非易失性随机存取存储器(NVRAM)。可选的,存储器存储了可执行软件模块或者数据结构,处理器可以通过调用存储器存储的操作指令(该操作指令可存储在操作系统中),执行相应的操作。
可选的,接口电路1102可用于输出处理器1101的执行结果。
需要说明的,处理器1101、接口电路1102各自对应的功能既可以通过硬件设计实现,也可以通过软件设计来实现,还可以通过软硬件结合的方式来实现,这里不作限制。
应理解,上述方法实施例的各步骤可以通过处理器中的硬件形式的逻辑电路或者软件形式的指令完成。其中,该芯片可应用于上述电子设备A中,以实现本申请实施例中提供的电子设备A所执行的方法。
图12是本申请实施例提供的一种电子设备的硬件结构示意图。该电子设备包括:处理器1210、存储器1220、通信接口1230、总线1240。示例性的,该电子设备可以为图2中所示的电子设备A。
其中,该处理器1210可以与存储器1220连接。该存储器1220可以用于存储该程序代码和数据。因此,该存储器1220可以是处理器1210内部的存储单元,也可以是与处理器1210独立的外部存储单元,还可以是包括处理器1210内部的存储单元和与处理器1210独立的外部存储单元的部件。示例性的,该处理器1210可以用于执行本申请实施例中提供的方法。
可选的,电子设备还可以包括总线1240。其中,存储器1220、通信接口1230可以通过总线1240与处理器1210连接。总线1240可以是外设部件互连标准(peripheralcomponent interconnect,PCI)总线或扩展工业标准结构(extended industry standardarchitecture,EISA)总线等。该总线1240可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
应理解,在本申请实施例中,该处理器1210可以采用CPU。该处理器还可以是其它通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(fieldprogrammable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器1210采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器1220可以包括只读存储器和随机存取存储器,并向处理器1010提供指令和数据。处理器1210的一部分还可以包括非易失性随机存取存储器。例如,处理器1010还可以存储设备类型的信息。
在电子设备运行时,处理器1210执行存储器1220中的计算机执行指令以执行上述方法的操作步骤。
在本申请实施例中,电子设备可以包括硬件层、运行在硬件层之上的操作系统层,以及运行在操作系统层上的应用层。其中,硬件层可以包括中央处理器(centralprocessing unit,CPU)、内存管理单元(memory management unit,MMU)和内存(也称为主存)等硬件。操作系统层的操作系统可以是任意一种或多种通过进程(process)实现业务处理的计算机操作系统,例如,Linux操作系统、Unix操作系统、Android操作系统、iOS操作系统或windows操作系统等。应用层可以包含浏览器、通讯录、文字处理软件、即时通信软件等应用。
可以理解的是,本申请的实施例中的处理器可以是中央处理单元(centralprocessing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable rom,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。
Claims (21)
1.一种控制方法,其特征在于,应用于模拟器,所述模拟器用于在电子设备上安装,所述电子设备具有第一操作系统,所述模拟器中包括第二操作系统,所述方法包括:
响应于接收到的电子设备上第一客户端发送的第一消息,判断第一存储路径与第二存储路径是否相同,其中,所述第一消息用于指示安装第一应用程序,所述第一存储路径为所述第一应用程序的安装包的存储路径;
在所述第一存储路径与所述第二存储路径不同时,基于所述第一存储路径,构建第一虚拟设备;
向所述第二操作系统发送第二消息,所述第二消息用于指示所述第二操作系统挂载至所述第一虚拟设备。
2.根据权利要求1所述的方法,其特征在于,所述第二消息还用于指示所述第二操作系统安装所述第一应用程序。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于接收到的所述第二操作系统发送的第三消息,向所述第二操作系统发送第四消息,所述第三消息用于表示挂载成功,所述第四消息用于指示所述第二操作系统安装所述第一应用程序。
4.根据权利要求1-3任一所述的方法,其特征在于,所述第一消息中包括以下一项或多项:
所述第一应用程序的名称,所述第一存储路径,或,所述第二存储路径是否被修改的信息。
5.根据权利要求1-4任一所述的方法,其特征在于,所述第二消息中包括挂载方式和挂载参数。
6.根据权利要求5所述的方法,其特征在于,所述挂载方式包括直接挂载或先卸载再挂载。
7.根据权利要求5或6所述的方法,其特征在于,所述挂载参数包括以下一项所述多项:
所述第一虚拟设备的名称,挂载至所述第二操作系统中的目录,或,指定的文件系统的类型。
8.根据权利要求1-7任一所述的方法,其特征在于,在基于所述第一存储路径,构建第一虚拟设备之前,所述方法还包括:
销毁第二虚拟设备,所述第二虚拟设备基于所述第二存储路径构建。
9.根据权利要求1-8任一所述的方法,其特征在于,所述第一客户端为具备应用提供功能的客户端,或者,所述第一客户端为具备应用迁移功能的客户端。
10.根据权利要求1-9任一所述的方法,其特征在于,所述第一操作系统为Windows操作系统,所述第二操作系统为安卓操作系统,所述第一应用程序为安卓应用程序。
11.根据权利要求1-10任一所述的方法,其特征在于,所述第一虚拟设备用于供所述第二操作系统访问所述第一存储路径。
12.根据权利要求1-11任一所述的方法,其特征在于,所述第二存储路径为第二应用程序的存储路径,所述第二应用程序为前次安装的应用程序。
13.一种控制方法,其特征在于,应用于电子设备,所述电子设备具有第一操作系统,所述电子设备上安装有模拟器,所述模拟器中包括第二操作系统,所述方法包括:
响应于用户在所述电子设备上的第一客户端上对第一应用程序的安装操作,判断第一存储路径与第二存储路径是否相同,所述第一存储路径为所述第一应用程序的安装包的存储路径;
在所述第一存储路径与所述第二存储路径不同时,基于所述第一存储路径,构建第一虚拟设备,以及将所述第二操作系统挂载至所述第一虚拟设备;
安装所述第一应用程序,以及显示所述第一应用程序。
14.根据权利要求13所述的方法,其特征在于,所述第一客户端为具备应用提供功能的客户端,或者,所述第一客户端为具备应用迁移功能的客户端。
15.根据权利要求13或14所述的方法,其特征在于,所述第一操作系统为Windows操作系统,所述第二操作系统为安卓操作系统,所述第一应用程序为安卓应用程序。
16.根据权利要求13-15任一所述的方法,其特征在于,所述第一虚拟设备用于供所述第二操作系统访问所述第一存储路径。
17.根据权利要求13-16任一所述的方法,其特征在于,在基于所述第一存储路径,构建第一虚拟设备之前,所述方法还包括:
销毁第二虚拟设备,所述第二虚拟设备基于所述第二存储路径构建。
18.根据权利要求13-17任一所述的方法,其特征在于,所述第二存储路径为第二应用程序的存储路径,所述第二应用程序为前次安装的应用程序。
19.一种电子设备,其特征在于,包括处理器,所述处理器与存储器耦合,所述处理器用于执行所述存储器中存储的计算机程序或指令,以使得所述电子设备实现如权利要求1-18中任一所述的方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1-18中任一所述的方法。
21.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,当所述计算机程序被计算机执行时,使得所述计算机实现如权利要求1-18中任一所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110729247.7A CN115543526A (zh) | 2021-06-29 | 2021-06-29 | 一种控制方法及电子设备 |
EP22831313.6A EP4350516A1 (en) | 2021-06-29 | 2022-04-01 | Control method and electronic device |
PCT/CN2022/084893 WO2023273482A1 (zh) | 2021-06-29 | 2022-04-01 | 一种控制方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110729247.7A CN115543526A (zh) | 2021-06-29 | 2021-06-29 | 一种控制方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115543526A true CN115543526A (zh) | 2022-12-30 |
Family
ID=84691174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110729247.7A Pending CN115543526A (zh) | 2021-06-29 | 2021-06-29 | 一种控制方法及电子设备 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4350516A1 (zh) |
CN (1) | CN115543526A (zh) |
WO (1) | WO2023273482A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8364638B2 (en) * | 2005-09-15 | 2013-01-29 | Ca, Inc. | Automated filer technique for use in virtualized appliances and applications |
CN102968331B (zh) * | 2012-11-27 | 2016-08-10 | 中标软件有限公司 | 一种虚拟机管理系统及其文件访问方法 |
CN105700923A (zh) * | 2016-01-08 | 2016-06-22 | 深圳市创想天空科技股份有限公司 | 安装应用程序的方法及系统 |
CN106844066B (zh) * | 2017-01-22 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 一种应用运行方法、装置及系统 |
CN108847972A (zh) * | 2018-06-08 | 2018-11-20 | 山东超越数控电子股份有限公司 | 一种虚拟环境下提高网络数据传输速率的方法 |
CN109977093A (zh) * | 2019-04-04 | 2019-07-05 | 中科创达(重庆)汽车科技有限公司 | 基于lxc的多虚拟系统查看容器日志的方法及装置 |
-
2021
- 2021-06-29 CN CN202110729247.7A patent/CN115543526A/zh active Pending
-
2022
- 2022-04-01 EP EP22831313.6A patent/EP4350516A1/en active Pending
- 2022-04-01 WO PCT/CN2022/084893 patent/WO2023273482A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
EP4350516A1 (en) | 2024-04-10 |
WO2023273482A1 (zh) | 2023-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106598655B (zh) | 应用程序页面处理方法和装置 | |
CN107992308B (zh) | 一种安卓终端应用程序的插件化管理方法 | |
CN110032413B (zh) | 一种桌面虚拟化方法、相关设备及计算机存储介质 | |
KR20150047453A (ko) | 소프트웨어 애플리케이션들의 크로스-플랫폼 개발을 위한 환경 및 방법 | |
CN111124440A (zh) | 芯片软件烧录方法、芯片软件烧录数据处理方法和装置 | |
CN110780930B (zh) | 启动Android系统的方法、装置、电子设备及存储介质 | |
CN108135026B (zh) | Wi-Fi连接方法、计算机设备及存储介质 | |
CN105308559A (zh) | 动态配置对于动作统一资源标识符的用户体验 | |
US10127050B2 (en) | Efficient booting system | |
US10908948B2 (en) | Multiple application instances in operating systems that utilize a single process for application execution | |
CN112162795A (zh) | 一种插件启动方法、装置、计算机设备和存储介质 | |
CN114691300A (zh) | 一种虚拟机实例的热迁移方法 | |
CN113709243B (zh) | 设备远程控制方法及装置、电子设备和存储介质 | |
CN112948018B (zh) | 用于小程序的动态库加载方法、装置、设备及介质 | |
US20180341426A1 (en) | Method and device for clearing data and electronic device | |
WO2023174127A1 (zh) | 基于云的fpga管理控制系统、方法及电子设备 | |
CN115543526A (zh) | 一种控制方法及电子设备 | |
KR102124330B1 (ko) | 어플리케이션 업데이트 방법 및 이를 지원하는 단말 | |
WO2022228236A1 (zh) | 控制安卓app的方法、装置及终端设备 | |
CN115185745A (zh) | 数据处理方法、系统、电子设备及计算机可读存储介质 | |
CN111399926A (zh) | 下载启动程序的方法和装置 | |
CN113010179B (zh) | 基于实时操作系统的独立应用的运行方法 | |
CN111382076B (zh) | 应用程序的测试方法、装置、电子设备及计算机存储介质 | |
CN116685946A (zh) | 在不停止应用的执行的情况下的更新的共享库的重新加载 | |
CN110327626B (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 |