CN114327787A - 云手机仿真系统、方法和装置 - Google Patents
云手机仿真系统、方法和装置 Download PDFInfo
- Publication number
- CN114327787A CN114327787A CN202210007828.4A CN202210007828A CN114327787A CN 114327787 A CN114327787 A CN 114327787A CN 202210007828 A CN202210007828 A CN 202210007828A CN 114327787 A CN114327787 A CN 114327787A
- Authority
- CN
- China
- Prior art keywords
- sensor
- model
- cloud
- machine
- event
- 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
Landscapes
- Telephone Function (AREA)
Abstract
本公开提供了云手机仿真系统、方法和装置,涉及云服务领域,尤其涉及云手机领域。具体实现方案为:一种云手机仿真系统,包括:控制器,被配置用于基于Linux内核实现硬件的虚拟化;至少一个ARM板卡,每个ARM板卡被配置用于对应至少一个虚拟机,在每个虚拟机环境中:部署操作系统镜像,基于安卓开放源代码项目提供的参数实现对设备的模拟,对外提供配置接口,通过虚拟框架对安卓运行的进程进行钩子调用,以实现测试的目的。该实施方式能够使得应用程序可以在用户自定义的安卓环境中运行。
Description
技术领域
本公开涉及云服务领域,尤其涉及云手机领域,具体为一种云手机仿真系统、方法和装置。
背景技术
5G的到来导致云手机逐渐应用在行业的各个领域,比如私域营销、舆情监控、广告监测、APP(应用程序)测试、游戏辅助等。在这些场景中,可以通过云手机实现在APP应用的集中式托管,摆脱真实手机的供应、运维等复杂问题。而在这个过程中,基于云手机的APP运行环境,需要考虑APP对底层环境的基本检测和功能自适应,从而确保APP可以按照预期的情况运行,实现业务集中管理的目的。因此需要一种基于ARM(Advanced RISC Machine,进阶精简指令集机器)芯片云手机的仿真方法,使得APP可以在用户自定义的安卓环境中运行。
发明内容
本公开提供了一种云手机仿真系统、方法、装置、设备、存储介质以及计算机程序产品。
根据本公开的第一方面,提供了一种云手机仿真系统,包括:控制器,被配置用于基于Linux内核实现硬件的虚拟化;至少一个ARM板卡,每个ARM板卡被配置用于对应至少一个虚拟机,在每个虚拟机环境中:部署操作系统镜像,基于安卓开放源代码项目提供的参数实现对设备的模拟,对外提供配置接口,通过虚拟框架对安卓运行的进程进行钩子调用,以实现测试的目的。
根据本公开的第二方面,提供了一种云手机仿真方法,包括:接收配置命令;根据所述配置命令修改系统配置文件;响应于接收到触发事件,基于所述系统配置文件调用安卓运行的进程。
根据本公开的第三方面,提供了一种云手机仿真装置,包括:接收单元,被配置成接收配置命令;设置单元,被配置成根据所述配置命令修改系统配置文件;调用单元,被配置成响应于接收到触发事件,基于所述系统配置文件调用安卓运行的进程。
根据本公开的第四方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第二方面所述的方法。
根据本公开的第五方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行第二方面所述的方法。
根据本公开的第六方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现第二方面所述的方法。
本公开的实施例提供的云手机仿真系统、方法和装置,提供了一种基于ARM芯片云手机的仿真方法,使得APP可以在用户自定义的安卓环境中运行。无需使用物理真机进行测试从而降低了设备成本和运维成本。无需使用安卓沙箱,从而可以实现真正的底层环境修改,提高了测试成功率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开的云手机仿真系统的系统架构图;
图2是根据本公开的云手机仿真系统的仿真环境逻辑架构图;
图3是根据本公开的云手机仿真系统的配置命令逻辑示意图;
图4是根据本公开的云手机仿真系统的传感器仿真示意图;
图5是根据本公开的云手机仿真方法的一个实施例的流程图;
图6是根据本公开的云手机仿真装置的一个实施例的结构示意图;
图7是适于用来实现本公开的实施例的电子设备的计算机系统的结构示意图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1示出了可以应用本公开的云手机仿真系统的系统架构图。
如图1所示,系统架构图可以包括ARM服务器、防火墙和真机。网络用以在ARM服务器和防火墙之间以及防火墙和真机之间提供通信链路的介质。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用真机通过网络与ARM服务器交互,以接收或发送消息等。真机上可以安装有各种通讯客户端应用,例如游戏类应用、网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
真机可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio LayerIII,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group AudioLayer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。当真机为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
ARM服务器,采用ARM架构的专用服务器CPU(如华为鲲鹏920、飞腾FT-2500)设计开发的高性能计算设备,主要针对移动端应用。以CPU为核心,配上内存、存储设备、显卡(ARMCPU通常内置GPU)、网卡、人机交互等外设。
ARM服务器包括控制器和至少一个ARM板卡。每一个ARM板卡同时只能对接一个用户使用的天然特性,不需要做单块板卡的安全隔开,只需要进行集群隔离即可。
控制器,被配置用于基于Linux内核实现硬件的虚拟化。控制器可包括以下模块:remoteplay(远程播控)、设备驱动、虚拟化、Linux内核。控制器提供的基于Linux内核实现硬件的虚拟化是由所有的ARM板卡共享的。
每个ARM板卡被配置用于对应至少一个虚拟机,进而达到一块板卡虚拟出多颗虚拟手机环境的目的,从而降低运行环境的成本。在每个虚拟机环境中:部署操作系统镜像(例如基于安卓AOSP8.1实现基础OS镜像部署),基于安卓开放源代码项目(AOSP,AndroidOpen Source Project)提供的参数实现对设备的模拟,对外提供配置接口(例如通过dexguard系统服务提供的接口),通过虚拟框架(例如Xposed框架或其他虚拟框架)对安卓运行的进程进行钩子调用,以实现测试的目的。
云手机环境仿真主要包含:Xposed能力,网络代理能力(http/socks5,ip过滤,应用黑白名单),系统属性定制能力(prop,android_id,sim,wifi,定位,传感器,电量等),系统定制功能(su,app保活等)。
仿真环境包括以下模块:Xposed FrameWork(Xposed框架)、Syster Server(系统服务器)、dg cmd(配置命令)、moudle config(模块配置)、JNI、Zygote、ART runtime、su(切换用户)、dgproxy(配置代理)、property_service(属性服务)、boot script(启动脚本)、kernel(内核)、Hardware services(硬件服务)、HAL、Init(初始化)。具体仿真环境逻辑架构如图2所示,其中,每个模块的具体含义如下所示:
Xm loader:Xposed modules loader加载xposed框架用的ART Hook:androidruntime hook获取app的钩子用的PMS:packageManagerService应用安装卸载查询的用途
AMS:ActivityManagerService统一调度各应用程序的行为/内存/进程并进行管理
IMS:inputmanger service输入事件管理,例如触摸
JNI:java native interface java的原生接口
HAL:Hardware abstraction layer。硬件抽象层,HAL屏蔽了不同硬件设备的差异,为Android提供了统一的访问硬件设备的接口。不同的硬件厂商遵循HAL标准来实现自己的硬件控制逻辑。
libart是安卓虚拟机启动需要的库。
zygote是Android中非常重要的一个进程,它和Init进程、SystemServer进程一样在Android中有着不可替代的地位。Android应用中跑的的是虚拟机,Zygote在初始化时就会创建虚拟机,同时把需要的系统类库和资源文件加载的内存中。而Zygote在fork出子进程后,这个子进程也会得到一个已经加载好基础资源的虚拟机。
rild(RIL Daemon)是系统的守护进程,主要用于初始化LIBRIL以及启动厂商自定义的Vendor RIL。
LIBRIL被RILD初始化完成后,用于与Vendor RIL之间进行交互,负责接收、发送指令;
Vendor RIL是第三方厂商自定义的一个库,用于向Modem发送指令或者接收来自LIBRIL或者Modem的指令。
以上能力均可由统一的接口来设置:dg(DexGuard)命令。dg命令的逻辑示意图如图3所示,dg命令的两个核心功能分别是获取系统信息(dg dump),和辅助配置(dg config)以实现参数修改。用户输入dg命令,通过DexGuard系统服务,可以修改模块配置文件,也可通过dg config命令从模块配置文件中读取参数信息,此读取操作是从存储器中读取参数信息。而通过dg dump命令可通过Android系统核心服务监控模块配置文件,从内存中导出参数信息。可将通过dg config命令读取的参数信息与通过dg dump命令读取的参数信息进行比较,如果不同,则说明该参数信息未生效,没有加载到内存中。
配置命令可以配置以下参数信息:
1、Xposed能力
对应于图1中的虚拟框架。Xposed框架(Xposed Framework)是一套开源的、在Android高权限模式下运行的框架服务,可以在不修改APK文件的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。
2、网络代理能力
可设置云手机支持的网络协议,例如,http/socks5。可设置IP地址过滤列表,仅允许部分IP访问云手机。还可设置应用黑白名单,以禁止一些应用程序运行(黑名单)或允许一些应用程序运行(白名单)。
3、系统属性定制能力
可设置系统的属性prop(例如,操作系统版本号),设置android_id(设备标识),sim卡号,wifi,定位信息,传感器信息,电量等。
例如,可设置成Android8.1版本,真机名称yy,sim卡号01233..,位于北京市海淀区xx路xx号,气压传感器数据为海拔100米,电量为60%。
4、系统定制功能
可针对来自网络的一些消息定制相应的响应,例如,对于su(切换用户)消息,不执行切换,可忽略,也可回失败消息。还可设置指定的app保活。
本公开的上述实施例提供的系统,测试过程中不需要使用物理机也无需基于安卓沙箱,而是基于云手机的APP运行环境,实现了APP对底层环境的基本检测和功能自适应,从而确保APP可以按照预期的情况运行,实现业务集中管理的目的。
在本实施例的一些可选的实现方式中,该系统还包括:至少一种机型的真机,被配置用于收集不同机型的传感器事件序列并发送到云端传感器模型库;云端传感器模型库,被配置用于根据不同机型的传感器事件序列生成不同机型的传感器模型;每个ARM板卡,进一步被配置用于从所述云端传感器模型库中下载该ARM板卡的虚拟机模拟的机型的传感器模型,生成本地模型,模拟发送所述本地模型中的传感器事件序列。如图4所示,真机上报的传感器事件序列(例如,压力传感器检测到的按压1秒,气压传感器检测到向上移动10米等)会作为传感器模型发送到云端传感器模型库。云端传感器模型库会根据真机的机型将传感器模型分别存储,图4中模型A、模型B、模型C代表不同的机型的传感器事件序列。云手机(即虚拟机)可根据自己所模拟的机型从云端传感器模型库中下载模型(主动下载或由云端传感器模型库推送)。如果云手机中已存在该模型,则不用新建本地模型,如果不存在该模型,则根据下载的模型生成本地模型。将模型中的传感器事件序列作为云手机传感器的输入数据,进行传感器事件模拟。从而实现传感器输入数据的模拟,可以还原真机的传感器应用场景,从而可以使用云手机进行全方面的测试。
在本实施例的一些可选的实现方式中,至少一种机型的真机进一步被配置用于:获取不同机型的传感器状态,并将不同机型的传感器状态发送到云端传感器模型库;所述云端传感器模型库进一步被配置用于:根据不同机型的传感器事件序列和传感器状态生成不同机型的传感器模型;每个ARM板卡进一步被配置用于:同步该ARM板卡的虚拟机模拟的机型的传感器状态,基于同步后的传感器状态模拟发送所述传感器事件序列。真机不仅可以上传传感器事件序列,还可将当前的传感器状态一起上传。这样生成的传感器模型是包括传感器状态的。云手机下载模型后,将模型中的传感器状态与自己当前的传感器状态相比较,可以将本地的传感器状态修改成与模型相同,再使用模型中的传感器事件序列进行传感器事件模拟。可选地,云手机可根据本地的传感器状态从云端传感器模型库中下载相同传感器状态的模型,使用这些相同传感器状态模型中的传感器事件序列进行模拟。该实施方式充分考虑了云手机传感器的状态,使得云手机传感器状态与真机传感器状态同步,这样作为输入数据更加合理,避免出现因为传感器状态与传感器事件不匹配的情况导致的测试异常。
需要说明的是,本公开的实施例所提供的云手机仿真方法一般由ARM服务器执行。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图5,示出了根据本公开的云手机仿真方法的一个实施例的流程500。该云手机仿真方法,包括以下步骤:
步骤501,接收配置命令。
在本实施例中,云手机仿真方法的执行主体(例如图1所示的ARM服务器)可以通过有线连接方式或者无线连接方式从用户利用其进行仿真的终端接收配置命令,其中,配置命令可用于设置Xposed能力、网络代理能力、系统属性定制能力、系统定制能力。具体内容见前文所述。可通过dg系统服务提供的对外配置接口接收用户输入的配置命令。
步骤502,根据配置命令修改系统配置文件。
在本实施例中,如图3所示,dg命令的两个核心功能分别是获取系统信息(dgdump),和辅助配置(dg config)以实现参数修改。参数都保存在系统配置文件中,通过修改系统配置文件来修改参数。系统配置文件可按模块(例如,Xposed能力模块、网络代理能力模块等)保存,可分成多个模块配置文件。用户输入dg命令,通过DexGuard系统服务,可以修改模块配置文件,也可通过dg config命令从模块配置文件中读取参数信息,此读取为从存储器中读取参数信息。而通过dg dump命令可通过Android系统核心服务监控模块配置文件,从内存中导出参数信息。可将通过dg config命令读取的参数信息与通过dg dump命令读取的参数信息进行比较,如果不同,则说明该参数信息未生效,没有加载到内存中。
步骤503,响应于接收到触发事件,基于系统配置文件调用安卓运行的进程。
在本实施例中,当云手机从网络接收到触发事件(例如,来自地址A的启动应用程序B),查询系统配置文件中的IP过滤列表,如果地址A不在IP过滤列表中,则查询系统配置文件中的应用黑名单是否存在应用程序B,如果应用程序B不在应用黑名单中,则可启动应用程序B。如果地址A在IP过滤列表中或B在应用黑名单中,则不启动应用程序B。
系统配置文件可包括一些预设的脚本,针对不同的触发事件调用相应的进程,例如,接收到查询云手机的地址的触发事件,在进行鉴权后可根据用户通过dg命令配置的定位信息启动进程将定位信息作为响应消息回复。
本公开的上述实施例提供的方法,可以根据用户需求自定义修改云手机的运行环境,因此拿到底层权限的APP检测出的环境是正常的,会被当作真正的手机正常进行测试,可进行全面的仿真测试。
在本实施例的一些可选的实现方式中,该方法还包括:对接收到的触发事件进行权限校验;如果所述触发事件超出真机的权限范围,则执行预定的对抗操作。对应于图1中的识别对抗模块。例如,如果接收到su事件,其目的是切换到管理员,这对于外网用户是禁止的即超出真机的权限范围,则可以回应相应的操作失败消息,例如,输出“您不具备此权限”信息。或者对于一些海外IP地址,设置禁止访问云手机。可选地,可自定义对抗操作的脚本,当接收到指定的触发事件时调用相应脚本执行对抗操作。可防止黑客攻击,提高云手机的安全性。
在本实施例的一些可选的实现方式中,该方法还包括:从云端传感器模型库中下载与虚拟机模拟的机型匹配的传感器模型;根据所述传感器模型生成本地模型;模拟发送所述本地模型中的传感器事件序列。如图4所示,用户对真机的操作都会被真机的传感器捕捉并记录下来作为传感器事件序列,生成传感器模型,同步到云端传感器模型库中。云端传感器模型库对传感器模型按机型进行存储。云手机可定时从云端传感器模型库检查传感器模型的更新,可先检查云端传感器模型库中相同机型的传感器模型是否与云手机本地存储的传感器模型相同,如果不同则下载更新。云手机将下载的云端传感器模型根据本地的资源生成本地模型。云手机中传感器事件模拟控制模块向传感器HAL发送传感器事件序列,HAL屏蔽了不同硬件设备的差异,为Android提供了统一的访问硬件设备的接口。不同的硬件厂商遵循HAL标准来实现自己的硬件控制逻辑。
该实现方式将模型中的传感器事件序列作为云手机传感器的输入数据,进行传感器事件模拟。从而实现传感器输入数据的模拟,可以还原真机的传感器应用场景,从而可以使用云手机进行全方面的测试。
在本实施例的一些可选的实现方式中,该方法还包括:获取同机型真机的传感器状态并进行同步;基于同步后的传感器状态模拟发送所述传感器事件序列。真机不仅可以上传传感器事件序列,还可将当前的传感器状态一起上传。这样生成的传感器模型是包括传感器状态的。云手机下载模型后,将模型中的传感器状态与自己当前的传感器状态相比较,可以将本地的传感器状态修改成与模型相同,再使用模型中的传感器事件序列进行传感器事件模拟。可选地,云手机可根据本地的传感器状态从云端传感器模型库中下载相同传感器状态的模型,使用这些相同传感器状态模型中的传感器事件序列进行模拟。该实施方式充分考虑了云手机传感器的状态,使得云手机传感器状态与真机传感器状态同步,这样作为输入数据更加合理,避免出现因为传感器状态与传感器事件不匹配的情况导致的测试异常。
在本实施例的一些可选的实现方式中,系统配置文件包括以下至少一项参数:虚拟框架能力、网络代理能力、设备参数、系统属性定制能力、系统定制功能。详细描述参见前文。通过这些参数不仅可以模拟简单的APP环境,还能模拟复杂的APP环境,可以进行全面的仿真模拟,完全替代各种机型的真机,从而降低了设备成本和运维成本。
进一步参考图6,作为对上述各图所示方法的实现,本公开提供了一种云手机仿真装置的一个实施例,该装置实施例与图5所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图6所示,本实施例的云手机仿真装置600包括:接收单元601、设置单元602和调用单元603。其中,接收单元601,被配置成接收配置命令;设置单元602,被配置成根据所述配置命令修改系统配置文件;调用单元603,被配置成响应于接收到触发事件,基于所述系统配置文件调用安卓运行的进程。
在本实施例中,云手机仿真装置600的接收单元601、设置单元602和调用单元603的具体处理可以参考图5对应实施例中的步骤501、步骤502、步骤503。
在本实施例的一些可选的实现方式中,装置600还包括识别对抗单元604,被配置成:对接收到的触发事件进行权限校验;如果所述触发事件超出真机的权限范围,则执行预定的对抗操作。
在本实施例的一些可选的实现方式中,装置600还包括输入模拟单元605,被配置成:从云端传感器模型库中下载与虚拟机模拟的机型匹配的传感器模型;根据所述传感器模型生成本地模型;模拟发送所述本地模型中的传感器事件序列。
在本实施例的一些可选的实现方式中,输入模拟单元605进一步被配置成:获取同机型真机的传感器状态并进行同步;基于同步后的传感器状态模拟发送所述传感器事件序列。
在本实施例的一些可选的实现方式中,系统配置文件包括以下至少一项参数:虚拟框架能力、网络代理能力、设备参数、系统属性定制能力、系统定制功能。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行流程500所述的方法。
一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行流程500所述的方法。
一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现流程500所述的方法。
图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如云手机仿真方法。例如,在一些实施例中,云手机仿真方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的云手机仿真方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行云手机仿真方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (16)
1.一种云手机仿真系统,包括:
控制器,被配置用于基于Linux内核实现硬件的虚拟化;
至少一个ARM板卡,每个ARM板卡被配置用于对应至少一个虚拟机,在每个虚拟机环境中:部署操作系统镜像,基于安卓开放源代码项目提供的参数实现对设备的模拟,对外提供配置接口,通过虚拟框架对安卓运行的进程进行钩子调用,以实现测试的目的。
2.根据权利要求1所述的系统,其中,所述系统还包括:
至少一种机型的真机,被配置用于收集不同机型的传感器事件序列并发送到云端传感器模型库;
云端传感器模型库,被配置用于根据不同机型的传感器事件序列生成不同机型的传感器模型;
每个ARM板卡,进一步被配置用于从所述云端传感器模型库中下载该ARM板卡的虚拟机模拟的机型的传感器模型,生成本地模型,模拟发送所述本地模型中的传感器事件序列。
3.根据权利要求2所述的系统,其中,
所述至少一种机型的真机进一步被配置用于:获取不同机型的传感器状态,并将不同机型的传感器状态发送到云端传感器模型库;
所述云端传感器模型库进一步被配置用于:根据不同机型的传感器事件序列和传感器状态生成不同机型的传感器模型;
每个ARM板卡进一步被配置用于:同步该ARM板卡的虚拟机模拟的机型的传感器状态,基于同步后的传感器状态模拟发送所述传感器事件序列。
4.一种云手机仿真方法,包括:
接收配置命令;
根据所述配置命令修改系统配置文件;
响应于接收到触发事件,基于所述系统配置文件调用安卓运行的进程。
5.根据权利要求4所述的方法,其中,所述方法还包括:
对接收到的触发事件进行权限校验;
如果所述触发事件超出真机的权限范围,则执行预定的对抗操作。
6.根据权利要求4所述的方法,其中,所述方法还包括:
从云端传感器模型库中下载与虚拟机模拟的机型匹配的传感器模型;
根据所述传感器模型生成本地模型;
模拟发送所述本地模型中的传感器事件序列。
7.根据权利要求6所述的方法,其中,所述方法还包括:
获取同机型真机的传感器状态并进行同步;
基于同步后的传感器状态模拟发送所述传感器事件序列。
8.根据权利要求4-7中任一项所述的方法,其中,所述系统配置文件包括以下至少一项参数:
虚拟框架能力、网络代理能力、设备参数、系统属性定制能力、系统定制功能。
9.一种云手机仿真装置,包括:
接收单元,被配置成接收配置命令;
设置单元,被配置成根据所述配置命令修改系统配置文件;
调用单元,被配置成响应于接收到触发事件,基于所述系统配置文件调用安卓运行的进程。
10.根据权利要求9所述的装置,其中,所述装置还包括识别对抗单元,被配置成:
对接收到的触发事件进行权限校验;
如果所述触发事件超出真机的权限范围,则执行预定的对抗操作。
11.根据权利要求9所述的装置,其中,所述装置还包括输入模拟单元,被配置成:
从云端传感器模型库中下载与虚拟机模拟的机型匹配的传感器模型;
根据所述传感器模型生成本地模型;
模拟发送所述本地模型中的传感器事件序列。
12.根据权利要求11所述的装置,其中,所述输入模拟单元进一步被配置成:
获取同机型真机的传感器状态并进行同步;
基于同步后的传感器状态模拟发送所述传感器事件序列。
13.根据权利要求9-12中任一项所述的装置,其中,所述系统配置文件包括以下至少一项参数:
虚拟框架能力、网络代理能力、设备参数、系统属性定制能力、系统定制功能。
14.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求4-8中任一项所述的方法。
15.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求4-8中任一项所述的方法。
16.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求4-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210007828.4A CN114327787A (zh) | 2022-01-06 | 2022-01-06 | 云手机仿真系统、方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210007828.4A CN114327787A (zh) | 2022-01-06 | 2022-01-06 | 云手机仿真系统、方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114327787A true CN114327787A (zh) | 2022-04-12 |
Family
ID=81024128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210007828.4A Pending CN114327787A (zh) | 2022-01-06 | 2022-01-06 | 云手机仿真系统、方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114327787A (zh) |
-
2022
- 2022-01-06 CN CN202210007828.4A patent/CN114327787A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111930521A (zh) | 用于部署应用的方法、装置、电子设备及可读存储介质 | |
US10019298B2 (en) | Middleware interface and middleware interface generator | |
CN111614490B (zh) | 基于顶级容器集群对托管容器集群的管理系统及方法 | |
CN112925652B (zh) | 应用资源部署方法、装置、电子设备和介质 | |
CN114327688B (zh) | 基于微前端的数据处理方法、框架、存储介质及终端设备 | |
WO2013162561A1 (en) | Platform runtime abstraction | |
CN113138886A (zh) | 一种测试嵌入式设备的方法、装置及测试设备 | |
CN114968406B (zh) | 一种插件管理方法、装置、电子设备及存储介质 | |
CN107526584B (zh) | 数据接入方法和装置 | |
CN111124781A (zh) | 一种显卡测试方法、装置及电子设备和存储介质 | |
CN111930565B (zh) | 分布式管理系统中组件的进程故障自愈方法、装置及设备 | |
US10073689B2 (en) | Managing application lifecycles within a federation of distributed software applications | |
CN109491762B (zh) | 容器状态控制方法及装置、存储介质、电子设备 | |
CN110574006B (zh) | 用于自动同步设备上响应与条件的系统和方法 | |
CN111414154A (zh) | 前端开发的方法、装置、电子设备和存储介质 | |
CN114327787A (zh) | 云手机仿真系统、方法和装置 | |
CN113612643B (zh) | 云手机的网络配置方法、装置、设备以及存储介质 | |
CN114422358A (zh) | Api网关配置更新方法及设备 | |
US11757976B2 (en) | Unified application management for heterogeneous application delivery | |
CN113950034A (zh) | 蓝牙行为的模拟方法、装置和设备 | |
WO2017096889A1 (zh) | 系统升降级的方法和装置 | |
CN115794132A (zh) | 操作系统部署方法、装置、设备及存储介质 | |
CN113535544A (zh) | 一种待调试子应用运行方法、计算机设备以及装置 | |
KR102368826B1 (ko) | 클라우드 서버 및 클라우드 서버의 동작 | |
CN114546434A (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 |