WO2023051357A1 - 一种虚拟设备运行方法 - Google Patents

一种虚拟设备运行方法 Download PDF

Info

Publication number
WO2023051357A1
WO2023051357A1 PCT/CN2022/120273 CN2022120273W WO2023051357A1 WO 2023051357 A1 WO2023051357 A1 WO 2023051357A1 CN 2022120273 W CN2022120273 W CN 2022120273W WO 2023051357 A1 WO2023051357 A1 WO 2023051357A1
Authority
WO
WIPO (PCT)
Prior art keywords
electronic device
file
image file
api
user
Prior art date
Application number
PCT/CN2022/120273
Other languages
English (en)
French (fr)
Inventor
任文杰
尹永宏
金波
陈磊
张宜成
李英伟
毛翠红
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2023051357A1 publication Critical patent/WO2023051357A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Abstract

本申请提供了一种虚拟设备运行方法,方法包括第一电子设备收用户操作选择需要模拟的第二电子设备,第一电子设备获取并运行第二电子设备的API集合或第二电子设备的镜像文件相对于第一电子设备的镜像文件的块差分文件。这样,可以实现第一电子设备模拟第二电子设备的功能特性。这样,用户可以在不用购买不同类型电子设备,就可以体验其他类型电子设备功能特性,节省了用户成本。

Description

一种虚拟设备运行方法
本申请要求于2021年09月28日提交中国专利局、申请号为202111144956.5、申请名称为“一种虚拟设备运行方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及虚拟机技术领域,尤其涉及一种虚拟设备运行方法。
背景技术
目前,当用户想体验不同类型的设备的不同功能特性时,用户需分别购买不同的类型的设备后,才能体验不同类型的设备的不同功能特性。这样,无疑增加了用户成本。
发明内容
本申请提供了一种虚拟设备运行方法,实现了用户可以通过一个电子设备模拟出其他不同设备电子设备。这样,用户可以在不用购买不同类型电子设备,就可以体验其他类型电子设备功能特性,节省了用户成本。
第一方面,本申请提供了虚拟设备运行方法,方法包括:第一电子设备显示第一用户界面,所述第一用户界面包括一个或多个设备的选项,所述一个或多个设备的选项包括第二电子设备对应的第一选项;所述第一电子设备接收用户针对所述第一选项的第一操作;所述第一电子设备获取到所述第二电子设备的应用程序编程接口API集合、所述第二电子设备的镜像文件和第一块差分文件中的任意一种,其中,所述第一块差分文件为所述第二电子设备的系统镜像文件相对于所述第一电子设备的系统镜像文件的块差分文件;所述第一电子设备运行所述第二电子设备的API集合、所述第二电子设备的镜像文件和所述第一块差分文件的任意一种,其中,在所述第一电子设备运行所述第二电子设备的API集合、所述第二电子设备的镜像文件和所述第一块差分文件的任意一种后,所述第一电子设备的设备标识由第一设备标识修改为所述第二电子设备的设备标识。
其中,第一电子设备可以是高等级设备,第二电子设备可以是高等级设备,也可以是低等级设备。
通过第一方面提供的方法,实现了用户可以通过一个电子设备模拟出其他不同设备电子设备。这样,用户可以在不用购买不同类型电子设备,就可以体验其他类型电子设备功能特性,节省了用户成本。
结合第一方面,在一种可能的实现方式中,所述第一电子设备获取到所述第二电子设备的应用程序编程接口API集合或者第一块差分文件,具体包括:当所述第一电子设备的级别与所述第二电子设备的级别相同时,所述第一电子设备获取到所述第一块差分文件。这样,在高等级设备模拟高等级设备,或者低等级设备模拟低等级设备时,通过块差分文件文件的方法进行模拟,简单快捷。
结合第一方面,在一种可能的实现方式中,所述第一电子设备获取到所述第二电子设备 的应用程序编程接口API集合或者第一块差分文件,具体包括:当所述第一电子设备的级别高于所述第二电子设备的级别时,所述第一电子设备获取到所述第二电子设备的API集合。这样,在高等级设备模拟低等级设备时,通过API聚合的方法进行模拟,简单快捷。
结合第一方面,在一种可能的实现方式中,在高等级设备模拟高等级设备,或者低等级设备模拟低等级设备,或者高等级设备模拟低等级设备时,第一电子设备也可以通过获取第二电子设备的完整镜像文件,通过第二电子设备的完整镜像文件模拟第二电子设备。
结合第一方面,在一种可能的实现方式中,所述第一电子设备获取到所述第二电子设备的API集合,具体包括:所述第一电子设备从本地获取到所述第二电子设备的API集合;或者,所述第一电子设备将所述第二电子设备的设备标识发送至服务器;所述第一电子设备接收所述服务器发送的所述第二电子设备的API集合。这样,第一电子设备可以从本地获取到第二电子设备的API集合,也可以从服务器获取到第二电子设备的API集合。
结合第一方面,在一种可能的实现方式中,所述第一电子设备获取到所述第二电子设备的第一块差分文件,具体包括:所述第一电子设备将所述第二电子设备的设备标识发送至服务器;所述第一电子设备接收所述服务器发送的所述第一块差分文件。这样,第一电子设备可以从服务器获取到第二电子设备的第一块差分文件。
结合第一方面,在一种可能的实现方式中,在所述第一电子设备接收用户针对所述第一选项的第一操作之后,在所述第一电子设备获取到所述第一块差分文件之前,所述方法还包括:在所述第一电子设备接收用户的所述第一操作之后,所述第一电子设备显示第一窗口,所述第一窗口包括一个或多个应用的选项,所述一个或多个应用的选项包括第一应用对应的第二选项;所述第一电子设备接收用户针对所述第二选项的第二操作;所述第一电子设备获取到所述第一块差分文件,具体包括:响应于所述第二操作,所述第一电子设备发送所述第二电子设备的设备标识和所述第一应用的标识发送至所述服务器;所述第一电子设备接收所述服务器发送的所述第一块差分文件,其中,所述块差分文件包括所述第二电子设备上所述第一应用的镜像文件相对于所述第一电子设备上所述第一应用的镜像文件的块差分文件。这样,用户可以选择模拟第二电子设备中的具体某一个或多个应用程序。
结合第一方面,在一种可能的实现方式中,在所述第一电子设备显示第一用户界面之前,所述方法还包括:所述第一电子设备基于所述第一电子设备的硬件单元和软件信息,确定出所述第一电子设备支持模拟的所述一个或多个设备;所述第一电子设备将所述一个或多个设备的选项显示在所述第一用户界面上。这样,第一电子设备可以预先确认出支持模拟的其他电子设备的类型。并显示在用户界面上。
结合第一方面,在一种可能的实现方式中,所述第一电子设备运行所述第二电子设备的API集合,具体包括:所述第一电子设备基于所述第二电子设备的API集合,生成所述第二电子设备的运行库;所述第一电子设备加载所述第二电子设备的运行库的运行环境;所述第一电子设备基于所述第二电子设备的运行库的运行环境运行所述第二电子设备的运行库。
结合第一方面,在一种可能的实现方式中,所述第一电子设备将模拟所述第二电子设备后的第一使用数据存储至本地;在所述第一电子设备与第三电子设备建立通信连接后,在所述第一电子设备识别到所述第三电子设备的设备标识与所述第二电子设备的设备标识相同的情况下,所述第一电子设备将所述第一使用数据发送至所述第三电子设备。这样,第一电子设备可以保存模拟第二电子设备时产生的运行数据,在用户购买真实的第二电子设备后,第一电子设备将模拟第二电子设备时产生的运行数据同步至第二电子设备上。
结合第一方面,在一种可能的实现方式中,在所述第一电子设备运行所述第二电子设备 的API集合或者所述第一块差分文件之后,所述方法还包括:所述第一电子设备显示第二用户界面,所述第二用户界面包括第一控件;所述第一电子设备接收用户针对所述第一控件的第三操作;响应于所述第三操作,所述第一电子设备运行所述第一电子设备的镜像文件或所述第一电子设备的API集合。这样,用户可以操作随时退出第一电子设备模拟的第二电子设备。
第二方面,本申请提供了一种虚拟设备运行装置,装置包括用于执行上述第一方面中的任一项所述的方法的单元。
第三方面,本申请提供了一种电子设备,为第一电子设备,第一电子设备包括:一个或多个处理器、一个或多个存储器;一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,一个或多个处理器调用所述计算机指令以使得第一电子设备执行上述第一方面中的任一项所述的方法。
第四方面,本申请提供了一种计算机可读存储介质,包括指令,其特征在于,当指令在第一电子设备上运行时,使得第一电子设备执行上述第一方面中的任一项所述的方法。
第五方面,本申请提供了一种计算机程序产品,其特征在于,当计算机程序产品在第一电子设备上运行时,使得第一电子设备执行上述第一方面中的任一项所述的方法。
可以理解地,上述第二方面提供的装置、第三方面提供的第一电子设备、第四方面提供的计算机可读存储介质和第五方面提供的计算机程序产品均用于执行本申请实施例所提供的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种电子设备100结构示意图;
图2为本申请实施例提供的一种电子设备100软件结构框图;
图3为本申请实施例提供的一种系统架构图;
图4为本申请实施例提供的一种高等级设备模拟低等级设备或者同等级设备(例如高等级设备)模块示意图;
图5A-图5B为本申请实施例提供的一组UI图;
图6A为本申请实施例提供的一种电子设备100接收服务器500发送需模拟设备API集合示意图;
图6B为本申请实施例提供的一种电子设备100从本地获取模拟设备API集合示意图;
图7为本申请实施例提供的一种电子设备100生成模拟设备运行库具体实现示意图;
图8为本申请实施例提供的一种电子设备100得到镜像文件块差分文件示意图;
图9为本申请实施例提供的一种电子设备100得到模拟设备与电子设备100镜像文件差异loop文件原理示意图;
图10A-图10C本申请实施例提供的一种服务器500计算模拟设备镜像文件相对于电子设备100镜像文件差异loop文件的具体实现;
图11为本申请实施例提供的一种电子设备100通过API聚合方式模拟电子设备200流 程示意图;
图12A为本申请实施例提供的一种电子设备100确定出电子设备100支持模拟设备类型标识流程示意图;
图12B为本申请实施例提供的一种示例性示出了电子设备100模拟电子设备200前后的系统软件加购的变化示意图;
图13为本申请实施例提供的一种电子设备100通过API聚合方式模拟电子设备300的流程示意图;
图13A-图13B为本申请实施例提供的一组模拟特定的应用的UI图;
图14为本申请实施例提供的一种电子设备100同步使用数据的示意图;
图15为本申请实施例提供的一种电子设备100模拟电子设备200或电子设备300后的用户界面1500。
具体实施方式
下面将结合附图对本申请实施例中技术方案进行清楚、详尽地描述。其中,在本申请实施例描述中,除非另有说明,“/”表示或意思,例如,A/B可以表示A或B;文本中“和/或”仅仅是一种描述关联对象关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目,而不能理解为暗示或暗示相对重要性或者隐含指明所指示技术特征数量。由此,限定有“第一”、“第二”特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例描述中,除非另有说明,“多个”含义是两个或两个以上。
本申请以下实施例中术语“用户界面(user interface,UI)”,是应用程序或操作系统与用户之间进行交互和信息交换介质接口,它实现信息内部形式与用户可以接受形式之间转换。用户界面是通过java、可扩展标记语言(extensible markup language,XML)等特定计算机语言编写源代码,界面源代码在电子设备上经过解析,渲染,最终呈现为用户可以识别内容。用户界面常用表现形式是图形用户界面(graphic user interface,GUI),是指采用图形方式显示与计算机操作相关用户界面。它可以是在电子设备显示屏中显示文本、图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视界面元素。
首先对申请实施例涉及到技术术语进行解释。
1、应用程序编程接口(Application Programming Interface,API)
API是一些预先定义函数。操作系统除了协调应用程序执行、内存分配、系统资源管理外,同时也是一个很大服务中心,调用这个服务中心各种服务(每一种服务是一个函数),可以帮助应用程序达到开启视窗、描绘图形、使用周边设备目。应用程序接口为:“‘电脑操作系统(Operating system)’或‘程序库’提供给应用程序调用使用代码”。其主要目是让应用程序开发人员得以调用一组例程功能,而无须考虑其底层源代码为何、或理解其内部工作机制细节。API本身是抽象,它仅定义了一个接口,而不涉及应用程序在实际实现过程中具体操作。
开发人员可以基于API实现特定功能,目是用来提供应用程序与开发人员基于某软件或者某硬件得以访问一组例程能力,并且无需访问源码或无需理解内部工作机制细节。可以理 解为,API就是操作系统给应用程序调用接口,应用程序通过调用操作系统API,而使操作系统去执行应用程序命令(动作)。在Windows中,系统API是以函数调用方式提供。可以把API理解为是特定功能一种封装,将功能封装起来提供给其他开发人员调用,这样一来很多功能不需要重新开发。
可以认为API是包含在软件开发工具(software development kit,SDK)中。SDK是一系列文件组合,包括lib、dll、.h、文档、示例等;API是对程序而言,提供用户编程时接口,即一系列模块化类和函数。通俗讲API就是接口,就是通道,负责一个程序和其他软件沟通。
SDK可以理解为辅助开发APP(Application,移动应用软件)相关文档、范例和工具集合。在安卓平台上,APP开发者为了提高开发效率、降低成本,可以将某项功能交给第三方来开发,第三方服务提供商将服务封装为工具包(即SDK)供APP开发者使用,目前,常见SDK类型包括第三方登录分享类、支付类、推送类、广告类和数据统计分析类。
举个例子,我们想要知道一周天气如何,如果由自己来实现这个功能很难,因为天气数据只有气象部门才知道。那该如何知道天气信息呢?气象部分提供数据API给我们使用,我们只要输入地区就会知道该地区一周天气情况,但我们并不需要了解这天气预报是如何实现。这就是API原理。
2、镜像文件
镜像文件是一种与rar或zip压缩文件类似文件,将特定一系列文件按照一定格式制作成单一文件,供用户下载使用,比如操作系统镜像、游戏镜像,镜像文件可以被特定软件识别并刻录到光盘上。
操作系统镜像文件包含操作系统文件、引导文件、分区表信息等,用于系统安装和修复,系统镜像文件可以理解成是对整个系统安装光盘所有数据克隆文件,比如微软原版系统,也可以是操作系统分区备份文件,比如ghost系统镜像,一般镜像文件后缀名大多为.iso。
镜像文件可以解释就是镜子里影像。用在计算机上就是指一模一样两个网站或文件等等。使用镜像无法是这样目:为保证单一数据源/系统损坏而做成镜像,互为备份;同样数据或文件放置在不同地点,便于不同来源客户(机)访问(如镜像网站)。
镜像文件是无法直接使用,需要利用一些虚拟光驱工具进行解压后才能使用。虚拟光驱原理跟物理光驱一样,比如说你买了一张正版碟,那么把游戏碟加入物理光驱你就能顺利进行游戏,而虚拟光驱中需要加入是镜像文件(iso文件,相当于游戏光盘),当你装载完虚拟光驱以后,你电脑里面多了一个光驱,那就是虚拟光驱。在桌面上双击虚拟光驱快捷方式,发现桌面右下角多了一个图标,通过右击图标可以进行操作,接着载入镜像文件,以便完成游戏安装,如果安装完以后那么就可以再载入它要求镜像进入游戏。
常见系统镜像文件格式有以下几种:标准iso镜像文件*.iso、已压缩iso镜像*.isz、高压缩系统半加密文件*.esd、Windows基于文件映像*.wim、Ghost系统备份文件*.gho、苹果mac系统压缩镜像文件*.dmg。
目前,虚拟化技术只要有两种,一种是硬件虚拟化技术,另一种是软件虚拟化技术。
其中,硬件虚拟化技术是一种对计算机或操作系统虚拟。硬件虚拟化技术实质上对用户隐藏了真实计算机硬件,表现出另一个抽象计算平台。具体,硬件虚拟化技术实现了虚拟资源到物理资源映射,虚拟机访问系统资源时,虚拟机接管请求,将处理结果返回给虚拟机系统,实现硬件虚拟。
软件虚拟化技术是使用软件模拟硬件方式来实现硬件仿真。
例如,有一台打印机,该打印机与一台电脑建立连接。只有该电脑可以使用该印机。为了让不同电脑都可以使用该打印机,可以在该电脑上配置共享打印功能,这就是软件虚拟化。之后,该打印机可以生成网络接口,直接就可以面对不同电脑同时服务不同电脑,这就是硬件虚拟化。
但是,目前虚拟化技术无法实现设备与设备之间模拟,若用户想体验多个不同设备功能特性时,用户需要分别购买个不同设备后,在分别体验多个不同设备功能特性。这样,无疑增加了用户成本。
因此,本申请实施例提供了一种虚拟设备运行方法,方法包括以下步骤:
步骤一:电子设备100(第一电子设备)接收用户操作选择需要模拟的设备(第二电子设备),其中,电子设备100标识为标识一,模拟的设备标识为标识二,标识一与标识二不同。
步骤二:在一种可能实现方式中,电子设备100获取到模拟的设备需要API集合,并运行模拟的设备需要API集合。在其他可能实现方式中,电子设备100获取或者模拟的设备需要块差分文件,并运行模拟的设备需要的块差分文件(第一块差分文件)。在其他可能实现方式中,电子设备100获取或者模拟的设备的镜像文件,并运行模拟的设备的镜像文件。
步骤三:电子设备400与电子设备100进行通信,电子设备400识别到电子设备100的类型标识为标识二。电子设备100的类型标识也可以称为电子设备100的设备标识。
在以下实施例中,第一电子设备可以是电子设备100,第二电子设备可以是电子设备200或者电子设备300。
通过本申请实施例提供一种虚拟设备运行方法,实现了用户可以通过一个电子设备模拟出其他不同设备电子设备。这样,用户可以在不用购买不同类型电子设备,就可以体验其他类型电子设备功能特性,节省了用户成本。
图1示出了电子设备100结构示意图。
电子设备100可以是大屏、手机、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)设备、可穿戴式设备、车载设备、智能家居设备和/或智慧城市设备等,本申请实施例对该电子设备具体类型不作特殊限制。
电子设备可以是搭载iOS、Android、Microsoft或者其它操作系统便携式终端设备,例如手机、平板电脑、可穿戴设备等,还可以是具有触敏表面或触控面板膝上型计算机(Laptop)、具有触敏表面或触控面板台式计算机等非便携式终端设备。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器 180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解是,本发明实施例示意结构并不构成对电子设备100具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少部件,或者组合某些部件,或者拆分某些部件,或者不同部件布置。图示部件可以以硬件,软件或软件和硬件组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同处理单元可以是独立器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110等待时间,因而提高了系统效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuit sound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purpose input/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现电子设备100触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM总线接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐功能。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(display serial interface, DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现电子设备100拍摄功能。处理器110和显示屏194通过DSI接口通信,实现电子设备100显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解是,本发明实施例示意各模块间接口连接关系,只是示意性说明,并不构成对电子设备100结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同接口连接方式,或多种接口连接方式组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电实施例中,充电管理模块140可以通过USB接口130接收有线充电器充电输入。在一些无线充电实施例中,充电管理模块140可以通过电子设备100无线充电线圈接收无线充电输入。充电管理模块140为电池142充电同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中每个天线可用于覆盖单个或多个通信频带。不同天线还可以复用,以提高天线利用率。例如:可以将天线1复用为无线局域网分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上包括2G/3G/4G/5G等无线通信解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150至少部分功能模块可以与处理器110至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送低频基带信号调制成中高频信号。解调器用于将接收电磁波信号解调为低频基带信号。随后解调器将解调得到低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立器件。在另 一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上包括无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信解决方案。无线通信模块160可以是集成至少一个通信处理模块一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号解调以及滤波处理,将处理后信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code division multiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidou navigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见图像。ISP还可以对图像噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准RGB,YUV等格式图像信号。在一些实施例中,电 子设备100可以包括1个或N个摄像头193,N为大于1正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断自学习。通过NPU可以实现电子设备100智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
内部存储器121可以包括一个或多个随机存取存储器(random access memory,RAM)和一个或多个非易失性存储器(non-volatile memory,NVM)。
随机存取存储器可以包括静态随机存储器(static random-access memory,SRAM)、动态随机存储器(dynamic random access memory,DRAM)、同步动态随机存储器(synchronous dynamic random access memory,SDRAM)、双倍资料率同步动态随机存取存储器(double data rate synchronous dynamic random access memory,DDR SDRAM,例如第五代DDR SDRAM一般称为DDR5SDRAM)等;非易失性存储器可以包括磁盘存储器件、快闪存储器(flash memory)。
快闪存储器按照运作原理划分可以包括NOR FLASH、NAND FLASH、3D NAND FLASH等,按照存储单元电位阶数划分可以包括单阶存储单元(single-level cell,SLC)、多阶存储单元(multi-level cell,MLC)、三阶储存单元(triple-level cell,TLC)、四阶储存单元(quad-level cell,QLC)等,按照存储规范划分可以包括通用闪存存储(英文:universal flash storage,UFS)、嵌入式多媒体存储卡(embedded multi media Card,eMMC)等。
随机存取存储器可以由处理器110直接进行读写,可以用于存储操作系统或其他正在运行中程序可执行程序(例如机器指令),还可以用于存储用户及应用程序数据等。
非易失性存储器也可以存储可执行程序和存储用户及应用程序数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。
外部存储器接口120可以用于连接外部非易失性存储器,实现扩展电子设备100存储能力。外部非易失性存储器通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部非易失性存储器中。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。 电子设备100可以设置至少一个麦克风170C。在另一些实施例中,电子设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料平行板。当有力作用于压力传感器180A,电极之间电容改变。电子设备100根据电容变化确定压力强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180A检测所述触摸操作强度。电子设备100也可以根据压力传感器180A检测信号计算触摸位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度触摸操作,可以对应不同操作指令。例如:当有触摸操作强度小于第一压力阈值触摸操作作用于短消息应用图标时,执行查看短消息指令。当有触摸操作强度大于或等于第一压力阈值触摸操作作用于短消息应用图标时,执行新建短消息指令。
陀螺仪传感器180B可以用于确定电子设备100运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备100围绕三个轴(即,x,y和z轴)角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性,当按下快门,陀螺仪传感器180B检测电子设备100抖动角度,根据角度计算出镜头模组需要补偿距离,让镜头通过反向运动抵消电子设备100抖动,实现防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。
气压传感器180C用于测量气压。在一些实施例中,电子设备100通过气压传感器180C测得气压值计算海拔高度,辅助定位和导航。
磁传感器180D包括霍尔传感器。电子设备100可以利用磁传感器180D检测翻盖皮套开合。在一些实施例中,当电子设备100是翻盖机时,电子设备100可以根据磁传感器180D检测翻盖开合。进而根据检测到皮套开合状态或翻盖开合状态,设置翻盖自动解锁等特性。
加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度大小。当电子设备100静止时可检测出重力大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器180F,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备100可以利用距离传感器180F测距以实现快速对焦。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体红外反射光。当检测到充分反射光时,可以确定电子设备100附近有物体。当检测到不充分反射光时,电子设备100可以确定电子设备100附近没有物体。电子设备100可以利用接近光传感器180G检测用户手持电子设备100贴近耳朵通话,以便自动熄灭屏幕达到省电目。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器180L用于感知环境光亮度。电子设备100可以根据感知环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器 180L还可以与接近光传感器180G配合,检测电子设备100是否在口袋里,以防误触。
指纹传感器180H用于采集指纹。电子设备100可以利用采集指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。在一些实施例中,电子设备100利用温度传感器180J检测温度,执行温度处理策略。例如,当温度传感器180J上报温度超过阈值,电子设备100执行降低位于温度传感器180J附近处理器性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,电子设备100对电池142加热,以避免低温导致电子设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备100对电池142输出电压执行升压,以避免低温导致异常关机。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近触摸操作。触摸传感器可以将检测到触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100表面,与显示屏194所处位置不同。
骨传导传感器180M可以获取振动信号。在一些实施例中,骨传导传感器180M可以获取人体声部振动骨块振动信号。骨传导传感器180M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180M也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于所述骨传导传感器180M获取声部振动骨块振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器180M获取血压跳动信号解析心率信息,实现心率检测功能。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100用户设置以及功能控制有关键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)触摸操作,可以对应不同振动反馈效果。作用于显示屏194不同区域触摸操作,马达191也可对应不同振动反馈效果。不同应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型SIM卡。SIM卡接口195也可以兼容外部存储卡。电子设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备100中,不能和电子设备100分离。
电子设备100软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构Android系统为例,示例性说明电子设备100软件结构。
图2是本发明实施例电子设备100软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层应用程序提供应用编程接口(application programming interface,API)和编程框架。应用程序框架层包括一些预先定义函数。
如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字控件,显示图片控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成。例如,包括短信通知图标显示界面,可以包括显示文字视图以及显示图片视图。
电话管理器用于提供电子设备100通信功能。例如通话状态管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏通知,例如后台运行应用程序通知,还可以是以对话窗口形式出现在屏幕上通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统调度和管理。
核心库包含两部分:一部分是java语言需要调用功能函数,另一部分是安卓核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层java文件执行为二进制文件。虚拟机用于执行对象生命周期管理,堆栈管理,线程管理,安全和异常管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层融合。
媒体库支持多种常用音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图绘图引擎。
内核层是硬件和软件之间层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
如图3所示,图3示例性示出了本申请实施例提供一种系统架构图。
第一级别设备级别高于第二等级设备,设备级别可以基于设备功能、设备硬件配套、设备软件配套、设备运行空间、设备运行系统、设备存储空间中一项或多项划分得到。
其中,设备功能包括但不仅限于作业管理、文件管理、存储管理、设备管理和进程管理。作业管理包括任务、界面管理、人机交互、图形界面、语音控制和虚拟现实等。文件管理又称为信息管理。存储管理实质是对存储空间管理,主要指对主存管理。设备管理实质是对硬件设备管理,其中包括对输入输出设备分配、启动、完成和回收。进程管理实质上是对处理机执行时间管理,即如何将CPU真正合理地分配给每个任务。
设备硬件配套包括但不仅限于CPU,内存,主板,硬盘,拓展卡(如显卡,声卡,网卡,加密卡,电视卡等),电源,散热器(例如cpu散热器,显卡散热器,机箱风扇等),机箱与其它(例如蜂鸣器,跳线),外设设备(比如显示器,音响,键盘,鼠标,触控板,摄像头,话筒,耳机,其它传感器(例如指纹)),手柄,打印机,扫描仪与绘图仪等。
设备软件配套包括但不仅限于操作系统、驱动程序、应用程序。
设备运行空间可以理解为设备上内存条,就是运行部分空间。
设备运行系统可以理解为操作系统,服务器和个人电脑(personal computer,PC)端操作系统有Linux系统、Windows系统和UNIX系统,手机端操作系统有Android系统、iOS系统、Windows Phone(简称WP)系统,嵌入式操作系统有Windows CE系统、PalmOS系统、eCos系统、uClinux系统等。
设备存储空间可以包括但不仅限于设备上硬盘存储空间、U盘存储空间、光盘存储空间等。
在其他实施例中,还可以按照其他方式将设备划分为不同级别,本申请实施例对此不做限定。
示例性第一级别设备包括但不仅限于手机、平板电脑、大屏设备、笔记本电脑等设备。在一些实施例中,第一级别设备也可以称为LX级别设备。第一级别设备也可以称为高等级设备。
第二级别设备包括但不仅限于上网本、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)设备、可穿戴式设备(例如智能手环、智能手表)、车载设备、智能音箱。在一些实施例中,第二级别设备也可以称为LY级别设备。第二级别设备也可以称为低等级设备。其中,LX级别设备界别大于LY级别设备级别。
在一些实施例中,还可以包括更多其他级别设备,例如设备级别还包括第三级别设备,第三级别设备包括但不仅限于智能家居设备(例如智能摄像头)。第三别设备也可以称为LZ级别设备。第三级别设备也可以称为低等级设备。其中,LX级别设备界别大于LZ级别设备。其中,LY级别设备界别大于LZ级别设备级别。
可以理解是,设备在出厂之前,生产厂商已经将设备级别划分好了,也就是说,设备标识与设备级别是一一对应,其它设备或者服务器也可以基于设备标识确定出设备级别。
在图3中,电子设备100、电子设备300为第一级别设备,电子设备200为第二级别设备。也就是说电子设备100和电子设备300为同一个等级跌设备,电子设备100、电子设备300设备级别大于电子设备200设备级别。
电子设备100可以通过API聚合方式或者加载镜像文件块差分文件方式模拟电子设备200。电子设备100也可以通过API聚合方式或者加载镜像文件块差分文件方式模拟电子设备200。也就是说,高等级设备可以通过API聚合方式或者加载镜像文件块差分文件方式模拟低 等级设备。高等级设备也可以通过API聚合方式或者加载镜像文件块差分文件方式模拟高等级设备,也就是同级设备之间模拟。
在其他实施例中,也可以实现低等级设备与低等级设备之间模拟。例如可穿戴设备模拟智能音箱。低等级设备与低等级设备之间模拟与高等级设备与高等级设备之间模拟原理类似,本申请实施例以高等级设备与高等级设备之间模拟为例进行说明。
如何根据API聚合方式或者加载镜像文件块差分文件方式进行设备模拟,将在后续实施例中详细介绍,本申请实施例在此不再赘述。
在其他实施例中,电子设备100也可以通过镜像文件替换的方式模拟电子设备200。也就是说,高等级设备可以通过镜像文件替换的方式模拟低等级设备。由于低等级设备的功能单一,结构简单,低等级设备运行需要的API集合较少,因此高等级设备通过高等级设备镜像文件替换的方式模拟低等级设备,也可以实现。具体的,电子设备100将电子设备200的设备的类型标识发送至服务器500,服务器500基于电子设备200的设备的类型标识获取到电子设备200的镜像文件,服务器500将电子设备200的镜像文件发送至电子设备100,电子设备100运行电子设备200的镜像文件。实现电子设备100模拟电子设备200。
或者,电子设备100也可以通过镜像文件替换的方式模拟电子设备300。也就是说,高等级设备可以通过镜像文件替换的方式模拟高等级设备。具体的,电子设备100将电子设备300的设备的类型标识发送至服务器500,服务器500基于电子设备300的设备的类型标识获取到电子设备2300的镜像文件,服务器500将电子设备300的镜像文件发送至电子设备100,电子设备100运行电子设备300的镜像文件。实现电子设备100模拟电子设备300。
如图4所示,图4示例性示出了高等级设备模拟低等级设备或者同等级设备(例如高等级设备)模块示意图。
在图4中,高等级设备为电子设备100,电子设备100可以是手机。电子设备100中硬件单元可以包括但不仅限于网卡、声卡、摄像头、蓝牙、显卡和内存。
电子设备100基于上述一个或多个硬件单元确定出可以模拟设备类型,例如智能音箱、智能摄像头、大屏设备等设备。
示例性,电子设备100基于硬件单元中网卡和摄像头可以模拟成低级设备(例如智能摄像头)。对于电子设备100如何模拟成低级设备(例如智能摄像头),可以参考后续图11实施例中相关描述,本申请实施例在此不再赘述。
电子设备100通过虚拟技术模拟成低级设备(例如智能摄像头)后,电子设备100可以实现实时监控功能,且电子设备100将修改电子设备100标识,例如电子设备100标识由标识一修改为标识二。之后,其他电子设备(例如电子设备400)可以连接至电子设备100,电子设备400识别到电子设备100标识为标识二,电子设备400可以通过电子设备100采集监控数据查看电子设备100监控区域情况。
或者,示例性,电子设备100基于硬件单元中显卡、网卡、声卡、内存和蓝牙可以模拟成高等级设备(例如大屏设备)。对于电子设备100如何模拟成高等级设备(例如大屏设备),可以参考后续图13实施例中相关描述,本申请实施例在此不再赘述。
电子设备100通过虚拟技术模拟成高等级设备(例如大屏设备)后,电子设备100可以实现实时播放音视频功能,且电子设备100将修改电子设备100标识,例如电子设备100标识由标识一修改为标识三。之后,其他电子设备(例如电子设备400)可以连接至电子设备 100,电子设备400识别到电子设备100标识为标识三,电子设备400可以将即将播放音视频投屏显示在电子设备100上。
接下来介绍API聚合实现设备模拟具体实现。
API聚合具体实现主要包括以下几个步骤:
步骤一:电子设备100确定出需要模拟设备。
具体,电子设备100接收用户操作确定出模拟设备类型标识。
示例性,如图5A所示,用户界面510示例性示出了多个应用程序图标,例如文件管理图标、电子邮件图标、音乐图标、智慧生活图标、运动健康图标、天气图标、相机图标、通讯录图标、电话图标和信息图标。图5A还示出了天气指示符、日历指示符和信号轻度指示符、电量指示符等。
如图5A所示,当电子设备100检测到在显示屏上向下滑动手势时,响应于该滑动手势,如图5B所示,电子设备100在用户界面510(第一用户界面)上显示窗口501。如图5B所示,窗口501中可以显示有Wi-Fi、蓝牙、手电筒、响铃、自动旋转、即时分享、飞行模式、移动数据、位置信息、截屏等开关控件,窗口501中还可以显示有设备名称,例如智能摄像头名称、大屏设备名称。电子设备100检测到作用于智能摄像头名称或者大屏设备名称用户操作后,电子设备100确定出要模拟设备为智能摄像头或者大屏设备等。智能摄像头名称或大屏设备名称均可以称为第一选项。
不限于在图5A所示主界面上,用户还可以在其他界面上输入向下滑动手势,触发电子设备100显示窗口501。
不限于图5A及图5B示出用户在窗口501中作用于设备名称用户操作,在本申请实施例中,选择需模拟设备用户操作还可以实现为其他形式,本申请实施例不作限制。
电子设备100还可以显示设置(settings)应用提供设置界面,该设置界面中可包括提供给用户用于选择需模拟设备控件,用户可通过在该控件上输入用户操作来选择需模拟设备。
说要说明是,图5B只是示例性示出了智能摄像头名称和大屏设备名称,若电子设备100还可以模拟其他类型设备(例如智能音箱)时,电子设备100可以将以模拟其他类型设备(例如智能音箱)名称显示在窗口501中。本申请实施例对于电子设备100可以模拟设备类型和数量不做限定。本申请以下实施例以电子设备100可以模拟智能摄像头和大屏设备为例进行说明。
示例性,若电子设备100接收用户操作点击了智能摄像头名称。响应于用户点击操作,电子设备100确定出用户选择模拟设备为智能摄像头。
步骤二、电子设备100获取到需模拟设备API集合。
电子设备100获取到需模拟设备API集合有以下几种实现方式。
方式一:电子设备100接收服务器500发送需模拟设备API集合。
如图6A所示,图6A示例性示出了一种电子设备100接收服务器500发送需模拟设备API集合示意图。
具体,在电子设备100确定出需模拟设备标识之后,电子设备100将需模拟设备标识发送至服务器500。
服务器500在接收到模拟设备标识后,服务器500基于模拟设备标识确定出模拟设备API集合。
需要说明是,服务器500中预先存储有一个或多个设备标识与API集合对应关系。
表1
Figure PCTCN2022120273-appb-000001
如表1所示,表1示例性示出了服务器500中预先存储几种设备标识与API集合对应关系。基于表1,服务器500可以基于设备标识查找到设备运行所需要API集合。
示例性,标识一为电子设备100标识,电子设备100运行起来需要用到API包括网卡API、声卡API、摄像头API、蓝牙API、显卡API和内存API。标识二为电子设备200标识,电子设备200运行起来需要用到API包括网卡API和摄像头API。标识三为电子设备300标识,电子设备300运行起来需要用到API包括显卡API、网卡API、声卡API、内存API、蓝牙API。
需要说明是,使得电子设备100运行起来网卡API和摄像头API中一种或几种,与使得电子设备200运行起来网卡API和摄像头API中一种或几种,可以相同,也可以不相同,本申请实施例对此不做限定。
同样,使得电子设备100运行起来显卡API、网卡API、声卡API、内存API和蓝牙API中一种或几种,与使得电子设备200运行起来显卡API、网卡API、声卡API、内存API、蓝牙API中一种或几种,可以相同,也可以不相同,本申请实施例对此不做限定。
服务器500基于电子设备100发送模拟设备标识,确认出模拟设备API集合,并获取到模拟设备API集合。
服务器500将模拟设备API集合发送至电子设备100。电子设备100接收服务器500发送模拟设备API集合。
通过方式一,电子设备100从服务器500中获取到模拟设备API集合,可以减少电子设备100存储表1所示信息占用内存。
方式二:电子设备100从本地获取到需模拟设备API集合。
如图6B所示,图6B示例性示出了一种电子设备100从本地获取模拟设备API集合示意图。
在一种可能实现方式中,在电子设备100获取到模拟设备标识后,电子设备100本地存储有一个或多个设备标识与API集合对应关系(例如表1)。电子设备100可以基于模拟设备标识匹配到模拟设备一个或多个API标识,若电子设备100本地API标识和功能与模拟设备一个或多个API标识和功能相同,那么电子设备100直接从本地获取到模拟设备API集合。
在另一种可能实现方式中,在电子设备100获取到模拟设备标识后,电子设备100将模拟设备标识发送至服务器500。服务器500在接收到模拟设备标识后,服务器500本地存储有一个或多个设备标识与API集合对应关系(例如表1)。服务器500可以基于模拟设备标识匹配到模拟设备一个或多个API标识。之后,服务器500将模拟设备一个或多个API标识发送至电子设备100。
电子设备100接收到服务器500发送一个或多个API标识后,若电子设备100本地API标识和功能与模拟设备一个或多个API标识和功能相同,那么电子设备100直接从本地获取 到模拟设备API集合。若电子设备100本地一部分API标识和功能与模拟设备一部分API标识和功能相同,那么电子设备100可以直接从本地获取到模拟设备该一部分API集合。若电子设备100本地另一部分API标识和/或功能与模拟设备另一部分API标识和/或功能不同,那么电子设备100将另一部分API标识发送至服务器500。服务器500接收到另一部分API标识后,服务器500基于另一部分API标识匹配到另一部分API集合。之后,服务器500将另一部分API集合发送至电子设备100。电子设备100接收到服务器500发送另一部分API集合之后,电子设备100获取到模拟设备全部API集合。
通过方式二,电子设备100从本地获取到需模拟设备API集合,这样,在电子设备100没有联网情况下,电子设备100不能和服务器500进行交互时,电子设备100仍然可以从本地获取到模拟设备API集合。
步骤三:电子设备100基于获取到需模拟设备API集合,生成模拟设备运行库,加载模拟设备运行库运行环境,电子设备100运行模拟设备运行库。
如图7,图7示例性示出了电子设备100生成模拟设备运行库具体实现示意图。
在图7中,在电子设备100获取到需模拟设备API集合后,例如,API集合包括API1、API2和API3。电子设备100还需获取到每一个API对应类对象。例如API1依赖类对象1,API2依赖类对象2和API3依赖类对象3。
若API对应类对象在电子设备100本地存储有,那么电子设备100可以从本地获取。若API对应类对象在电子设备100本地没有,那么电子设备100可以向服务器500发送类对象获取请求,服务器500在接收到对象获取请求后,将对应类对象发送至电子设备100,电子设备100接收服务器500发送类对象,电子设备100获取到电子设备100本地没有API对应类对象。
在电子设备100获取到模拟设备API集合和模拟设备API集合对应类对象后,电子设备100基于模拟设备API集合和模拟设备API集合对应类对象生成模拟设备运行库。
运行库可以理解为一个经过封装程序模块,对外提供接口,只要知道接口参数就可以自由使用。模拟设备运行库可以理解为模拟设备API集合和模拟设备API集合对应类对象封装。
运行库可以分为静态库(JAR文件)和动态库(so文件)。也就是说,电子设备100基于模拟设备API集合和模拟设备API集合对应类对象可以生成JAR文件,也可以生成so文件,本申请实施例对此不做限定。
在电子设备100生成模拟设备运行库之后,电子设备100需加载模拟设备运行库运行环境。加载虚拟设备运行环境包括加载软件运行环境和硬件运行环境。加载软件运行环境包括加载模拟设备运行库软件驱动。加载硬件运行环境包括加载模拟设备运行库硬件驱动。
在电子设备100加载模拟设备运行库运行软件驱动和硬件驱动后,电子设备100基于软件驱动和硬件驱动聚集为模拟设备内核模块,电子设备100基于模拟设备内核模块运行模拟设备运行库。这样,电子设备100可以基于模拟设备内核模块运行模拟设备运行库后,电子设备100将修改电子设备100标识,电子设备100标识由电子设备100标识修改为模拟设备标识。
接下来介绍基于镜像文件块差分文件实现设备模拟具体实现。
如图8所示,图8示例性示出了电子设备100得到镜像文件块差分文件示意图。
首先,电子设备100接收用户操作确定出模拟设备标识。对于电子设备100如何接收用户操作确定出模拟设备标识,可以参考前述图5A-图5B介绍实施例,本申请实施例在此不再赘述。
电子设备100确定出出模拟设备标识后,电子设备100将模拟设备标识和电子设备100标识发送至服务器500。
服务器500接收到模拟设备标识和电子设备100标识后,服务器500基于模拟设备标识获取到模拟设备镜像文件,服务器500基于电子设备100标识获取到电子设备100镜像文件。
需要说明是,服务器500中预先存储有一个或多个设备标识与镜像文件对应关系。
表2
设备标识 镜像文件
标识一(电子设备100标识) 电子设备100镜像文件
标识二(电子设备200标识) 电子设备200镜像文件
标识三(电子设备300标识) 电子设备300镜像文件
如表2所示,表2示例性示出了服务器500中预先存储几种设备标识与镜像文件对应关系。基于表1,服务器500可以基于设备标识查找到设备运行所需要镜像文件。
例性,标识一为电子设备100标识,电子设备100运行起来需要用到镜像文件包括电子设备100镜像文件。标识二为电子设备200标识,电子设备200运行起来需要用到镜像文件包括电子设备200镜像文件。标识三为电子设备300标识,电子设备300运行起来需要用到镜像文件包括电子设备300镜像文件。
之后,电子设备100基于模拟设备镜像文件和电子设备100镜像文件,确定出模拟设备镜像文件相对于电子设备100镜像文件差异loop文件。
如图9所示,图9示例性示出了电子设备100得到模拟设备与电子设备100镜像文件差异loop文件原理示意图。
在图9中,服务器500获取到电子设备100镜像文件和模拟设备镜像文件后,服务器500比较电子设备100镜像文件和模拟设备镜像文件差异。
如图9所示,服务器500确定出电子设备100镜像文件和模拟设备镜像文件不同之处为,电子设备100镜像文件中第一差异块文件,模拟设备镜像文件中第二差异块文件。
服务器500获取到模拟设备镜像文件相对于电子设备100镜像文件差异loop文件为第二差异块文件。
服务器500将模拟设备镜像文件相对于电子设备100镜像文件差异loop文件(即第二差异块文件)发送至电子设备100。
最后,电子设备100接收到模拟设备镜像文件相对于电子设备100镜像文件差异loop文件(即第二差异块文件)后,电子设备100将电子设备100镜像文件中第一差异块文件去除掉,并基于去除第一差异块文件电子设备100镜像文件和模拟设备镜像文件相对于电子设备100镜像文件差异loop文件(即第二差异块文件)合成新镜像文件,电子设备100合成新镜像文件即为模拟设备镜像文件。
电子设备100运行合成新镜像文件,电子设备100将修改电子设备100标识,电子设备100标识由电子设备100标识修改为模拟设备标识。
图10A-图10C示例性示出了服务器500计算模拟设备镜像文件相对于电子设备100镜像文件差异loop文件的具体实现。
如图10A所示,电子设备100镜像文件由应用程序层镜像文件、系统库镜像文件、应用程序架构层镜像文件和内核层镜像文件组成。模拟设备镜像文件也由应用程序层镜像文件、系统库镜像文件、应用程序架构层镜像文件和内核层镜像文件组成。
服务器500可以分别计算模拟设备相对于电子设备100应用程序层镜像文件块差分文件、模拟设备相对于电子设备100系统库镜像文件块差分文件、模拟设备相对于电子设备100应用程序架构层镜像文件块差分文件和模拟设备相对于电子设备100内核层镜像文件块差分文件。这样,服务器500得到了四部分块差分文件。分别是应用程序层块差分文件、应用程序框架层块差分文件、系统库块差分文件和内核层块差分文件。之后,服务器500分别将这四部分块差分文件发送至电子设备100。
可选,服务器500也可以将上述电子设备100与模拟设备任意两个或多个镜像文件求差,得到三部分或者两部分或者一部分块差分文件。
例如,电子设备100中应用程序层镜像文件、系统库镜像文件、应用程序架构层镜像文件和内核层镜像文件为一个整体镜像文件。模拟设备中应用程序层镜像文件、系统库镜像文件、应用程序架构层镜像文件和内核层镜像文件为一个整体镜像文件。那么服务器500可以基于电子设备100整体镜像文件和模拟设备整体镜像文件求差,得到一个块差分文件,服务器500将得到一个块差分文件发送至电子设备100。
又例如,电子设备100中应用程序层镜像文件、系统库镜像文件为一个整体镜像文件,应用程序架构层镜像文件为单独一个镜像文件,内核层镜像文件为单独一个镜像文件。模拟设备中应用程序层镜像文件、系统库镜像文件为一个整体镜像文件,应用程序架构层镜像文件为单独一个镜像文件,内核层镜像文件为单独一个镜像文件。那么服务器500可以基于上述电子设备100和模拟设备三个独立镜像文件求差,得到三个块差分文件,服务器500将得到三个块差分文件发送至电子设备100。
再例如,电子设备100中应用程序层镜像文件、系统库镜像文件和应用程序架构层镜像文件为一个整体,内核层镜像文件为单独一个镜像文件。模拟设备中应用程序层镜像文件、系统库镜像文件和应用程序架构层镜像文件为一个整体,内核层镜像文件为单独一个镜像文件。那么服务器500可以基于上述电子设备100和模拟设备两个独立镜像文件求差,得到两个块差分文件,一个块差分文件为集合了应用程序层、应用程序框架层和系统库块差分文件,另一个差分文件为内核层块差分文件,服务器500将得到两个块差分文件发送至电子设备100。
可选,在服务器500计算模拟设备应用程序层镜像文件相对于电子设备100应用程序层镜像文件差异loop文件时,服务器500可以只得到预设应用程序镜像文件差异loop文件。这样,可以减少服务器400计算量以及服务器500向电子设备100发送loop文件大小。
如图10C所示,预设应用程序可以为应用一,在服务器500计算模拟设备应用程序层镜像文件相对于电子设备100应用程序层镜像文件差异loop文件时,服务器500可以只计算模拟设备应用一镜像文件相对于电子设备100应用一镜像文件块差分文件,得到应用一块差分文件。而模拟设备其他应用程序镜像文件相对于电子设备100其他应用程序镜像文件差异,服务器500可以不计算,大大减少了服务器400计算量。
可选,服务器500得到应用一块差分文件,服务器500也可以只计算模拟设备应用一对应应用程序框架层中镜像文件,相对于电子设备100应用一对应应用程序框架层中镜像文件差异,而模拟设备其他应用对应应用程序框架层中镜像文件,相对于电子设备100其他应用对应应用程序框架层中镜像文件差异,服务器500可以不计算,大大减少了服务器400计算 量。
可选,服务器500可以计算模拟设备应用程序框架层中完整镜像文件相对于电子设备100应用程序框架层中完整镜像文件,得到应用程序框架层块差分文件。本申请实施例对此不做限定。
服务器500计算算模拟设备系统库镜像文件相对于电子设备100系统库镜像文件差异,得到系统库块差分文件。
服务器500计算算模拟设备内核层镜像文件相对于电子设备100内核层镜像文件差异,得到内核层块差分文件。
最后,服务器500将应用一块差分文件、应用程序框架层块差分文件、系统库块差分文件和内核层块差分文件发送至电子设备100。
前述介绍了高等级设备可以通过API聚合方式或者加载镜像文件块差分文件方式模拟低等级设备。例如高等级设备可以是电子设备诶100,低等级设备可以是电子设备200。也就是说,电子设备100可以通过API聚合方式或者加载镜像文件块差分文件方式模拟电子设备200。
优选,高等级设备模拟低等级设备时,优先采用API聚合方式模拟低等级设备。
原因在于,低等级设备一般是一些轻量级设备,由于高等级设备的功能、软件配套、运行空间、运行系统、存储空间等与低等级设备差异较大,若高等级设备通过者加载镜像文件块差分文件方式模拟低等级设备,高等级设备与低等级设备镜像文件差异较大,例如高等级设备镜像文件一般为3G-5G大小,低等级设备镜像文件一般为1M-200M大小,那么服务器500得到高等级设备镜像文件与低等级设备镜像文件块差分文件很多,且相当大,且相当一部分块差分文件是多余(即高等级设备模拟低等级设备时无需用到块差分文件),或者高等级设备与低等级设备代码不共用,那么高等级设备通过加载镜像文件块差分文件方式,就存在一定弊端。
而低等级设备功能单一,结构简单,低等级设备需要API集合不多,那么高等级设备通过API聚合方式模拟低等级设备,简单快捷。
本申请以下实施例以高等级设备如何通过API聚合方式模拟低等级设备,进行说明。
如图11所示,图11示例性示出了电子设备100通过API聚合方式模拟电子设备200流程示意图。
S1101、电子设备100接收用户操作,确定出模拟设备类型标识。
示例性,模拟设备可以是电子设备200,电子设备200为智能摄像头。
具体,可以参考图5A-图5B介绍电子设备100接收用户操作确定出模拟设备类型标识实施例,本申请实施例在此不再赘述。
示例性,模拟设备类型标识可以是“智能摄像头”。
在电子设备100接收用户操作,确定出模拟设备类型标识之前,电子设备100还需确定出电子设备100支持模拟设备类型标识。
如图12A所示,图12A示例性示出了电子设备100确定出电子设备100支持模拟设备类型标识流程示意图。
S1201、电子设备100获取到电子设备100硬件单元和软件信息,硬件单元包括但不仅限与相机单元、WiFi单元、蓝牙单元、显示屏单元、音频单元、摄像头单元、网卡单元等。
S1202、电子设备100基于硬件单元和软件信息确定出可以模拟的设备的类型标识。
这样,电子设备100可以基于需模拟的设备运行时所需的硬件单元和如那件信息,基于本地有的硬件单元和如那件信息,确定出电子设备100支持模拟设备类型标识。
模拟的设备的类型标识包括但不仅限于“智能摄像头”、“智能音箱”、“大屏设备”、“智能门锁”等。
当电子设备100中的硬件单元至少包括摄像头单元和网卡单元时,那么电子设备100可以模仿的设备的类型标识可以是“智能摄像头”。
当电子设备100中的硬件单元至少包括显示屏单元和网卡单元时,那么电子设备100可以模仿的设备的类型标识可以是“大屏设备”。
当电子设备100中的硬件单元至少包括WiFi单元时,那么电子设备100可以模仿的设备的类型标识可以是“路由器”。
当电子设备100中的硬件单元至少包括蓝牙单元和音频单元时,那么电子设备100可以模仿的设备的类型标识可以是“音箱”。
S1102、电子设备100将电子设备200的类型标识发送至服务器500。
S1103、服务器500在接收到电子设备200类型标识后,基于电子设备200类型标识确定出电子设备200的API集合。
服务器500如何基于电子设备200类型标识确定出电子设备200的API集合,可以参考图6A关联的步骤二中相关描述,本申请实施例在此不再赘述。
例如,电子设备200类型标识为“智能摄像头”,服务器500确定出电子设备200的API集合包括网卡API和摄像头API。
S1104、服务器500将电子设备200的API集合发送至电子设备100。
S1105、电子设备100在接收到电子设备200的API集合后,基于电子设备200的API集合生成电子设备200的运行库。
下面示出了电子设备100的API集合。
Class CameraA{
private int L5_Interface_Camera_1(int paraA)
}
Class ScreenB{
Public void L5_Interface_Screen_1(int paraB)
}
Class BluetoothC{
Public void L5_Interface_Bluetooth_1(int paraC)
}
Class WifiD{
Public void L5_Interface_Wifi_1(int paraD)
}
上述示出的电子设备100的API集合包括相机API、显示屏API、蓝牙API和WiFi-API。
下面示出了运行电子设备200所需要的API集合。
Class CameraA{
private int L5_Interface_Camera_1(int paraA)
}
Class BluetoothC{
Public void L5_Interface_Bluetooth_1(int paraC)
}
上述示出的电子设备100的API集合包括相机API和蓝牙API。从电子设备100的API集合和运行电子设备200所需要的API集合可以得出,在一种可能的实现方式中,电子设备100可以直接从本地获取到运行电子设备200所需要的API集合,不需要从服务器500获取到运行电子设备200所需要的API集合。
在其他实施例中,电子设备100可以从本地获取到运行电子设备200所需要的部分API集合,其他部分的API集合从服务器500中获取到。
电子设备100在接收到电子设备200的API集合后,基于电子设备200的API集合生成电子设备200的运行库。具体的,可以参考图7关联的步骤三介绍的实施例,本申请实施例在此不再赘述。
S1106、电子设备100创建电子设备200的运行库的运行环境。
加载运行环境包括加载软件运行环境和硬件运行环境。加载软件运行环境包括加载电子设备200的运行库软件驱动。加载硬件运行环境包括加载电子设备200的运行库硬件驱动。+
在电子设备100加载电子设备200的运行库的软件驱动和硬件驱动后,电子设备100基于软件驱动和硬件驱动聚集为电子设备200的内核模块,电子设备100基于电子设备200的内核模块运行电子设备200的运行库。
S1107、电子设备100基于电子设备200的运行库的运行环境运行电子设备200的运行库,将电子设备100的类型标识修改为电子设备200的类型标识。
电子设备100基于电子设备200的内核模块运行电子设备200的运行库。电子设备100将电子设备100的类型标识修改为电子设备200的类型标识。例如,电子设备100的类型标识为“Mate 40 Pro”。电子设备100将电子设备100的类型标识(例如“Mate 40 Pro”)修改为电子设备200的类型标识(例如“智能摄像头”)。
在其他电子设备,例如电子设备400与电子设备100进行数据传输时,电子设备400识别到电子设备100的类型标识为“智能摄像头”。
通过高等级设备模拟低等级设备,在用户不需要购买低等级设备的情况下,即可体验低等级设备的功能,节省用户的资金消耗,且能够实现尽可能以较少的设备体验到多种不同类型的设备的功能特性。当用户体验完低等级设备的功能后,用户对该低等级设备的功能比较喜欢,那么用户可以在选择购买低等级设备。
示例性的,用户可以通过电子设备100模拟电子设备200,即通过手机模拟智能摄像头,即当用户需要监控家庭里的情况时,家庭里没有智能摄像头,那么用户可以将多余的手机模拟智能摄像头,将该多余的手机放置在家庭里对应的位置实现监控的功能。
如图12B所示,图12B示例性示出了电子设备100模拟电子设备200前后的系统软件加购的变化示意图。
如图12B中的(a)所示,电子设备100的系统软件架构从下自上依次是内核层、系统库、应用程序框架层和应用程序层。其中,系统库包括开源的适配层(AOSP HAL)、华为的程序库(HUAWEI LIB)和鸿蒙的程序库(HMOS LIB)。应用程序框架层包括开源的应用程序框架层(AOSP FWK)和华为的应用程序框架层(HUAWEI FWK)。应用程序层包括安卓系统自带的APP和鸿蒙系统开发的APP(HMOS APP)。
在电子设备100模拟电子设备200之前,电子设备100基于上述软件架构可以实现电子设备100的功能。在电子设备100模拟电子设备200之后,图12B中的(a)所示的各个软件层模块暂时失效,电子设备100的软件系统架构将模拟电子设备200的软件系统架构。如图12B中的(b)所示,系统库包括电子设备100基于获取到电子设备200的API集合生成的电子设备200的运行库。应用程序框架层包括电子设备200的应用程序框架层。应用程序层包括电子设备200中的应用。
同时,电子设备100将修改电子设备100的标识,即电子设备100将标识修改为电子设备200的标识。在外部其他设备(第三电子设备)连接时电子设备100时,外部的其它设备识别到的电子设备100的标识为电子设备200的标识。
前述实施例介绍了高等级设备也可以通过API聚合方式或者加载镜像文件块差分文件方式模拟高等级设备,也就是同级设备之间模拟。例如电子设备100通过API聚合方式或者加载镜像文件块差分文件方式模拟电子设备300。
优选的,高等级设备模拟高等级设备时,优先采用加载镜像文件块差分文件方式模拟高等级设备。
原因在于,高等级设备的功能、软件配套、运行空间、运行系统、存储空间等与高等级设备类似,结构类似,镜像文件的差异小,且统计设备之间的代码差异小,可以共用,因此加载镜像文件块差分文件方式模拟高等级设备,简单快捷。若采用API聚合的方式模拟高等级设备,由于高等级设备的功能复杂,需要的API文件成千上百,效率低,消耗大。
本申请以下实施例以高等级设备如何通过加载镜像文件块差分文件方式模拟高等级设备,进行说明。
如图13所示,图13示例性示出了电子设备100通过API聚合方式模拟电子设备300的流程示意图。
S1301、电子设备100接收用户的操作,并确定出模拟的设备的类型标识。
示例性,模拟设备类型标识可以是“大屏设备”。
具体的,可以参考S1201中的相关描述,本申请实施例在此不再赘述。
在电子设备100接收用户操作,确定出模拟设备类型标识之前,电子设备100还需确定出电子设备100支持模拟设备类型标识。具体的,可以参考图12A中的相关描述,本申请实施例在此不再赘述。
可选的,在电子设备100接收用户操作选择了需模拟的设备设备之后电子设备100可以显示第一提示信息,该第一提示信息用于提示拥护选择模拟的应用程序的种类。
如图13A所示,电子设备100接收用户针对“大屏设备”的图标的输入操作,响应于用户的输入操作,电子设备100显示如图13B所示的提示栏1300(第一窗口)。提示栏1300用于提示拥护选择模拟的应用程序的种类。提示栏1300包括提示信息“请选择您需要虚拟运行的一个或多个应用程序”。提示栏1300还包括电子设备300中的一个或多个应用程序的选择控件。例如应用一的选择控件1301,应用二的选择控件1302,应用三的选择控件1303,默认控件1304和确认控件1306。
当用户向模拟电子设备300中的某一个应用程序时,电子设备100可以接收用户针对应用一的选择控件1301的输入操作,即用户选定应用一(第一应用),之后,电子设备100接收用户针对确认控件1305(第二选项)的输入操作,响应于用户的输入操作,电子设备100 确认出用户想模拟的是电子设备300中的应用一。
当用户向模拟电子设备300中的多个应用程序时,电子设备100可以接收用户针对默认控件1304的输入操作,即用户默认选定模拟电子设备300中的全部应用程序,之后,电子设备100接收用户针对确认控件1305的输入操作,响应于用户的输入操作,电子设备100确认出用户想模拟的是电子设备300中的全部应用程序。
S1302、电子设备100发送电子设备100的类型标识和电子设备200的类型标识至服务器500。
S1303、服务器500基于电子设备100的类型标识确定出电子设备100的镜像文件,基于电子设备200的类型标识确定出电子设备200的镜像文件。
服务器500如何基于电子设备100的类型标识确定出电子设备100的镜像文件,基于电子设备200的类型标识确定出电子设备200的镜像文件的,可以参考图8实施例中的相关描述,本申请实施例在此不再赘述。
可选的,当用户选择模拟电子设备300中的某一个应用(例如应用一)程序时,电子设备100向服务器500发送电子设备100的类型标识、电子设备200的类型标识和应用一的标识。
S1304、服务器500基于电子设备100的镜像文件和,电子设备200的镜像文件,确定出电子设备200的镜像文件相对于电子设备100的镜像文件的块差异文件。
具体的,对于服务器500如何得到块差分文件的方式,可以参考图9、图10A-图10B和图10C所示的实施例,本申请实施例在此不再赘述。
S1305、服务器500将得到的块差分文件发送至电子设备100。
S1306、电子设备100基于块差异文件和电子设备100的镜像文件合成电子设备200的镜像文件。
S1307、电子设备100运行电子设备200的镜像文件,将电子设备100的类型标识修改为电子设备200的类型标识。
电子设备100运行电子设备200的镜像文件。电子设备100将电子设备100的类型标识修改为电子设备200的类型标识。例如,电子设备100的类型标识为“Mate 40 Pro”。电子设备100将电子设备100的类型标识(例如“Mate 40 Pro”)修改为电子设备200的类型标识(例如“智能摄像头”)。
在其他电子设备,例如电子设备400与电子设备100进行数据传输时,电子设备400识别到电子设备100的类型标识为“智能摄像头”。
通过高等级设备模拟高等级设备,在用户不需要购买低等级设备的情况下,即可体验其他高等级设备的功能,节省用户的资金消耗,且能够实现尽可能以较少的设备体验到多种不同类型的设备的功能特性。
当用户体验完高等级设备的功能后,用户对该高等级设备的功能比较喜欢,那么用户可以在选择购买高等级设备。
示例性的,用户可以通过电子设备100模拟电子设备300,即通过手机模拟大屏设备,有些视频会员仅可以在大屏设备上的视频应用中使用,在用户没有购买大屏设备的情况下, 用户通过电子设备100通过虚拟技术模拟大屏设备,这样,用户可以在手机上模拟大屏设备并登陆视频会员,提高了用户体验。
可选的,电子设备200模拟电子设备300时,电子设备200可以将模拟电子设备300时产生的使用数据保存至本地。在用户购买电子设备300之后,电子设备200与电子设备300建立通信连接,当电子设备200识别到电子设备300后,电子设备200可以将模拟电子设备300时产生的使用数据同步至电子设备300。
或者,电子设备200模拟电子设备300时,电子设备200可以将模拟电子设备300时产生的使用数据同步在云端。在用户购买电子设备300后,云端将电子设备200模拟电子设备300时产生的使用数据同步至电子设备300。
图14示例性示出了电子设备100同步使用数据的示意图。
如图14中的(a)所示,电子设备200只是模拟电子设备300中的应用一,电子设备200将模拟电子设备300中的应用一时产生的使用数据保存至本地。
之后,如图14中的(b)所示,用户购买了电子设备300,且电子设备100与电子设备300建立了通信连接。电子设备100识别到电子设备300,那么电子设备100自动将模拟电子设备300中的应用一时产生的使用数据同步至电子设备300中。或者,电子设备在识别到电子设备300后,电子设备100输出提示信息,该提示信息用于提示用户是否需要将使用数据同步至电子设备300,在用户同意后,电子设备100将模拟电子设备300中的应用一时产生的使用数据同步至电子设备300中。
在电子设备100模拟电子设备200或者电子设备300之后,用户也可以主动退出模拟状态,恢复至正常模式。
上述用户主动退出模拟状态的方式可以是声控、按键或者用户在用户界面的操作等等。
示例性的,当用户想退出模拟模式时,用户可以输出语音“退出模拟模式”等,电子设备100基于语音识别结果退出模拟模式。
示例性的,当用户想退出模拟模式时,用户可以按压电子设备100旁边的按键,例如单击或者双击开/关机键、音量键等,电子设备100基于用户的按键操作退出模拟模式。
示例性的,如图15所示,图15示例性示出了电子设备100模拟电子设备200或电子设备300后的用户界面1500(第二用户界面)。用户界面1500上显示有控件1501(第一控件)。当用户想退出模拟模式时,电子设备100可以接收用户针对控件1501的输入操作,响应于用户的输入操作,电子设备100退出模拟模式。
本申请各实施方式可以任意进行组合,以实现不同技术效果。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所 述计算机可读存储介质可以是计算机能够存取任何可用介质或者是包含一个或多个可用介质集成服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例方法中全部或部分流程,该流程可以由计算机程序来指令相关硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例流程。而前述存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码介质。
总之,以上所述仅为本发明技术方案实施例而已,并非用于限定本发明保护范围。凡根据本发明揭露,所作任何修改、等同替换、改进等,均应包含在本发明保护范围之内。

