CN112394980A - 机型模拟方法、装置、设备及存储介质 - Google Patents
机型模拟方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112394980A CN112394980A CN202011348501.0A CN202011348501A CN112394980A CN 112394980 A CN112394980 A CN 112394980A CN 202011348501 A CN202011348501 A CN 202011348501A CN 112394980 A CN112394980 A CN 112394980A
- Authority
- CN
- China
- Prior art keywords
- target
- file
- code
- app
- model
- 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.)
- Granted
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 title claims abstract description 30
- 230000004048 modification Effects 0.000 claims abstract description 12
- 238000012986 modification Methods 0.000 claims abstract description 12
- 230000006870 function Effects 0.000 claims description 60
- 238000004590 computer program Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 4
- 230000003287 optical effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 239000011664 nicotinic acid Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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
- 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
-
- 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
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
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)
- Telephone Function (AREA)
Abstract
本发明实施例公开了一种机型模拟方法、装置、设备及存储介质。该方法应用于云手机端,包括:响应于对目标应用程序APP的触发操作,确定与所述目标APP匹配的机型参数获取方式为目标获取方式;其中,所述机型参数获取方式包括:调用Java层应用程序接口API、调用Native层API以及读取文件系统相关文件;根据所述目标获取方式,对系统源码进行相应修改,以使所述目标APP根据修改后的系统源码获取机型参数并进行机型模拟。本发明实施例的技术方案,可以实现动态实时修改系统源码,提高机型模拟的准确度。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种机型模拟方法、装置、设备及存储介质。
背景技术
目前,当要在云手机上安装应用程序(Application,APP)时,需要把云手机模拟成与待安装APP匹配的机型,例如要安装华为应用商店,则需要把云手机模拟成华为机型。
现有技术中,对于使用安卓系统的机型,传统机型模拟方案只能通过修改安卓Java层应用程序接口(Application Programming Interface,API)进行机型模拟,当安卓APP通过Native C/C++层API读取系统参数以及硬件参数时,由于用于机型模拟的API与APP读取参数的API不一致,导致机型模拟不充分,模拟准确率低的问题。
发明内容
本发明提供一种机型模拟方法、装置、设备及存储介质,以实现动态实时修改系统源码,提高机型模拟的准确度。
第一方面,本发明实施例提供了一种机型模拟方法,应用于云手机端,包括:
响应于对目标应用程序APP的触发操作,确定与目标APP匹配的机型参数获取方式为目标获取方式;
其中,机型参数获取方式包括:调用Java层应用程序接口API、调用Native层API以及读取文件系统相关文件;
根据目标获取方式,对系统源码进行相应修改,以使目标APP根据修改后的系统源码获取机型参数并进行机型模拟。
可选的,响应于对目标应用程序APP的触发操作,确定与目标APP匹配的机型参数获取方式为目标获取方式,包括:
响应于对目标应用程序APP的触发操作,如果检测到目标APP调用Java层API函数,则确定目标获取方式为调用Java层API;
如果检测到目标APP调用Native层API函数读取系统属性获取函数,则确定目标获取方式为调用Native层API;
如果检测到目标APP调用文件打开函数,则确定目标获取方式为读取文件系统相关文件。
可选的,根据目标获取方式,对系统源码进行相应修改,包括:
如果目标获取方式为调用Java层API,则在系统源码中定位Java层API函数的实现代码;
将实现代码替换为自定义机型参数获取代码,自定义机型参数获取代码用于实现获取云手机管理服务器下发的机型参数或者系统默认机型参数。
可选的,根据目标获取方式,对系统源码进行相应修改,包括:
如果目标获取方式为调用Native层API,则在系统源码中定位所有与系统启动相关的、调用系统属性获取函数的目标代码,并将各目标代码替换为系统硬件信息;
在系统源码中定位系统属性获取函数的实现代码,并将实现代码替换为自定义机型参数获取代码,自定义机型参数获取代码用于实现获取云手机管理服务器下发的机型参数或者系统默认机型参数。
可选的,自定义机型参数获取代码,用于实现:
判断是否存在云手机管理服务器下发的策略文件;
如果存在策略文件,则将策略文件中携带的机型参数作为目标机型参数;
如果不存在策略文件,则将系统默认机型参数作为目标机型参数;
按照指定数据格式,生成与目标机型参数对应的返回结果。
可选的,根据目标获取方式,对系统源码进行相应修改,包括:
如果目标获取方式为读取文件系统相关文件,则在系统源码中定位文件打开函数的实现代码;
如果实现代码打开与文件系统关联的目标文件,则将实现代码中的目标文件名替换为自定义参数配置文件的文件名。
可选的,如果实现代码打开与文件系统关联的目标文件,则将实现代码中的目标文件名替换为自定义参数配置文件的文件名,包括:
获取实现代码对应的各待打开文件的文件名;
将各文件名与预设的关联文件名列表进行匹配,将匹配成功的文件名作为与文件系统关联的目标文件的文件名;
将云手机管理服务器下发的策略文件,按照目标文件的文件格式进行更新,生成自定义参数配置文件;
将实现代码中的目标文件名替换为自定义参数配置文件的文件名。
第二方面,本发明实施例还提供了一种机型模拟装置,应用于云手机端,包括:
确定模块,用于响应于对目标应用程序APP的触发操作,确定与目标APP匹配的机型参数获取方式为目标获取方式;
其中,机型参数获取方式包括:调用Java层API、调用Native层API以及读取文件系统相关文件;
代码修改模块,用于根据目标获取方式,对系统源码进行相应修改,以使目标APP根据修改后的系统源码获取机型参数并进行机型模拟。
第三方面,本发明实施例还提供了一种电子设备,设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明任意实施例提供的机型模拟方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例提供的机型模拟方法。
本发明实施例的技术方案,云手机端响应于对目标应用程序APP的触发操作,确定与目标APP匹配的机型参数获取方式为目标获取方式;其中,机型参数获取方式包括:调用Java层应用程序接口API、调用Native层API以及读取文件系统相关文件;根据目标获取方式,对系统源码进行相应修改,以使目标APP根据修改后的系统源码获取机型参数并进行机型模拟,解决了现有技术中用于机型模拟的API和APP读取参数的API不一致,导致机型模拟准确率低的问题,通过动态实时修改系统源码,提高机型模拟的准确度。
附图说明
图1a是本发明实施例一中的一种机型模拟方法的流程图;
图1b是本发明实施例一中的一种通过API获取机型参数的流程图;
图1c是本发明实施例一中的一种通过文件系统获取机型参数的流程图;
图2是本发明实施例二中的机型模拟装置的结构示意图;
图3是本发明实施例三中的电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1a是本发明实施例一中的一种机型模拟方法的流程图,本实施例可适用于动态实时修改系统源码以实现机型模拟的情况,该方法可以由机型模拟装置来执行,该装置可以由硬件和/或软件来实现,并一般可以集成在提供机型模拟服务的电子设备中,如云手机端中。如图1a所示,该方法包括:
步骤110、响应于对目标APP的触发操作,确定与目标APP匹配的机型参数获取方式为目标获取方式。
其中,机型参数获取方式包括:调用Java层应用程序接口API、调用Native层API以及读取文件系统相关文件。
本实施例中,云手机端使用安卓系统,可以向用户提供安卓手机的各项服务,目标APP是指安装在云手机端的APP,云手机端通过运行目标APP可以向用户提供该目标APP的功能。例如,目标APP可以是安装在云手机端的企业版微信,用户对移动终端的企业版微信进行操作时,云手机端可以通过运行企业版微信向该用户提供相应的微信服务。
其中,当用户在移动终端对目标APP进行操作时,云手机端的目标APP需要先获取云手机的机型参数,对云手机进行机型模拟,在确定云手机的机型与移动终端设备的机型一致后,才能在云手机上运行。机型参数可以包括云手机端的硬件信息以及只读存储器(Read-Only Memory,ROM)信息。
本实施例中,目标APP获取云手机的机型参数的方式可以分为三种,调用Java层API获取参数、调用Native层API获取参数以及通过读取文件系统相关文件获取参数。针对每种机型参数获取方式,云手机端需要对系统源码进行不同的代码修改,才能使得目标APP获取到正确的机型参数,模拟出与移动终端设备一致的机型。因此,当用户点击移动终端的目标APP,触发云手机端的目标APP时,云手机端可以根据目标APP的操作,确定与目标APP匹配的机型参数获取方式,作为目标获取方式。
可选的,响应于对目标应用程序APP的触发操作,确定与目标APP匹配的机型参数获取方式为目标获取方式,可以包括:响应于对目标APP的触发操作,如果检测到目标APP调用Java层API函数,则确定目标获取方式为调用Java层API;如果检测到目标APP调用Native层API函数读取系统属性获取函数,则确定目标获取方式为调用Native层API;如果检测到目标APP调用文件打开函数,则确定目标获取方式为读取文件系统相关文件。
本实施例中,在确定目标APP被触发后,如果检测到目标APP直接调用Java层API函数,或者,检测到目标APP通过调用Java层API读取系统属性获取函数,则确定目标获取方式为调用Java层API;如果检测到目标APP通过调用Native C/C++层API读取_system_property_get函数,则确定目标获取方式为调用Native层API;如果检测到目标APP通过调用文件打开函数,即安卓bionic库中的open簇函数,读取/proc文件系统或者/sys文件系统中的文件,则确定目标获取方式为读取文件系统相关文件。
步骤120、根据目标获取方式,对系统源码进行相应修改,以使目标APP根据修改后的系统源码获取机型参数并进行机型模拟。
本实施例中,由于目标APP获取云手机的机型参数的方式有三种,因此,可以针对目标获取方式为调用Java层API,或者目标获取方式为调用Native层API,或者目标获取方式为读取文件系统相关文件这三种不同的情况,分别说明应该如何对系统源码进行相应修改,才能使目标APP获取到准确的机型参数。
可选的,根据目标获取方式,对系统源码进行相应修改,可以包括:如果目标获取方式为调用Java层API,则在系统源码中定位Java层API函数的实现代码;将实现代码替换为自定义机型参数获取代码,自定义机型参数获取代码用于实现获取云手机管理服务器下发的机型参数或者系统默认机型参数。
本实施例中,当目标APP通过调用安卓的Java层API函数,或者通过调用安卓的Java层API读取系统属性获取函数来获取机型参数时,可以直接拦截Java层API,对系统源码中的Java层API函数的实现代码进行修改,例如,可以先在系统源码中定位到Java层API函数的实现代码位置,然后用自定义的机型参数获取代码替换API函数的实现代码,以使目标APP使用修改后的Java层API获取正确的机型参数。其中,自定义机型参数获取代码用于获取到云手机管理服务器下发的机型参数,或者是系统默认的机型参数,并反馈给目标APP。
可选的,根据目标获取方式,对系统源码进行相应修改,可以包括:如果目标获取方式为调用Native层API,则在系统源码中定位所有与系统启动相关的、调用系统属性获取函数的目标代码,并将各目标代码替换为系统硬件信息;在系统源码中定位系统属性获取函数的实现代码,并将实现代码替换为自定义机型参数获取代码,自定义机型参数获取代码用于实现获取云手机管理服务器下发的机型参数或者系统默认机型参数。
本实施例中,当目标APP通过调用安卓的Native C/C++层API读取_system_property_get函数来获取机型参数时,同样的考虑到API的实现代码在系统源码中,因此,先在系统源码中全文搜索所有与系统启动相关的、调用_system_property_get函数的目标代码,然后将各目标代码替换为系统默认的硬件信息,这样修改使得安卓系统之后不会再调用_system_property_get函数,同时系统还可以正常运行,从而当_system_property_get函数再次被调用时,只能是目标APP调用的。此时,可以修改_system_property_get函数的实现,以使目标APP调用_system_property_get函数时,云手机端可以向目标APP反馈正确的机型参数。
本实施例中,可以先在系统源码中定位_system_property_get函数的实现代码位置,然后用自定义的机型参数获取代码替换_system_property_get函数的实现代码,其中,自定义机型参数获取代码用于获取云手机管理服务器下发的机型参数,或者是系统默认的机型参数,并反馈给目标APP。
需要说明的是,对于Navtive C/C++层的API,由于在安卓系统启动过程中也需要调用Navtive C/C++层API获取与本设备相关的硬件抽象层(Hardware AbstractionLayer,HAL)动态库。因此,如果使用修改Java层API的方式修改Navtive C/C++层API,会导致安卓系统无法加载某些硬件相关的动态库,从而导致系统无法启动。
可选的,自定义机型参数获取代码,用于实现:判断是否存在云手机管理服务器下发的策略文件;如果存在策略文件,则将策略文件中携带的机型参数作为目标机型参数;如果不存在策略文件,则将系统默认机型参数作为目标机型参数;按照指定数据格式,生成与目标机型参数对应的返回结果。
本实施例中,如图1b所示,自定义机型参数获取代码,用于实现当目标APP调用Java层API函数时,或者,通过Navtive C/C++层API调用_system_property_get函数时,可以先检查是否存在云手机管理服务器下发的策略文件,如果存在,则直接按照指定数据格式,根据策略文件中的机型参数生成返回结果,返回至目标APP;如果不存在策略文件,则按照指定数据格式,根据系统默认机型参数生成返回结果返回给目标APP。通过实现动态修改,使得使用同一个ROM,可以模拟多种安卓机型。
可选的,根据目标获取方式,对系统源码进行相应修改,可以包括:如果目标获取方式为读取文件系统相关文件,则在系统源码中定位文件打开函数的实现代码;如果实现代码打开与文件系统关联的目标文件,则将实现代码中的目标文件名替换为自定义参数配置文件的文件名。
本实施例中,由于某些APP会通过读取并解析/proc和/sys下的指定文件来获取手机硬件信息,例如,通过读取/proc/cpuinfo文件来获得cpu相关信息。因此,当目标APP通过调用安卓bionic库中的open簇函数,读取/proc文件系统或者/sys文件系统中的文件来获取机型参数时,可以先在系统源码中定位各open函数的实现代码位置,然后检查实现代码中是否要打开与/proc文件系统或者/sys文件系统关联的目标文件,如果实现代码中会打开目标文件,则将实现代码中的目标文件名替换为自定义参数配置文件的文件名,以使目标APP调用open簇函数时,云手机端可以通过自定义参数配置文件向目标APP反馈正确的机型参数。
可选的,如果实现代码打开与文件系统关联的目标文件,则将实现代码中的目标文件名替换为自定义参数配置文件的文件名,可以包括:获取实现代码对应的各待打开文件的文件名;将各文件名与预设的关联文件名列表进行匹配,将匹配成功的文件名作为与文件系统关联的目标文件的文件名;将云手机管理服务器下发的策略文件,按照目标文件的文件格式进行更新,生成自定义参数配置文件;将实现代码中的目标文件名替换为自定义参数配置文件的文件名。
本实施例中,为了判断open函数是否要打开/proc文件系统或/sys文件系统的相关文件来获取机型参数,预先将/proc文件系统或/sys文件系统中可以获取到机型参数的关联文件加入至关联文件名列表中。从而,当检查open函数的实现代码是否会打开与/proc文件系统或者/sys文件系统关联的目标文件时,可以如图1c所示,先获取实现代码要打开的各文件的文件名,针对各文件名,检查关联文件名列表中是否包括该文件名。如果包括,则认为该文件名对应的文件是目标文件;如果不包括,则认为该文件名对应的文件不是目标文件。然后,针对各目标文件,如果本地存储有云手机管理服务器下发的策略文件,则可以将策略文件按照目标文件的文件格式进行更新,生成与目标文件的文件格式一致的自定义参数配置文件,并将实现代码中的目标文件名替换为自定义参数配置文件的文件名;如果没有策略文件,则不对实现代码进行修改。
本发明实施例的技术方案,云手机端响应于对目标应用程序APP的触发操作,确定与目标APP匹配的机型参数获取方式为目标获取方式;其中,机型参数获取方式包括:调用Java层应用程序接口API、调用Native层API以及读取文件系统相关文件;根据目标获取方式,对系统源码进行相应修改,以使目标APP根据修改后的系统源码获取机型参数并进行机型模拟,解决了现有技术中用于机型模拟的API和APP读取参数的API不一致,导致机型模拟准确率低的问题,通过从Java层API、Native层API以及安卓bionic库三个维度动态实时修改系统源码,向目标APP反馈正确的机型参数,提高机型模拟的准确度。
实施例二
图2是本发明实施例二中的机型模拟装置的结构示意图,本实施例可适用于动态实时修改系统源码以实现机型模拟的情况,该装置可以由硬件和/或软件来实现,并一般可以集成在提供机型模拟服务的电子设备中,如云手机端中。如图2所示,该装置包括:
确定模块210,用于响应于对目标应用程序APP的触发操作,确定与目标APP匹配的机型参数获取方式为目标获取方式;
其中,机型参数获取方式包括:调用Java层API、调用Native层API以及读取文件系统相关文件;
代码修改模块220,用于根据目标获取方式,对系统源码进行相应修改,以使目标APP根据修改后的系统源码获取机型参数并进行机型模拟。
本发明实施例的技术方案,云手机端响应于对目标应用程序APP的触发操作,确定与目标APP匹配的机型参数获取方式为目标获取方式;其中,机型参数获取方式包括:调用Java层应用程序接口API、调用Native层API以及读取文件系统相关文件;根据目标获取方式,对系统源码进行相应修改,以使目标APP根据修改后的系统源码获取机型参数并进行机型模拟,解决了现有技术中用于机型模拟的API和APP读取参数的API不一致,导致机型模拟准确率低的问题,通过动态实时修改系统源码,提高机型模拟的准确度。
可选的,确定模块210,用于:
响应于对目标应用程序APP的触发操作,如果检测到目标APP调用Java层API函数,则确定目标获取方式为调用Java层API;
如果检测到目标APP调用Native层API函数读取系统属性获取函数,则确定目标获取方式为调用Native层API;
如果检测到目标APP调用文件打开函数,则确定目标获取方式为读取文件系统相关文件。
可选的,代码修改模块220,包括:
第一修改单元,用于如果目标获取方式为调用Java层API,则在系统源码中定位Java层API函数的实现代码;
将实现代码替换为自定义机型参数获取代码,自定义机型参数获取代码用于实现获取云手机管理服务器下发的机型参数或者系统默认机型参数。
可选的,代码修改模块220,包括:
第二修改单元,用于如果目标获取方式为调用Native层API,则在系统源码中定位所有与系统启动相关的、调用系统属性获取函数的目标代码,并将各目标代码替换为系统硬件信息;
在系统源码中定位系统属性获取函数的实现代码,并将实现代码替换为自定义机型参数获取代码,自定义机型参数获取代码用于实现获取云手机管理服务器下发的机型参数或者系统默认机型参数。
可选的,自定义机型参数获取代码,用于实现:
判断是否存在云手机管理服务器下发的策略文件;
如果存在策略文件,则将策略文件中携带的机型参数作为目标机型参数;
如果不存在策略文件,则将系统默认机型参数作为目标机型参数;
按照指定数据格式,生成与目标机型参数对应的返回结果。
可选的,代码修改模块220,包括:
第三修改单元,用于如果目标获取方式为读取文件系统相关文件,则在系统源码中定位文件打开函数的实现代码;
如果实现代码打开与文件系统关联的目标文件,则将实现代码中的目标文件名替换为自定义参数配置文件的文件名。
可选的,第三修改单元,用于:
获取实现代码对应的各待打开文件的文件名;
将各文件名与预设的关联文件名列表进行匹配,将匹配成功的文件名作为与文件系统关联的目标文件的文件名;
将云手机管理服务器下发的策略文件,按照目标文件的文件格式进行更新,生成自定义参数配置文件;
将实现代码中的目标文件名替换为自定义参数配置文件的文件名。
本发明实施例所提供的机型模拟装置可执行本发明任意实施例所提供的机型模拟方法,具备执行方法相应的功能模块和有益效果。
实施例三
图3是本发明实施例三中的电子设备的结构示意图。图3示出了适于用来实现本发明实施方式的示例性设备12的框图。图3显示的设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图3所示,设备12以通用计算设备的形式表现。设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图3未显示,通常称为“硬盘驱动器”)。尽管图3中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该设备12交互的设备通信,和/或与使得该设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与设备12的其它模块通信。应当明白,尽管图中未示出,可以结合设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的机型模拟方法。
也即:实现一种机型模拟方法,应用于云手机端,包括:
响应于对目标应用程序APP的触发操作,确定与目标APP匹配的机型参数获取方式为目标获取方式;
其中,机型参数获取方式包括:调用Java层应用程序接口API、调用Native层API以及读取文件系统相关文件;
根据目标获取方式,对系统源码进行相应修改,以使目标APP根据修改后的系统源码获取机型参数并进行机型模拟。
实施例四
本发明实施例四还提供一种计算机可读存储介质,其上存储有计算机程序,程序在被计算机处理器执行时用于执行一种机型模拟方法,应用于云手机端,包括:
响应于对目标应用程序APP的触发操作,确定与目标APP匹配的机型参数获取方式为目标获取方式;
其中,机型参数获取方式包括:调用Java层应用程序接口API、调用Native层API以及读取文件系统相关文件;
根据目标获取方式,对系统源码进行相应修改,以使目标APP根据修改后的系统源码获取机型参数并进行机型模拟。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种机型模拟方法,其特征在于,应用于云手机端,包括:
响应于对目标应用程序APP的触发操作,确定与所述目标APP匹配的机型参数获取方式为目标获取方式;
其中,所述机型参数获取方式包括:调用Java层应用程序接口API、调用Native层API以及读取文件系统相关文件;
根据所述目标获取方式,对系统源码进行相应修改,以使所述目标APP根据修改后的系统源码获取机型参数并进行机型模拟。
2.根据权利要求1所述的方法,其特征在于,响应于对目标应用程序APP的触发操作,确定与所述目标APP匹配的机型参数获取方式为目标获取方式,包括:
响应于对目标应用程序APP的触发操作,如果检测到所述目标APP调用Java层API函数,则确定所述目标获取方式为调用Java层API;
如果检测到所述目标APP调用Native层API函数读取系统属性获取函数,则确定所述目标获取方式为调用Native层API;
如果检测到所述目标APP调用文件打开函数,则确定所述目标获取方式为读取文件系统相关文件。
3.根据权利要求2所述的方法,其特征在于,根据所述目标获取方式,对系统源码进行相应修改,包括:
如果所述目标获取方式为调用Java层API,则在系统源码中定位Java层API函数的实现代码;
将所述实现代码替换为自定义机型参数获取代码,所述自定义机型参数获取代码用于实现获取云手机管理服务器下发的机型参数或者系统默认机型参数。
4.根据权利要求2所述的方法,其特征在于,根据所述目标获取方式,对系统源码进行相应修改,包括:
如果所述目标获取方式为调用Native层API,则在系统源码中定位所有与系统启动相关的、调用系统属性获取函数的目标代码,并将各目标代码替换为系统硬件信息;
在系统源码中定位系统属性获取函数的实现代码,并将所述实现代码替换为自定义机型参数获取代码,所述自定义机型参数获取代码用于实现获取云手机管理服务器下发的机型参数或者系统默认机型参数。
5.根据权利要求3或4所述的方法,其特征在于,所述自定义机型参数获取代码,用于实现:
判断是否存在云手机管理服务器下发的策略文件;
如果存在策略文件,则将所述策略文件中携带的机型参数作为目标机型参数;
如果不存在策略文件,则将系统默认机型参数作为目标机型参数;
按照指定数据格式,生成与所述目标机型参数对应的返回结果。
6.根据权利要求2所述的方法,其特征在于,根据所述目标获取方式,对系统源码进行相应修改,包括:
如果所述目标获取方式为读取文件系统相关文件,则在系统源码中定位文件打开函数的实现代码;
如果所述实现代码打开与文件系统关联的目标文件,则将所述实现代码中的目标文件名替换为自定义参数配置文件的文件名。
7.根据权利要求6所述的方法,其特征在于,如果所述实现代码打开与文件系统关联的目标文件,则将所述实现代码中的目标文件名替换为自定义参数配置文件的文件名,包括:
获取所述实现代码对应的各待打开文件的文件名;
将各文件名与预设的关联文件名列表进行匹配,将匹配成功的文件名作为与文件系统关联的目标文件的文件名;
将云手机管理服务器下发的策略文件,按照所述目标文件的文件格式进行更新,生成自定义参数配置文件;
将所述实现代码中的目标文件名替换为自定义参数配置文件的文件名。
8.一种机型模拟装置,其特征在于,应用于云手机端,包括:
确定模块,用于响应于对目标应用程序APP的触发操作,确定与所述目标APP匹配的机型参数获取方式为目标获取方式;
其中,所述机型参数获取方式包括:调用Java层API、调用Native层API以及读取文件系统相关文件;
代码修改模块,用于根据所述目标获取方式,对系统源码进行相应修改,以使所述目标APP根据修改后的系统源码获取机型参数并进行机型模拟。
9.一种电子设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的机型模拟方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的机型模拟方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011348501.0A CN112394980B (zh) | 2020-11-26 | 2020-11-26 | 机型模拟方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011348501.0A CN112394980B (zh) | 2020-11-26 | 2020-11-26 | 机型模拟方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112394980A true CN112394980A (zh) | 2021-02-23 |
CN112394980B CN112394980B (zh) | 2024-04-26 |
Family
ID=74605262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011348501.0A Active CN112394980B (zh) | 2020-11-26 | 2020-11-26 | 机型模拟方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112394980B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103118290A (zh) * | 2013-02-28 | 2013-05-22 | 北京奇虎科技有限公司 | 程序安装适配性的检测方法、装置及系统 |
CN104536808A (zh) * | 2014-12-30 | 2015-04-22 | 中国科学院深圳先进技术研究院 | 一种云端应用程序的参数配置方法及系统 |
CN110913015A (zh) * | 2019-12-12 | 2020-03-24 | 长沙摩智云计算机科技有限公司 | 一种云手机app的分布式快捷安装方法、系统及介质 |
-
2020
- 2020-11-26 CN CN202011348501.0A patent/CN112394980B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103118290A (zh) * | 2013-02-28 | 2013-05-22 | 北京奇虎科技有限公司 | 程序安装适配性的检测方法、装置及系统 |
CN104536808A (zh) * | 2014-12-30 | 2015-04-22 | 中国科学院深圳先进技术研究院 | 一种云端应用程序的参数配置方法及系统 |
CN110913015A (zh) * | 2019-12-12 | 2020-03-24 | 长沙摩智云计算机科技有限公司 | 一种云手机app的分布式快捷安装方法、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112394980B (zh) | 2024-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9262237B2 (en) | Automating software availability management based on API versioning | |
CN108388622B (zh) | Api接口动态生成方法、装置、计算机设备及存储介质 | |
CN108319575B (zh) | 一种页面组件的校验方法、装置、服务器和存储介质 | |
US11741002B2 (en) | Test automation systems and methods using logical identifiers | |
JP2006048645A (ja) | ドキュメントにコンテキスト情報を埋め込むための方法およびシステム | |
CN113971037A (zh) | 应用处理方法、装置、电子设备及存储介质 | |
CN110659210A (zh) | 一种信息获取方法、装置、电子设备及存储介质 | |
CN110990346A (zh) | 基于区块链的文件数据处理方法、装置、设备及存储介质 | |
CN112506854A (zh) | 页面模板文件的存储和页面生成方法、装置、设备及介质 | |
CN114461223A (zh) | 一种代码生成方法、装置及终端设备 | |
CN114358742A (zh) | 一种工作流执行方法、装置、设备及存储介质 | |
CN110045952B (zh) | 代码调用方法与装置 | |
WO2023151397A1 (zh) | 应用程序部署方法、装置、设备及介质 | |
US9075679B1 (en) | Creating a prerequisite checklist corresponding to a software application | |
CN112394980B (zh) | 机型模拟方法、装置、设备及存储介质 | |
CN112416374B (zh) | 数据处理方法、装置、终端和存储介质 | |
CN114637672A (zh) | 自动化数据测试方法、装置、计算机设备及存储介质 | |
US11726818B1 (en) | System for executing tasks in different programming languages | |
CN114356290A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN112988192A (zh) | 版本更新方法、装置、电子设备及存储介质 | |
CN113110846A (zh) | 一种环境变量的获取方法及装置 | |
CN110377401B (zh) | 基于idea的事务请求处理方法、装置、服务器和存储介质 | |
CN111444161A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110413644B (zh) | 一种数据缓存方法、电子装置及计算机可读存储介质 | |
CN113535660B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |