CN112035180A - 一种自动化实例加载方法、装置、电子设备及存储介质 - Google Patents
一种自动化实例加载方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112035180A CN112035180A CN202010846095.4A CN202010846095A CN112035180A CN 112035180 A CN112035180 A CN 112035180A CN 202010846095 A CN202010846095 A CN 202010846095A CN 112035180 A CN112035180 A CN 112035180A
- Authority
- CN
- China
- Prior art keywords
- module
- dependency relationship
- declaration
- instance
- functional
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种自动化实例加载方法、装置、电子设备及存储设备,涉及软件开发技术领域。所述方法包括:确定目标应用中的功能模块对应的依赖关系;对所述功能模块进行实例化,以得到所述功能模块对应的模块实例;根据所述将所述模块实例存储至预设数据库中,其中,所述模块实例的存储位置与所述关联。因此,能够解决因相关技术中无法对业务模块的依赖关系进行管理,而导致软件开发繁琐,***耦合度高的问题。
Description
技术领域
本发明涉及软件开发技术领域,尤其涉及一种自动化实例加载方法、装置、电子设备及存储介质。
背景技术
在主流JavaScript web framework(JS web框架,例如koa、express等)中为保证框架核心的精简、高效,不会在node_modules外引入其它的依赖管理方式。而node_modules更偏重于管理外部依赖,而非业务模块的依赖。
申请人在实现本发明的过程中,发现相关技术中至少存在以下问题:
在软件的开发过程中,无法对业务模块的依赖关系进行管理,进而无法对软件的模块的资源进行统一的管理,而导致软件的开发繁琐,不利于后续维护等。
针对上述问题,目前尚未提出有效的解决技术手段。。
发明内容
本发明实施例提供一种自动化实例加载方法、装置、电子设备及存储介质,以解决相关技术中无法对业务模块的依赖关系进行管理,而导致软件开发繁琐,***耦合度高的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种自动化实例加载方法,所述方法包括:确定目标应用中的功能模块对应的依赖关系;对所述功能模块进行实例化,以得到所述功能模块对应的模块实例;根据所述依赖关系将所述模块实例存储至预设数据库中,其中,所述模块实例的存储位置与所述依赖关系关联。
进一步地,在确定目标应用中的功能模块对应的依赖关系之前,还包括:在所述功能模块对应的类中添加声明标志以及依赖关系标志,其中,所述声明标志用于指示所述功能模块为可依赖模块,所述依赖关系标志用于指示所述功能模块的依赖关系。
进一步地,在对所述功能模块进行实例化之前,还包括:在所述目标应用启动时,获取所述功能模块的所述声明与所述依赖关系;判断所述声明的声明格式是否符合预设声明格式,以及与所述功能模块产生所述依赖关系的其他功能模块是否有效;在所述声明的声明格式不符合预设声明格式,或与所述功能模块构成所述依赖关系的其他功能模块无效的情况下,进行异常提示;在所述声明的声明格式符合预设声明格式,且与所述功能模块构成所述依赖关系的其他功能模块有效情况下,对所述功能模块进行实例化。
进一步地,根据所述依赖关系将所述模块实例存储至预设数据库中,包括:确定与所述依赖关系对应的关键码值;根据所述关键码值将所述模块实例存储至所述预设数据库中,其中,所述模块实例的存储位置与所述关键码值关联。
进一步地,在根据所述依赖关系将所述模块实例存储至预设数据库中之后,包括:在所述目标应用当前调用的应用程序接口所属的模块不包括所述声明的情况下,继续执行所述目标应用的当前业务。在所述目标应用当前调用的应用程序接口所属的模块包括所述声明的情况下,基于所述模块对应的依赖关系在所述预设数据库中调用所述模块对应的模块实例。
第二方面,本发明实施例另外提供了一种自动化实例加载装置,所述装置包括:确定单元,用于确定目标应用中的功能模块对应的依赖关系;处理单元,用于对所述功能模块进行实例化,以得到所述功能模块对应的模块实例;存储单元,用于根据所述依赖关系将所述模块实例存储至预设数据库中,其中,所述模块实例的存储位置与所述依赖关系关联。
进一步地,还包括:声明单元,用于在确定目标应用中的功能模块对应的依赖关系之前,在所述功能模块对应的类中添加声明标志以及依赖关系标志,其中,所述声明标志用于指示所述功能模块为可依赖模块,所述依赖关系标志用于指示所述功能模块的依赖关系。
进一步地,还包括:获取单元,用于在所述目标应用启动时,获取所述功能模块的所述声明与所述依赖关系;判断单元,用于判断所述声明的声明格式是否符合预设声明格式,以及与所述功能模块产生所述依赖关系的其他功能模块是否有效;提示单元,用于在所述声明的声明格式不符合预设声明格式,或与所述功能模块构成所述依赖关系的其他功能模块无效的情况下,进行异常提示;所述处理单元,还用于在所述声明的声明格式符合预设声明格式,且与所述功能模块构成所述依赖关系的其他功能模块有效情况下,对所述功能模块进行实例化。
进一步地,所述存储单元包括:第一存储模块,用于确定与所述依赖关系对应的关键码值;第二存储模块,用于根据所述关键码值将所述模块实例存储至所述预设数据库中,其中,所述模块实例的存储位置与所述关键码值关联。
进一步地,还包括:第一执行单元,用于在所述目标应用当前调用的应用程序接口所属的模块不包括所述声明的情况下,继续执行所述目标应用的当前业务。第二执行单元,用于在所述目标应用当前调用的应用程序接口所属的模块包括所述声明的情况下,基于所述模块对应的依赖关系在所述预设数据库中调用所述模块对应的模块实例。
第三方面,本发明实施例另外提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如前第一方面所述的自动化实例加载方法的步骤。
第四方面,本发明实施例另外提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前第一方面所述的自动化实例加载方法的步骤。
在本发明实施例中,确定目标应用中的功能模块对应的依赖关系;对功能模块进行实例化,以得到功能模块对应的模块实例;根据依赖关系将模块实例存储至预设数据库中,其中,模块实例的存储位置与依赖关系关联。能够实现对功能模块的依赖关系的管理,进而实现对模块实例资源的统一管理,简化了软件开发繁琐度同时降低了软件的***耦合度。解决了相关技术中无法对业务模块的依赖关系进行管理,而导致软件开发繁琐,***耦合度高的问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中的一种自动化实例加载方法的步骤流程图;
图2是本发明实施例中的一种自动化实例加载方法的具体步骤流程图;
图3是本发明实施例中的一种作弊检测装置的结构示意图;
图4是本发明实施例中的一种电子设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
在介绍本发明实施例提供的一种自动化实例加载方法,首先对项目中模块间的依赖关系进行说明:
在相关技术中,现有大型项目为了提高开发效率,通常会进行模块划分,从而使多个开发人员分工合作,完成一个大型醒目的开发。由于划分得到的各个模块都是该大型项目的一个组成部分,需要模块之间的相互配合,才能保证大型项目的正常工作。如上所述,项目划分出的多个模块之间往往具有一定依赖关系。
在软件工程对象模型中,依赖关系通常描述两个模型元素(类、用例、实例)之间的语义连接关系,其中一个模型元素是独立的,另一个模型元素不是独立的,它就依赖于独立的模型元素,如果独立的模型元素改变了,将影响依赖于它的模型元素。
例如:一个类使用另一个类的对象作为操作的参数,一个类用另一个类的对象作为它的数据成员,一个类向另一个类发消息等,这样的两个类之间都存在依赖关系。在类图中,可以采用带箭头的线连接有依赖关系的两个类,箭头指向独立的类,还可以在该线上添加类标签,具体说明依赖的种类等等。
由此可见,在本发明中,上述依赖关系可以指项目中模块A直接或间接引用或包含模块B,可以称项目存在一个模块A依赖于模块B的关系。
参照图1,示出了本发明实施例中一种自动化实例加载方法的步骤流程图。
步骤101,确定目标应用中的功能模块对应的依赖关系。
具体地,在目标应用启动以后,通过反射机制在运行时动态获取功能模块对应的依赖关系。其中,功能模块的依赖关系包括该功能模块对应的与其他功能模块的依赖关系。
需要说明的是,在本实施例中,功能模块为项目中的模块,能够提供相应的应用程序接口,并不仅限于具有某类功能的业务模块。在目标应用所属的项目编码的过程中,对项目中模块对应的类进行声明以及声明依赖关系,例如在类前添加import标签。
步骤102,对功能模块进行实例化,以得到功能模块对应的模块实例。
步骤103,根据依赖关系将模块实例存储至预设数据库中,其中,模块实例的存储位置与依赖关系对应。
具体地,在本实施例中,通过目标应用实例化具备声明的功能模块,通过对功能模块进行实例化后,得到功能模块对应的模块实例,然后根据依赖关系将模块实例保存,其中,模块实例也可以是功能模块对应的模块对象。将模块对应的依赖关系作为key,将模块实例作为value保存在预设数据库ResourceMap中。在预设数据库ResourceMap中功能模块的依赖关系与模块实例为映射的关系,通过依赖关系的key能够在ResourceMap中查询并获取功能模块对应模块实例。
需要说明的是,通过上述实施例,确定目标应用中的功能模块对应的依赖关系;对功能模块进行实例化,以得到功能模块对应的模块实例;根据依赖关系将模块实例存储至预设数据库中,其中,模块实例的存储位置与依赖关系对应。能够实现对功能模块的依赖关系的管理,进而实现对模块实例资源的统一管理,简化了软件开发繁琐度同时降低了软件的***耦合度。解决了相关技术中无法对业务模块的依赖关系进行管理,而导致软件开发繁琐,***耦合度高的问题。
作为本实施例中一种可选地技术方案,在确定目标应用中的功能模块对应的依赖关系之前,还包括但不限于:在功能模块对应的类中添加声明标志以及依赖关系标志,其中,声明标志用于指示功能模块为可依赖模块,依赖关系标志用于指示功能模块的依赖关系。
具体地,在本实施例中,通过项目编码器中的声明装饰器快速声明功能模块,或者通过高阶函数声明功能模块,该声明标志用于指示该功能模块为可依赖模块,也可称为可应用模块;然后对具备声明标志进行依赖关系的声明,其中,通过项目编码器中的引用装饰器快速声明依赖关系,或者通过高阶函数声明依赖关系。进一步地,在目标应用所属的项目编码的过程中,对项目中的类进行声明,例如在类前添加import标签或对功能模块添加Tip标签。此外,对预设数据库中与功能模块对应的对象或实例进行初始化。
作为本实施例中一种可选地技术方案,在对功能模块进行实例化之前,还包括但不限于:在目标应用启动时,获取功能模块的声明与依赖关系;判断声明的声明格式是否符合预设声明格式,以及与功能模块产生依赖关系的其他功能模块是否有效;在声明的声明格式不符合预设声明格式,或与功能模块构成依赖关系的其他功能模块无效的情况下,进行异常提示;在声明的声明格式符合预设声明格式,且与功能模块构成依赖关系的其他功能模块有效情况下,对功能模块进行实例化。
具体地,在获取到存在声明标签与依赖关系标签的功能模块之后,对功能模块的声明的声明格式进行校验,判断声明格式是否符合预设声明格式。应用对功能模块的依赖关系中的其他功能模块与自身实际的功能模块进行匹配,如果无法匹配,则认为存在无效的其他功能模块,进行异常提示;若匹配成功,则对功能模块进行实例化,并进行功能模块的模块实例的保存流程。
作为本实施例中一种可选地技术方案,根据依赖关系将模块实例存储至预设数据库中,包括但不限于:确定与依赖关系对应的关键码值;根据关键码值将模块实例存储至预设数据库中,其中,模块实例的存储位置与关键码值关联。
具体地,对功能模块进行实例化,得到功能模块的模块实例或模块实例。然后将功能模块的依赖关系作为索引,索引的值为与依赖关系对应的关键码值。根据关键码值对应的位置存储将模块实例至预设数据库中。关键码值包括依赖关系的代码以及其他功能模块的代码,例如,功能模块A与功能模块B的依赖关系为引用关系,功能模块A对应的代码为A10,功能模块B对应的代码为B10,引用关系的代码为F,则关键码值为A10B10F,可以基于A10B10F的关键码值将功能模块的实例的存储位置关联在一起。
在一个例子中,以关键码值为Hash Table(哈希表)中哈希key值,数据库为ResourceMap为例进行说明,以功能模块的依赖关系作为key,将功能模块的模块对象或模块实例作为ResourceMap中值value保存至ResourceMap对象中。
在优选地技术方案中,以在预设数据库中嵌套其他数据库的方式进行模块实例的保存,例如基于功能模块A建立第一ResourceMap,其中,在第一ResourceMap中基于依赖关系建立对应的第二ResourceMap,第二ResourceMap用于保存功能模块A某一类依赖关系对应的其他功能模块,例如在引用ResourceMap中的其他功能模块,均与功能模块构成引用关系。
作为本实施例中一种可选地技术方案,在根据依赖关系将模块实例存储至预设数据库中之后,包括:在目标应用当前调用的应用程序接口所属的模块不包括声明的情况下,继续执行目标应用的当前业务。在目标应用当前调用的应用程序接口所属的模块包括声明的情况下,基于模块对应的依赖关系在预设数据库中调用模块对应的模块实例。
具体地,在在本实施例中,在目标应用执行业务逻辑的过程中,需要调用目标功能模块提供的API(Application Programming Interface,应用程序接口)时,则会在生成调用请求,该调用请求用于调用目标功能模块对应的模块实例或模块对象,进而请求调用目标功能模块对应的API,然后基于依赖关系对应的关键码值,基于关键码值在预设数据库中调用对应的模块实例或模块对象。
优选地,在本实施例中,应用执行过程中,判断应用调用的API对应的功能模块是否包含依赖关系的声明,即判断应用是否需要引用预设数据库中的模块实例。若功能模块不包含声明,则基于应用的业务逻辑继续执行目标应用的当前业务。若功能模块包含依赖关系的声明,则基于目标应用的依赖关系调用预设数据库中存储的模块实例。
在一个例子中,当目标应用执行业务逻辑,比如处理某个请求时,进行业务逻辑运算需要使用其他功能模块提供的API时,则目标应用从ResourceMap对象中通过依赖关系对应的key来访问功能模块对应的模块实例,从而使用功能模块提供的API,以实现快速访问功能模块,提升目标应用的性能。
通过本发明实施例,确定目标应用中的功能模块对应的依赖关系;对功能模块进行实例化,以得到功能模块对应的模块实例;根据依赖关系将模块实例存储至预设数据库中,其中,模块实例的存储位置与依赖关系关联。能够实现对模块实例资源的统一管理。
另一方面,本实施例抽象功能模块之间的依赖关系,实现了目标应用的松耦合。被依赖(例如引用关系)的功能模块变更时不会影响依赖的功能模块(依赖方)、依赖方不需要修改任何代码。
另一方面,本实施例基于依赖关系能够实现对功能模块对应的模块实例地快速访问,避免了重复实例化模块的开销,有效的提升了应用的性能。
此外,通过判断目标应用调用的API对应的功能模块是否包含声明,实现了屏蔽资源配置、***服务对应用业务的影响,使得应用中各个模块专注实现模块对应的业务逻辑。
实施例二
详细介绍本发明实施例提供的一种自动化实例加载方法方法。
参照图2,图2中示出了本发明实施例中一种自动化实例加载方法的具体步骤流程图,具体可以包括以下步骤:
步骤201,对功能模块进行声明。
具体地,通过声明装饰器快速声明功能模块,或者通过高阶函数声明模块;通过引用装饰器快速声明依赖关系,或者通过高阶函数声明依赖关系。需要说明的是,功能模块的声明中包括声明依赖关系。
步骤202,加载功能模块,以及获取功能模块的声明和依赖关系。
具体地,应用启动后,通过反射机制在应用运行时动态获取功能模块的声明与依赖关系,并初始化ResourceMap对象。
步骤203,判断功能模块的声明和依赖关系是否符合预设条件。
具体地,获取到声明与依赖的功能模块后,应用的加载器会检查功能模块的声明中的声明格式是否符合预设声明格式,依赖关系中的其他功能模块是否与应用中的功能模块一一匹配。若不匹配,则跳转至步骤204;若匹配,则跳转至步骤205。
步骤204,抛出异常进行异常提示。
步骤205,对功能模块进行实例化,并保存功能模块对应的模块实例。
具体地,功能模块的声明格式符合预设声明格式,且依赖关系中其他功能模块均有效的情况下,对模块进行实例化,得到对应的模块实例。将其依赖关系做为key,将模块实例作为value保存在ResourceMap对象中。
步骤206,判断应用调用的API对应的模块是否存在声明。
具体地,若不包括,执行步骤207;若包括,则执行步骤208。
步骤207,继续执行应用的当前业务。
步骤208,基于依赖关系访问模块实例。
具体地,应用从ResourceMap中通过依赖关系的key,直接访问ResourceMap中key对应的模块实例,从而使用该功能模块所提供的API。
通过上述实施例,确定目标应用中的功能模块对应的依赖关系;对所述功能模块进行实例化,以得到所述功能模块对应的模块实例;根据所述依赖关系将所述模块实例存储至预设数据库中。
通过上述实施例,确定目标应用中的功能模块对应的依赖关系;对功能模块进行实例化,以得到功能模块对应的模块实例;根据依赖关系将模块实例存储至预设数据库中,其中,模块实例的存储位置与依赖关系关联。能够实现对功能模块的依赖关系的管理,进而实现对模块实例资源的统一管理,简化了软件开发繁琐度,同时降低了软件的***耦合度。解决了相关技术中无法对业务模块的依赖关系进行管理,而导致软件开发繁琐,***耦合度高的问题。
实施例三
详细介绍本发明实施例提供的一种自动化实例加载装置。
参照图3,示出了本发明实施例中一种自动化实例加载装置的结构示意图。该装置具体可以包括以下结构:
1)确定单元30,用于确定目标应用中的功能模块对应的依赖关系;
2)处理单元32,用于对所述功能模块进行实例化,以得到所述功能模块对应的模块实例;
3)存储单元34,用于根据所述依赖关系将所述模块实例存储至预设数据库中,其中,所述模块实例的存储位置与所述依赖关系关联。
可选地,在本实施例中,还包括:
1)声明单元,用于在确定目标应用中的功能模块对应的依赖关系之前,在所述功能模块对应的类中添加声明标志以及依赖关系标志,其中,所述声明标志用于指示所述功能模块为可依赖模块,所述依赖关系标志用于指示所述功能模块的依赖关系。
可选地,在本实施例中还包括:
1)获取单元,用于在所述目标应用启动时,获取所述功能模块的所述声明与所述依赖关系;
2)判断单元,用于判断所述声明的声明格式是否符合预设声明格式,以及与所述功能模块产生所述依赖关系的其他功能模块是否有效;
3)提示单元,用于在所述声明的声明格式不符合预设声明格式,或与所述功能模块构成所述依赖关系的其他功能模块无效的情况下,进行异常提示;
4)所述处理单元32,还用于在所述声明的声明格式符合预设声明格式,且与所述功能模块构成所述依赖关系的其他功能模块有效情况下,对所述功能模块进行实例化。
可选地,在本实施例中,所述存储单元34包括:
1)第一存储模块,用于确定与所述依赖关系对应的关键码值;
2)第二存储模块,用于根据所述关键码值将所述模块实例存储至所述预设数据库中,其中,所述模块实例的存储位置与所述关键码值关联。
可选地,在本实施例中还包括:
1)第一执行单元,用于在所述目标应用当前调用的应用程序接口所属的模块不包括所述声明的情况下,继续执行所述目标应用的当前业务。
2)第二执行单元,用于在所述目标应用当前调用的应用程序接口所属的模块包括所述声明的情况下,基于所述模块对应的依赖关系在所述预设数据库中调用所述模块对应的模块实例。
通过上述实施例,确定目标应用中的功能模块对应的依赖关系;对所述功能模块进行实例化,以得到所述功能模块对应的模块实例;根据所述将所述模块实例存储至预设数据库中,其中,所述模块实例的存储位置与所述关联。解决了相关技术中无法对业务模块的依赖关系进行管理,而导致软件开发繁琐,***耦合度高的问题。
实施例四
图4为实现本发明各个实施例的一种电子设备的硬件结构示意图。
参照图4,该电子设备400包括但不限于:射频单元401、网络模块402、音频输出单元403、输入单元404、传感器405、显示单元406、用户输入单元407、接口单元408、存储器409、处理器410、以及电源411等部件。本领域技术人员可以理解,图4中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,电子设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
应理解的是,本发明实施例中,射频单元401可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器410处理;另外,将上行的数据发送给基站。通常,射频单元401包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元401还可以通过无线通信***与网络和其他设备通信。
电子设备通过网络模块402为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元403可以将射频单元401或网络模块402接收的或者在存储器409中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元403还可以提供与电子设备400执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元403包括扬声器、蜂鸣器以及受话器等。
输入单元404用于接收音频或视频信号。输入单元404可以包括图形处理器(Graphics Processing Unit,GPU)4041和麦克风4042,图形处理器4041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元406上。经图形处理器4041处理后的图像帧可以存储在存储器409(或其它存储介质)中或者经由射频单元401或网络模块402进行发送。麦克风4042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元401发送到移动通信基站的格式输出。
电子设备400还包括至少一种传感器405,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板4061的亮度,接近传感器可在电子设备400移动到耳边时,关闭显示面板4061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器405还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元406用于显示由用户输入的信息或提供给用户的信息。显示单元406可包括显示面板4061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板4061。
用户输入单元407可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元407包括触控面板4071以及其他输入设备4072。触控面板4071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板4071上或在触控面板4071附近的操作)。触控面板4071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器410,接收处理器410发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板4071。除了触控面板4071,用户输入单元407还可以包括其他输入设备4072。具体地,其他输入设备4072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板4071可覆盖在显示面板4061上,当触控面板4071检测到在其上或附近的触摸操作后,传送给处理器410以确定触摸事件的类型,随后处理器410根据触摸事件的类型在显示面板4061上提供相应的视觉输出。虽然在图4中,触控面板4071与显示面板4061是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板4071与显示面板4061集成而实现电子设备的输入和输出功能,具体此处不做限定。
接口单元408为外部装置与电子设备400连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元408可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备400内的一个或多个元件或者可以用于在电子设备400和外部装置之间传输数据。
存储器409可用于存储软件程序以及各种数据。存储器409可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器409可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器410是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器409内的软件程序和/或模块,以及调用存储在存储器409内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器410可包括一个或多个处理单元;优选的,处理器410可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器410中。
电子设备400还可以包括给各个部件供电的电源411(比如电池),优选的,电源411可以通过电源管理***与处理器410逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。
另外,电子设备400包括一些未示出的功能模块,在此不再赘述。
优选的,本发明实施例还提供了一种电子设备,包括:处理器410,存储器409,存储在存储器409上并可在处理器410上运行的计算机程序,该计算机程序被处理器410执行时实现上述自动化实例加载方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述自动化实例加载方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (12)
1.一种自动化实例加载方法,其特征在于,所述方法包括:
确定目标应用中的功能模块对应的依赖关系;
对所述功能模块进行实例化,以得到所述功能模块对应的模块实例;
根据所述依赖关系将所述模块实例存储至预设数据库中,其中,所述模块实例的存储位置与所述依赖关系关联。
2.根据权利要求1所述的方法,其特征在于,在确定目标应用中的功能模块对应的依赖关系之前,还包括:
在所述功能模块对应的类中添加声明标志以及依赖关系标志,
其中,所述声明标志用于指示所述功能模块为可依赖模块,所述依赖关系标志用于指示所述功能模块的依赖关系。
3.根据权利要求2所述的方法,其特征在于,在对所述功能模块进行实例化之前,还包括:
在所述目标应用启动时,获取所述功能模块的所述声明与所述依赖关系;
判断所述声明的声明格式是否符合预设声明格式,以及与所述功能模块产生所述依赖关系的其他功能模块是否有效;
在所述声明的声明格式不符合预设声明格式,或与所述功能模块构成所述依赖关系的其他功能模块无效的情况下,进行异常提示;
在所述声明的声明格式符合预设声明格式,且与所述功能模块构成所述依赖关系的其他功能模块有效情况下,对所述功能模块进行实例化。
4.根据权利要求3所述的方法,其特征在于,根据所述依赖关系将所述模块实例存储至预设数据库中,包括:
确定与所述依赖关系对应的关键码值;
根据所述关键码值将所述模块实例存储至所述预设数据库中,其中,所述模块实例的存储位置与所述关键码值关联。
5.根据权利要求2所述的方法,其特征在于,在根据所述依赖关系将所述模块实例存储至预设数据库中之后,包括:
在所述目标应用当前调用的应用程序接口所属的模块不包括所述声明的情况下,继续执行所述目标应用的当前业务;
在所述目标应用当前调用的应用程序接口所属的模块包括所述声明的情况下,基于所述模块对应的依赖关系在所述预设数据库中调用所述模块对应的模块实例。
6.一种自动化实例加载装置,其特征在于,所述装置包括:
确定单元,用于确定目标应用中的功能模块对应的依赖关系;
处理单元,用于对所述功能模块进行实例化,以得到所述功能模块对应的模块实例;
存储单元,用于根据所述依赖关系将所述模块实例存储至预设数据库中,其中,所述模块实例的存储位置与所述依赖关系关联。
7.根据权利要求6所述的装置,其特征在于,还包括:
声明单元,用于在确定目标应用中的功能模块对应的依赖关系之前,在所述功能模块对应的类中添加声明标志以及依赖关系标志,
其中,所述声明标志用于指示所述功能模块为可依赖模块,所述依赖关系标志用于指示所述功能模块的依赖关系。
8.根据权利要求7所述的装置,其特征在于,还包括:
获取单元,用于在所述目标应用启动时,获取所述功能模块的所述声明与所述依赖关系;
判断单元,用于判断所述声明的声明格式是否符合预设声明格式,以及与所述功能模块产生所述依赖关系的其他功能模块是否有效;
提示单元,用于在所述声明的声明格式不符合预设声明格式,或与所述功能模块构成所述依赖关系的其他功能模块无效的情况下,进行异常提示;
所述处理单元,还用于在所述声明的声明格式符合预设声明格式,且与所述功能模块构成所述依赖关系的其他功能模块有效情况下,对所述功能模块进行实例化。
9.根据权利要求8所述的装置,其特征在于,所述存储单元包括:
第一存储模块,用于确定与所述依赖关系对应的关键码值;
第二存储模块,用于根据所述关键码值将所述模块实例存储至所述预设数据库中,其中,所述模块实例的存储位置与所述关键码值关联。
10.根据权利要求7所述的装置,其特征在于,还包括:
第一执行单元,用于在所述目标应用当前调用的应用程序接口所属的模块不包括所述声明的情况下,继续执行所述目标应用的当前业务;
第二执行单元,用于在所述目标应用当前调用的应用程序接口所属的模块包括所述声明的情况下,基于所述模块对应的依赖关系在所述预设数据库中调用所述模块对应的模块实例。
11.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的自动化实例加载方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的自动化实例加载方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010846095.4A CN112035180A (zh) | 2020-08-19 | 2020-08-19 | 一种自动化实例加载方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010846095.4A CN112035180A (zh) | 2020-08-19 | 2020-08-19 | 一种自动化实例加载方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112035180A true CN112035180A (zh) | 2020-12-04 |
Family
ID=73580249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010846095.4A Pending CN112035180A (zh) | 2020-08-19 | 2020-08-19 | 一种自动化实例加载方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112035180A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022134717A1 (zh) * | 2020-12-24 | 2022-06-30 | 完美世界(北京)软件科技发展有限公司 | 数据驱动的***功能加载方法、设备及存储介质 |
-
2020
- 2020-08-19 CN CN202010846095.4A patent/CN112035180A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022134717A1 (zh) * | 2020-12-24 | 2022-06-30 | 完美世界(北京)软件科技发展有限公司 | 数据驱动的***功能加载方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110752980B (zh) | 一种消息发送方法及电子设备 | |
CN107580147B (zh) | 一种通知消息的管理方法和移动终端 | |
CN109857494B (zh) | 一种消息提示方法及终端设备 | |
CN106502703B (zh) | 一种函数调用方法和装置 | |
CN109857297B (zh) | 信息处理方法及终端设备 | |
CN112379976A (zh) | 一种事件处理方法、装置、移动终端及存储介质 | |
CN111030917B (zh) | 一种消息显示方法及电子设备 | |
CN111931102A (zh) | 一种构建页面的方法、装置及*** | |
CN111090489A (zh) | 一种信息控制方法及电子设备 | |
CN108009031B (zh) | 一种应用程序的控制方法及移动终端 | |
CN112231144A (zh) | 一种数据处理方法、装置及电子设备 | |
CN110012152B (zh) | 一种界面显示方法及终端设备 | |
CN109815349B (zh) | 一种信息获取方法及终端设备 | |
CN106919458B (zh) | Hook目标内核函数的方法及装置 | |
CN111131607A (zh) | 一种信息共享方法、电子设备及计算机可读存储介质 | |
CN111273955A (zh) | 热修复插件优化方法、装置、存储介质及电子设备 | |
CN108089935B (zh) | 一种应用程序的管理方法及移动终端 | |
CN106339391B (zh) | 一种网页显示方法,及终端设备 | |
CN109145598B (zh) | 脚本文件的病毒检测方法、装置、终端及存储介质 | |
CN111130995B (zh) | 图像控制方法、电子设备及存储介质 | |
CN111200648B (zh) | 一种业务调用方法、装置、终端设备及存储介质 | |
CN112596980A (zh) | ios性能收集方法及装置、移动终端、计算机可读存储介质 | |
CN112035180A (zh) | 一种自动化实例加载方法、装置、电子设备及存储介质 | |
CN109828702B (zh) | 一种界面显示方法及终端设备 | |
CN108491225B (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 |