Claims (13)

  1. 一种虚拟设备运行方法,其特征在于,所述方法包括:
    第一电子设备显示第一用户界面,所述第一用户界面包括一个或多个设备的选项,所述一个或多个设备的选项包括第二电子设备对应的第一选项;
    所述第一电子设备接收用户针对所述第一选项的第一操作;
    所述第一电子设备获取到所述第二电子设备的应用程序编程接口API集合、所述第二电子设备的镜像文件和第一块差分文件中的任意一种,其中,所述第一块差分文件为所述第二电子设备的系统镜像文件相对于所述第一电子设备的系统镜像文件的块差分文件;
    所述第一电子设备运行所述第二电子设备的API集合、所述第二电子设备的镜像文件和所述第一块差分文件的任意一种,其中,在所述第一电子设备运行所述第二电子设备的API集合、所述第二电子设备的镜像文件和所述第一块差分文件的任意一种后,所述第一电子设备的设备标识由第一设备标识修改为所述第二电子设备的设备标识。
  2. 根据权利要求1所述的方法,其特征在于,所述第一电子设备获取到所述第二电子设备的应用程序编程接口API集合或者第一块差分文件,具体包括:
    当所述第一电子设备的级别与所述第二电子设备的级别相同时,所述第一电子设备获取到所述第一块差分文件。
  3. 根据权利要求1或2所述的方法,其特征在于,所述第一电子设备获取到所述第二电子设备的应用程序编程接口API集合或者第一块差分文件,具体包括:
    当所述第一电子设备的级别高于所述第二电子设备的级别时,所述第一电子设备获取到所述第二电子设备的API集合。
  4. 根据权利要求3所述的方法,其特征在于,所述第一电子设备获取到所述第二电子设备的API集合,具体包括:
    所述第一电子设备从本地获取到所述第二电子设备的API集合;
    或者,
    所述第一电子设备将所述第二电子设备的设备标识发送至服务器;
    所述第一电子设备接收所述服务器发送的所述第二电子设备的API集合。
  5. 根据权利要求1所述的方法,其特征在于,所述第一电子设备获取到所述第二电子设备的第一块差分文件,具体包括:
    所述第一电子设备将所述第二电子设备的设备标识发送至服务器;
    所述第一电子设备接收所述服务器发送的所述第一块差分文件。
  6. 根据权利要求5所述的方法,在所述第一电子设备接收用户针对所述第一选项的第一操作之后,在所述第一电子设备获取到所述第一块差分文件之前,所述方法还包括:
    在所述第一电子设备接收用户的所述第一操作之后,所述第一电子设备显示第一窗口,所述第一窗口包括一个或多个应用的选项,所述一个或多个应用的选项包括第一应用对应的第二选项;
    所述第一电子设备接收用户针对所述第二选项的第二操作;
    所述第一电子设备获取到所述第一块差分文件,具体包括:
    响应于所述第二操作,所述第一电子设备发送所述第二电子设备的设备标识和所述第一应用的标识发送至所述服务器;
    所述第一电子设备接收所述服务器发送的所述第一块差分文件,其中,所述块差分文件包括所述第二电子设备上所述第一应用的镜像文件相对于所述第一电子设备上所述第一应用的镜像文件的块差分文件。
  7. 根据权利要求1-6任一项所述的方法,其特征在于,在所述第一电子设备显示第一用户界面之前,所述方法还包括:
    所述第一电子设备基于所述第一电子设备的硬件单元和软件信息,确定出所述第一电子设备支持模拟的所述一个或多个设备;
    所述第一电子设备将所述一个或多个设备的选项显示在所述第一用户界面上。
  8. 根据权利要求1-7中任一项所述的方法,其特征在于,所述第一电子设备运行所述第二电子设备的API集合,具体包括:
    所述第一电子设备基于所述第二电子设备的API集合,生成所述第二电子设备的运行库;
    所述第一电子设备加载所述第二电子设备的运行库的运行环境;
    所述第一电子设备基于所述第二电子设备的运行库的运行环境运行所述第二电子设备的运行库。
  9. 根据权利要求1-8中任一项所述的方法,其特征在于,所述方法还包括:
    所述第一电子设备将模拟所述第二电子设备后的第一使用数据存储至本地;
    在所述第一电子设备与第三电子设备建立通信连接后,在所述第一电子设备识别到所述第三电子设备的设备标识与所述第二电子设备的设备标识相同的情况下,所述第一电子设备将所述第一使用数据发送至所述第三电子设备。
  10. 根据权利要求1-9中任一项所述的方法,其特征在于,在所述第一电子设备运行所述第二电子设备的API集合或者所述第一块差分文件之后,所述方法还包括:
    所述第一电子设备显示第二用户界面,所述第二用户界面包括第一控件;
    所述第一电子设备接收用户针对所述第一控件的第三操作;
    响应于所述第三操作,所述第一电子设备运行所述第一电子设备的镜像文件或所述第一电子设备的API集合。
  11. 一种电子设备,为第一电子设备,其特征在于,所述第一电子设备包括:一个或多个处理器、一个或多个存储器;所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述第一电子设备执行上述权利要求1-10中的任一项所述的方法。
  12. 一种计算机可读存储介质,包括指令,其特征在于,当所述指令在第一电子设备上运行时,使得所述第一电子设备执行如权利要求1至10任一项所述的方法。
  13. 一种计算机程序产品,其特征在于,当所述计算机程序产品在第一电子设备上运行时,使得所述第一电子设备执行如权利要求1至10任一项所述的方法。
PCT/CN2022/120273 2021-09-28 2022-09-21 一种虚拟设备运行方法 WO2023051357A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111144956.5 2021-09-28
CN202111144956.5A CN115878252A (zh) 2021-09-28 2021-09-28 一种虚拟设备运行方法

Publications (1)

Publication Number Publication Date
WO2023051357A1 true WO2023051357A1 (zh) 2023-04-06

Family

ID=85763614

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/120273 WO2023051357A1 (zh) 2021-09-28 2022-09-21 一种虚拟设备运行方法

Country Status (2)

Country Link
CN (1) CN115878252A (zh)
WO (1) WO2023051357A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101470621A (zh) * 2007-12-28 2009-07-01 埃森哲环球服务有限公司 虚拟机配置系统
CN102447723A (zh) * 2010-10-12 2012-05-09 运软网络科技(上海)有限公司 客户端虚拟化架构
CN111314646A (zh) * 2020-02-27 2020-06-19 Oppo(重庆)智能科技有限公司 图像获取方法、图像获取装置、终端设备及可读存储介质
US20210049079A1 (en) * 2019-08-14 2021-02-18 Commvault Systems, Inc. Systems and methods for change block tracking

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101470621A (zh) * 2007-12-28 2009-07-01 埃森哲环球服务有限公司 虚拟机配置系统
CN102447723A (zh) * 2010-10-12 2012-05-09 运软网络科技(上海)有限公司 客户端虚拟化架构
US20210049079A1 (en) * 2019-08-14 2021-02-18 Commvault Systems, Inc. Systems and methods for change block tracking
CN111314646A (zh) * 2020-02-27 2020-06-19 Oppo(重庆)智能科技有限公司 图像获取方法、图像获取装置、终端设备及可读存储介质

Also Published As

Publication number Publication date
CN115878252A (zh) 2023-03-31

Similar Documents

Publication Publication Date Title
RU2766255C1 (ru) Способ голосового управления и электронное устройство
WO2020108356A1 (zh) 一种应用显示方法及电子设备
CN113553130B (zh) 应用执行绘制操作的方法及电子设备
CN113961157B (zh) 显示交互系统、显示方法及设备
WO2021051982A1 (zh) 调用硬件接口的方法及电子设备
WO2022253158A1 (zh) 一种用户隐私保护方法及装置
CN114371985A (zh) 自动化测试方法、电子设备及存储介质
WO2022111664A1 (zh) 打补丁的方法、相关设备及系统
WO2022206681A1 (zh) 一种窗口的显示方法以及相关装置
CN113590346B (zh) 处理业务请求的方法和电子设备
WO2021238376A1 (zh) 功能包的加载方法、装置、服务器和电子设备
WO2023051357A1 (zh) 一种虚拟设备运行方法
CN115543276A (zh) 一种用于实现软件开发的方法、系统以及电子设备
CN114546969A (zh) 一种文件共享方法、装置及电子设备
CN114398108A (zh) 电子设备及其驱动加载方法、介质
CN117009023B (zh) 显示通知信息的方法及相关装置
CN114168115B (zh) 通信系统、应用下载方法及设备
WO2024017332A1 (zh) 控制部件的方法及相关装置
WO2023179682A1 (zh) 一种设备协同方法
WO2023207890A1 (zh) 一种界面显示方法及电子设备
CN116795476B (zh) 一种删除壁纸的方法及电子设备
WO2024067551A1 (zh) 界面显示方法及电子设备
WO2024083014A1 (zh) 界面生成方法及电子设备
WO2023246783A1 (zh) 调整设备功耗的方法及电子设备
WO2022143891A1 (zh) 焦点同步方法及电子设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22874744

Country of ref document: EP

Kind code of ref document: A1