发明内容
有鉴于此,本发明提供一种软件产品应用方法,通过该方法,应用注解处理器获取目标软件产品应用在目标应用场景的各个目标特性代码文件,构建共性代码文件和各个特性代码文件之间的映射关系,实现该目标软件产品在目标应用场景下的应用,提高了共性代码文件中各个代码的复用率。
本发明还提供了一种软件产品应用装置,用以保证上述方法在实际中的实现及应用。
一种软件产品应用方法,包括:
当目标软件产品需要应用到预先指定的目标应用场景时,获取预先存储的所述目标软件产品对应的总代码文件,所述总代码文件包含共性代码文件及多个特性代码文件;所述共性代码文件包含在所有支持应用所述目标软件产品的应用场景下,所述目标软件产品对应的产品功能的多个主体代码;每个所述特性代码文件至少对应一个应用场景,所述特性代码文件包含其对应的应用场景下,依据产品功能执行对应的实现过程的多个特性代码;
确定所述目标应用场景对应的场景信息,并调用预先设置的注解处理器,依据所述场景信息,获取所述总代码文件中包含所述目标应用场景对应的各个特性代码文件;
将所述目标应用场景对应的各个特性代码文件确定为目标特性代码文件,并构建所述共性代码文件与各个所述目标特性代码文件的映射关系,获得所述目标软件产品对应的产品代码文件,并将所述产品代码文件保存至所述目标应用场景,以实现在所述目标应用场景中对所述目标软件产品的应用。
上述的方法,可选的,所述获取预先存储的所述目标软件产品对应的总代码文件,包括:
确定所述目标软件产品对应的产品名称;
在预先设置的代码文件数据库中,获取与所述产品名称相匹配的总代码文件。
上述的方法,可选的,存储所述目标软件产品对应的总代码文件的过程,还包括:
接收用户发送的支持应用所述目标软件产品的各个应用场景对应的配置文件,并调用预先设置的构建脚本,依据所述配置文件中的各个所述配置信息,生成每个所述应用场景的场景注解;
将每个所述应用场景的场景注解发送给所述用户,以使所述用户依据每个所述场景注解,构建所述目标软件产品对应的共性代码文件及各个特性代码文件;每个所述特性代码文件携带有其对应的应用场景的场景注解;
将所述目标软件产品对应的共性代码文件及各个所述特性代码文件,保存至预先设置的所述目标软件产品对总代码文件中,并将所述总代码文件存储至所述代码文件数据库中。
上述的方法,可选的,所述调用预先设置的注解处理器,依据所述场景信息,获取所述总代码文件中包含所述目标应用场景对应的各个特性代码文件,包括:
获取所述场景信息中包含的所述目标应用场景对应的场景标识符;
调用所述注解处理器,确定所述总代码文件中各个特性代码文件所携带的场景注解;
将所述场景标识符与各个所述场景注解进行匹配,并确定与所述场景标识符相匹配的场景注解为目标场景注解,获取所述总代码文件中携带有所述目标场景注解的各个特性代码文件。
上述的方法,可选的,所述构建所述共性代码文件与各个所述目标特性代码文件的映射关系,包括:
确定所述共性代码文件与各个所述目标特性代码文件对应的运行逻辑;
依据所述运行逻辑,在所述共性代码文件中生成与每个所述目标特性代码文件对应的特性接口;
构建与每个特性接口对应的目标特性代码文件的连接代码,并通过各个所述连接代码,将各个所述目标特性代码文件映射至所述共性代码文件中。
上述的方法,可选的,还包括:
运行所述产品代码文件中包含的各个主体代码和特性代码;
当运行至所述共性代码文件中的当前特性接口时,调用预先设置的反射技术获取所述当前特性接口对应的连接代码;
通过所述当前特性接口对应的连接代码,运行所述当前特性接口对应的目标特性代码文件中的各个特性代码。
上述的方法,可选的,还包括:
当接收到所述用户发送的所述目标软件产品对应的应用场景添加指令时,确定所述应用场景添加指令对应的待添加的应用场景;
生成所述待添加的应用场景的场景注解,并向所述用户发送所述待添加的应用场景的场景注解;
当接收到所述用户依据所述待添加的应用场景的场景注解发送的特性代码文件时,将所述待添加的应用场景对应的特性代码文件存储至所述总代码文件中。
一种软件产品应用装置,包括:
第一获取单元,用于当目标软件产品需要应用到预先指定的目标应用场景时,获取预先存储的所述目标软件产品对应的总代码文件,所述总代码文件包含共性代码文件及多个特性代码文件;所述共性代码文件包含在所有支持应用所述目标软件产品的应用场景下,所述目标软件产品对应的产品功能的主体代码;每个所述特性代码文件至少对应一个应用场景,所述特性代码文件包含其对应的应用场景下,依据产品功能执行对应的实现过程的特性代码;
第二获取单元,用于确定所述目标应用场景对应的场景信息,并调用预先设置的注解处理器,依据所述场景信息,获取所述总代码文件中包含所述目标应用场景对应的各个特性代码文件;
构建单元,用于将所述目标应用场景对应的各个特性代码文件确定为目标特性代码文件,并构建所述共性代码文件与各个所述目标特性代码文件的映射关系,获得所述目标软件产品对应的产品代码文件,并将所述产品代码文件保存至所述目标应用场景,以实现在所述目标应用场景中对所述目标软件产品的应用。
一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述的软件产品应用方法。
一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行上述的软件产品应用方法。
与现有技术相比,本发明包括以下优点:
本发明提供了一种软件产品应用方法,包括:当目标软件产品需要应用到预先指定的目标应用场景时,获取预先存储的所述目标软件产品对应的总代码文件,所述总代码文件包含共性代码文件及多个特性代码文件;所述共性代码文件包含在所有支持应用所述目标软件产品的应用场景下,所述目标软件产品对应的产品功能的多个主体代码;每个所述特性代码文件至少对应一个应用场景,所述特性代码文件包含其对应的应用场景下,依据产品功能执行对应的实现过程的多个特性代码;确定所述目标应用场景对应的场景信息,并调用预先设置的注解处理器,依据所述场景信息,获取所述总代码文件中包含所述目标应用场景对应的各个特性代码文件;将所述目标应用场景对应的各个特性代码文件确定为目标特性代码文件,并构建所述共性代码文件与各个所述目标特性代码文件的映射关系,获得所述目标软件产品对应的产品代码文件,并将所述产品代码文件保存至所述目标应用场景,以实现在所述目标应用场景中对所述目标软件产品的应用。应用本发明提供的方法,通过注解处理器获取目标软件产品应用在目标应用场景的各个目标特性代码文件,通过构建共性代码文件和各个特性代码文件之间的映射关系,实现该目标软件产品在目标应用场景下的应用,提高了共性代码文件中各个代码的复用率。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。
本发明实施例提供了一种软件产品应用方法,该方法可以应用在多种系统平台,其执行主体可以为计算机终端或各种移动设备中设置的对软件产品进行构建的构建系统,所述方法的方法流程图如图1所示,具体包括:
S101:当目标软件产品需要应用到预先指定的目标应用场景时,获取预先存储的所述目标软件产品对应的总代码文件;
其中,所述总代码文件包含共性代码文件及多个特性代码文件;所述共性代码文件包含在所有支持应用所述目标软件产品的应用场景下,所述目标软件产品对应的产品功能的多个主体代码;每个所述特性代码文件至少对应一个应用场景,所述特性代码文件包含其对应的应用场景下,依据产品功能执行对应的实现过程的多个特性代码;
在本发明实施例中,目标软件产品可以是应用软件、信息系统或者是在各种终端设备内集成的应用服务等。目标应用场景可以是不同型号的终端设备,也可以是同一个终端设备内所支持的产品应用平台等。用户可通过客户端或指定的设备页面,向软件产品的构建系统发送目标软件产品对应的构建指令。构建系统通过该构建指令确定待应用的目标软件产品的目标应用场景。当该目标软件产品需要应用到目标应用场景时,先获取预先存储的总代码文件。
具体的,总代码文件文件包含多个代码文件,分别为共性代码文件和多个特性代码文件。在共性代码文件中,包含目标软件产品对应的各个主体代码,用于实现目标软件产品的产品功能。该共性代码文件中的主体代码可以配置在所有可应用该目标软件产品的各个应用场景中。每个特性代码文件分别至少对应一个应用场景。对于目标软件产品的产品功能,由每个特性代码文件根据其对应的应用场景对该产品功能进行具体实现。
在一个示例中,参考图2,以消息提示功能为例,目标软件产品包含消息提示功能,该消息提示功能的在各个应用场景中的实现方法为弹出消息提示,在智能手机、智能手表和智能电视这三个应用场景中,对弹出消息提示的具体方法均不同。其中,由于消息提示功能对应的弹出消息提示方法为上述三个应用场景的共同实现方法,因此,共性代码文件中实现弹出消息提示方法对应的代码属于主体代码。而各个特性代码文件中实现的弹出消息提示的具体方法分别为:智能手机通过对话框消息提示,具体实现方法为客户端弹出对话框进行提示、智能手表通过通知栏消息提示,具体实现方法为穿戴设备推送通知提示,由于智能电视可以不用实现消息提示功能,因此智能电视在消息提示功能对应的具体实现方法为空。
在另一个示例中,由于每个特性代码文件可以对应多个应用场景,因此可以存在多个应用场景对产品功能的具体实现方法一致。参考图3,对于UI显示功能来说,在智能手机、智能手表和智能电视这三个应用场景下都可以共同实现文本展示的方法,但对于智能手机和智能手表来说,ui显示功能是通过小屏幕显示,具体实现方法为小字体文本展示;对于智能电视则通过大屏幕显示,具体方法为大字体文本展示。
S102:确定所述目标应用场景对应的场景信息,并调用预先设置的注解处理器,依据所述场景信息,获取所述总代码文件中包含所述目标应用场景对应的各个特性代码文件;
在本发明实施例中,目标应用场景的场景信息可以包括目标应用场景的场景类型、场景的基本特征以及基础应用信息等。该注解处理器是应用在软件产品对应的产品代码的构建过程中,对代码进行处理的工具。可以根据应用场景的场景信息,定位其对应的特性代码文件。由于总代码文件中包含了多个特性代码文件,每个特性代码文件至少对应一个应用场景,因此通过应用场景的场景信息,确定与该目标应用场景对应的特性代码文件。具体通过注解处理器对各个特性代码文件进行识别,依据该场景信息,确定该总代码文件中目标应用场景对应的特性代码文件,即,确定总代码文件中可以应用在目标应用场景的特性代码文件。
S103将所述目标应用场景对应的各个特性代码文件确定为目标特性代码文件,并构建所述共性代码文件与各个所述目标特性代码文件的映射关系,获得所述目标软件产品对应的产品代码文件,并将所述产品代码文件保存至所述目标应用场景,以实现在所述目标应用场景中对所述目标软件产品的应用。
在本发明实施例中,在获得目标应用场景对应的各个目标特性代码文件后,可以通过该注解处理器构建共性代码文件和各个目标特性代码文件之间的映射关系。其中,构建共性代码文件和各个目标特性代码文件之间的映射关系可以是,将各个目标特性代码文件按照预先设置的映射规则映射到共性代码文件中,获得目标软件产品对应产品代码文件。将该产品代码文件保存到目标应用场景中,使得在目标应用场景依据该产品代码文件,应用该目标软件产品,实现目标软件产品在目标应用场景中的应用。
具体的,注解处理器可以在构建期间生成多个的映射接口,并在确定目标应用场景对应的各个特性代码文件后,生成各个与每个特性代码文件一一对应的接口。例如,参考图4,目标软件产品对应的总代码文件中包含共性代码文件interface A以及两个特性代码文件class A1和class A2,其中,interface A可以应用于第一应用场景和第二应用场景中,第一应用场景对应的特性代码文件为class A1,第二应用场景对应的特性代码文件为class A2。当目标软件产品需要应用在第一应用场景和第二应用场景时,可以通过注解处理器构建interface A与class A1的映射关系,以及interface A与class A2的映射关系。
本发明提供的软件产品应用方法中,当目标软件产品需要应用到目标应用场景时,获取目标软件产品对应的总代码文件。其中,总代码文件中包含了共性代码文件和多个特性代码文件,共性代码文件包含的多个主体代码,用于实现目标软件产品在各个应用场景下产品功能的实现。特性代码文件包含多个特性代码,用于根据主体代码对产品功能的实现过程中,结合特性代码文件对应的应用场景的区别特征,对产品功能进一步细化的具体实现过程。在确定目标软件产品需要应用在目标应用场景后,调用注解处理器依据目标应用场景的场景信息,获取总代码文件中目标应用场景对应的各个特性代码文件。在将目标应用场景对应的各个特性代码文件确定为目标特性代码文件后,构建共性代码文件和各个目标特性代码文件之间的映射关系,获得的产品代码文件保存在该目标应用场景中,实现在该目标应用场景中应用该目标软件产品。
应用本发明实施例提供的方法,通过注解处理器,获取目标应用场景对应的各个目标特性代码文件,构建共性代码文件和各个特性代码文件之间的映射关系,实现该目标软件产品在目标应用场景下的应用,无需根据该目标应用场景重新编辑目标软件产品的产品代码,提高代码的复用率。
本发明实施例提供的方法,基于上述实施例S101的内容,所述获取预先存储的所述目标软件产品对应的总代码文件,具体可以包括:
确定所述目标软件产品对应的产品名称;
在预先设置的代码文件数据库中,获取与所述产品名称相匹配的总代码文件。
本发明实施例提供的方法中,在代码文件数据库中,存储多个软件产品的总代码文件,当需要获取任意一个软件产品对应的总代码文件时,仅根据该软件产品对应的产品名称,即可以从代码文件数据库中获得其对应的总代码文件。在本发明中,当目标软件产品需要应用在目标应用场景中时,可以预先获取目标软件产品对应的产品信息,通过该产品信息获得目标软件产品的产品名称,并在代码文件数据库中获取与目标软件产品的产品名称相匹配的总代码文件。本发明实施例提供的方法,可以通过总代码文件中包含的共性代码文件和各个特性代码文件,实现对目标软件产品的产品代码文件的构建,以提高代码的复用率。
本发明实施例提供的方法中,基于上述实施例的内容,目标软件产品对应的总代码文件已预先存储在代码文件数据库中,具体存储该总代码文件的过程如图5所示,具体还可以包括:
S201:接收用户发送的支持应用所述目标软件产品的各个应用场景对应的配置文件,并调用预先设置的构建脚本,依据所述配置文件中的各个所述配置信息,生成每个所述应用场景的场景注解;
在本发明实施例中,当用户确定该目标软件产品可以应用在多个应用场景下时,根据各个应用场景的场景特性,生成目标软件产品对应的配置文件。其中,该配置文件包含每个应用场景对应的配置信息,每个配置信息为其对应的应用场景的产品风味ProductFlavor,该Product Flavor为其对应的应用场景对应的配置渠道。通过调用预先设置的构建脚本,根据各个配置信息,生成每个应用场景的场景注解。
参考图6,配置文件中的ProductFlavor,表征了该目标软件产品可以应用于智能手机、智能手表和智能电视应用中,其中,id=’A’指向智能手机的应用场景,id=’B’指向智能手表的应用场景,id=’C’指向智能电视的应用场景。通过构建脚本生成每个应用场景的场景注解,获得智能手机的场景注解为“@智能手机应用”,智能手表的场景注解为“@智能手表应用”,智能电视的场景注解为“@智能电视应用”。
需要说明的是,本发明实施例中构建脚本具体可以是Gradle脚本,该Gradle脚本可以对软件产品的应用场景对应的配置渠道进行定义,通过Gradle插件自动生成代码,即生成每个应用场景的场景注解。
S202:将每个所述应用场景的场景注解发送给所述用户,以使所述用户依据每个所述场景注解,构建所述目标软件产品对应的共性代码文件及各个特性代码文件;
其中,每个所述特性代码文件携带有其对应的应用场景的场景注解;
在本发明实施例中,每个应用场景的场景注解可以是根据应用场景进行定义的标识符。在获得每个应用场景的场景注解后,将各个场景注解发送给用户。用户在接收到场景注解后,根据目标软件产品应用在各个应用场景中的各个产品功能的共同实现方法,编写目标软件产品对应的主体代码保存至共性代码文件中,再根据每个应用场景的区别特性,编写每个应用场景对应的特性代码,并分别保存至每个应用场景对应的特性代码文件中,同时在每个应用场景对应的特性代码文件中标注该应用场景的场景注解。
需要说明的是,由于共性代码文件中的各个主体代码可用于实现目标软件产品的各个产品共能,对每个产品功能来说,其应用在每个应用场景中的具体实现方式不尽相同,因此可以根据每个产品功能分别构建一个对应的特性代码文件,以实现每个产品功能在某一个特定场景上的具体应用。例如,目标软件产品可以实现消息提示功能和UI显示功能,消息提示功能和UI显示功能对应的主体代码保存在同一个共性代码文件中,而对于任意的应用场景,则可以针对消息提示功能和UI显示功能,分别构建消息提示功能在该应用场景下实现的特性代码文件,以及UI显示功能在该应用场景下实现的特性代码文件。
具体的,用户根据各个场景注解编写各个主体代码及各个特性代码,并将各个主体代码保存至共性代码文件,将各个特性代码保存至对应的特性代码文件,并在每个特性代码文件上标注其对应的应用场景的场景注解。用户将该共性代码文件及各个携带有场景注解的特性代码文件发送至构建系统中。
S203:将所述目标软件产品对应的共性代码文件及各个所述特性代码文件,保存至预先设置的所述目标软件产品对总代码文件中,并将所述总代码文件存储至所述代码文件数据库中。
在本发明实施例中,设置目标软件产品对应的总代码文件,在接收到用户发送的共性代码文件和各个特性代码文件后,将该共性代码文件以及各个特性保存在该总代码文件中,并将总代码文件保存在代码文件数据库中。当目标软件产品需要应用在任意的应用场景时,可以通过总代码文件获取共性代码文件及该应用场景对应的各个特性代码文件。
本发明实施例提供的软件产品应用方法中,在确定目标软件产品需要应用在目标应用场景之前。需要预先存储该目标软件产品对应的总代码文件。用户预先将支持应用该目标软件产品的各个应用场景对应的配置文件发送至构建系统中,构建系统在接收到配置文件后,调用构建脚本依据配置文件中的各个配置信息,生成每个应用场景的场景注解。将每个应用场景的场景注解发送给用户后,用户可对目标软件产品的各个主体代码和特性代码进行编写,以获得共性代码文件及各个特性代码文件。用户将共性代码文件及各个携带场景注解的特性代码文件发送至构建系统。构建系统在接收到共性代码文件及各个特性代码文件后,将其保存至目标软件产品对应的总代码文件中,并将总代码文件保存至代码文件数据库中。本发明实施例提供的方法中,可以保证需要在目标应用场景应用目标软件产品时,可直接通过总代码文件中的共性代码文件及各个特性代码文件,获得可以实现在目标应用场景中应用该目标软件产品的产品代码文件,以提高代码的复用率。
具体的,在保存目标软件产品对应的总代码文件之后,若用户还需要增加新的可以应用该目标软件产品的应用场景时,具体还可以包括:
当接收到所述用户发送的所述目标软件产品对应的应用场景添加指令时,确定所述应用场景添加指令对应的待添加的应用场景;
生成所述待添加的应用场景的场景注解,并向所述用户发送所述待添加的应用场景的场景注解;
当接收到所述用户依据所述待添加的应用场景的场景注解发送的特性代码文件时,将所述待添加的应用场景对应的特性代码文件存储至所述总代码文件中。
本发明实施例提供的方法,在将目标软件产品对应的总代码文件保存至代码文件数据库后,若需要添加新的应用场景,用户可向构建系统发送场景添加指令。当构建系统接收到场景添加指令时,确定该场景添加指令对应的待添加的应用场景,并生成待添加的应用场景的场景注解。同理,生成待添加的应用场景的场景注解的过程可以通过上述实施步骤S201中的构建脚本实现,该构建脚本具体可以是Gradle脚本。向用户发送该待添加的应用场景的场景注解,用户接收到待添加的应用场景的场景注解后,依据该待添加的应用场景构建目标软件产品的特性代码文件,并将待添加的应用场景的场景注解标注在该特性代码文件中。当接收到用户发送携带有待添加的应用场景的场景注解的特性代码文件后,将该携带有待添加的应用场景的场景注解的特性代码文件存储至总代码文件中。本发明实施例提供的方法,可保证在确定有新的应用场景时,仅需添加对应的特性代码文件即可,无需根据该新的应用场景重新编写该目标软件产品对应的代码,提高代码复用率。
需要说明的是,Gradle脚本生成应用场景的场景注解的过程,主要是通过DSL(Domain Specific Language)语法实现,具体的,还可以是通过XML、JSON或普通的文本文档实现生成场景注解的过程。具体的,除了使用Gradle脚本生成场景注解之外,还可以是用户手工编写场景注解。
本发明实施例提供的方法,基于上述实施例,调用预先设置的注解处理器,依据所述场景信息,获取所述总代码文件中包含所述目标应用场景对应的各个特性代码文件,具体可以包括:
获取所述场景信息中包含的所述目标应用场景对应的场景标识符;
调用所述注解处理器,确定所述总代码文件中各个特性代码文件所携带的场景注解;
将所述场景标识符与各个所述场景注解进行匹配,并确定与所述场景标识符相匹配的场景注解为目标场景注解,获取所述总代码文件中携带有所述目标场景注解的各个特性代码文件。
本发明实施例提供的软件产品应用方法中,获取该场景信息中包含的场景标识符,其中,该场景标识符与各个场景注解的表现形式一致,例如,场景标识符为“@智能手机应用”,则与其相匹配的场景注解也为“@智能手机应用”。在存储总代码文件的过程中,已将各个应用场景的场景注解发送给用户,当总代码文件在存储之后,用户需要在任意一个应用场景应用该目标软件产品时,也可根据该应用场景的场景注解以场景标识符的形式发送至构建系统。在获取总代码文件后,需调用注解处理器确定各个特性代码文件所携带的场景注解,将该场景标识符与各个场景注解进行匹配,若场景标识符与任意一个场景注解匹配一致,则与该场景注解相匹配的场景标识符对应的特性代码文件,为该目标应用场景对应的特性代码文件。
需要说明的是,该注解处理器在使用过程中,可以对每个场景注解进行定位,确定总代码文件中与目标应用场景对应的各个特性代码文件。
应用本发明实施例提供的方法,通过注解处理器有效识别各个场景注解,实现目标软件产品的定制化,提高代码复用率。
本发明实施例提供的方法,基于上述步骤S103的内容,在获得共性代码文件及各个特性代码文件后,需构建共性代码文件与各个所述目标特性代码文件的映射关系的过程,具体可以包括:
确定所述共性代码文件与各个所述目标特性代码文件对应的运行逻辑;
依据所述运行逻辑,在所述共性代码文件中生成与每个所述目标特性代码文件对应的特性接口;
构建与每个特性接口对应的目标特性代码文件的连接代码,并通过各个所述连接代码,将各个所述目标特性代码文件映射至所述共性代码文件中。
本发明实施例提供的方法,在获得共性代码文件及各个目标特性代码文件后,确定目标软件产品对应的运行逻辑,即在目标应用场景中应用该目标软件产品时,各个代码的运行过程。根据该目标软件产品对应的运行逻辑,在共性代码文件中生成特性接口,其中,生成特性接口的过程可以由上述实施例提及的注解处理器实现,注解处理器可以根据共性代码文件中的特性接口,选取与该目标应用场景对应的特性代码文件。为使共性代码文件的主体代码在运行的过程中与各个特性代码文件中的特性代码衔接,可根据每个特性接口,构建对应的目标特性文件的连接代码,通过连接代码将各个目标特性代码文件映射到共性代码文件中,获得目标软件产品应用在目标应用场景中的产品代码文件。
可以理解的是,在共性代码文件中的主体代码运行过程中,需要与各个目标特性代码对应衔接,以实现在主体代码运行到当前产品功能时,根据目标应用场景的场景特性,运行当前产品功能在该目标应用场景的具体实现过程,即运行当前产品功能对应特性代码。通过特性接口和连接代码,实现从主体代码到特性代码的运行过程。
应用本发明实施例提供的方法,通过特性接口和连接代码,实现目标软件产品在目标应用场景的应用。
具体的,在获得产品代码文件后,可以对该产品代码文件中包含的各个主体代码和各个特性代码进行运行,实现目标软件产品的应用,其运行过程具体还包括:
运行所述产品代码文件中包含的各个主体代码和特性代码;
当运行至所述共性代码文件中的当前特性接口时,调用预先设置的反射技术获取所述当前特性接口对应的连接代码;
通过所述当前特性接口对应的连接代码,运行所述当前特性接口对应的目标特性代码文件中的各个特性代码。
本发明提供的软件产品应用方法,在目标软件产品的产品代码文件中各个主体代码和特性代码运行过程中,由于共性代码文件中设置了特性接口,因此在运行共性代码文件中的主体代码的过程中会运行至当前特性接口,当运行到当前特性接口时,可以调用预先设置的反射技术获取当前特性接口对应的连接代码。其中,该反射技术用于对应的映射关系类,即与当前特性接口对应的目标特性代码文件,通过运行连接代码将共性代码文件运行过程切换至目标特性代码文件中,实现对目标特性代码文件中各个特性代码的运行。本发明实施例提供的方法,可以通过反射技术,将各个代码的运行过程从共性代码文件切换至目标特性代码文件,实现该目标软件产品在目标应用场景中特定的应用过程。
为了更好体现上述实施例提供的软件产品应用方法,以一个具体的直播软件为例,对本发明提供具体的实施方法:
确定该直播软件可以应用在友商平台A、友商平台B和友商平台C三个直播平台中,在根据每个友商的直播平台构建对应的直播软件时,先根据用户发送的配置文件,分别构建友商平台A、友商平台B和友商平台C的场景注解“@友商A”、“@友商B”和“@友商C”。当该直播软件在三个友商平台中实现过程一致,但是在每个友商平台中分享直播视频的功能所对应的具体实现方式不同时,比如:友商平台A在分享直播视频时,该直播视频需要携带“友商A”的logo,友商平台B在分享直播视频时,该直播视频需要携带“友商B”的logo,以及友商平台C在分享直播视频时,该直播视频需要携带“友商C”的logo,用户需根据三个友商平台的场景注解,构建分享直播视频功能的主体代码保存至共性代码文件中。根据场景注解“@友商A”构建可以实现分享直播视频携带“友商A”的logo的特性代码,保存至友商平台A对应的特性代码文件A中;根据场景注解“@友商B”构建可以实现分享直播视频携带“友商B”的logo特性代码,保存至友商平台B对应的特性代码文件B中;根据场景注解“@友商C”构建可以实现分享直播视频携带“友商C”的logo特性代码,保存至友商平台C对应的特性代码文件C中。参考图7,当需要将该直播软件应用在友商平台A、友商平台B和友商平台C时,通过定制构建的方式获得定制化的应用在友商平台A的直播软件A、应用在友商平台B的直播软件B以及应用在友商平台C的直播软件C。具体的,当需要在友商平台A应用直播软件A时,通过注解处理器获取共性代码文件和特性代码文件A,构建共性代码文件和特性代码文件A的映射关系,获得直播软件A对应的产品代码文件A。当直播软件A在应用过程中,要执行分享直播视频的功能,则执行特性代码文件A中的特性代码,以使获得的直播视频中携带“友商A”的logo。其中,实现构建直播软件B和直播软件C的过程与直播软件A的过程一致,此处将不复赘述。
上述各个实施例的具体实施过程及其衍生方式,均在本发明的保护范围之内。
与图1所述的方法相对应,本发明实施例还提供了一种软件产品应用装置,用于对图1中方法的具体实现,本发明实施例提供的软件产品应用装置可以应用计算机终端或各种移动设备中,其结构示意图如图8所示,具体包括:
第一获取单元301,用于当目标软件产品需要应用到预先指定的目标应用场景时,获取预先存储的所述目标软件产品对应的总代码文件,所述总代码文件包含共性代码文件及多个特性代码文件;所述共性代码文件包含在所有支持应用所述目标软件产品的应用场景下,所述目标软件产品对应的产品功能的多个主体代码;每个所述特性代码文件至少对应一个应用场景,所述特性代码文件包含其对应的应用场景下,依据产品功能执行对应的实现过程的多个特性代码;
第二获取单元302,用于确定所述目标应用场景对应的场景信息,并调用预先设置的注解处理器,依据所述场景信息,获取所述总代码文件中包含所述目标应用场景对应的各个特性代码文件;
构建单元303,用于将所述目标应用场景对应的各个特性代码文件确定为目标特性代码文件,并构建所述共性代码文件与各个所述目标特性代码文件的映射关系,获得所述目标软件产品对应的产品代码文件,并将所述产品代码文件保存至所述目标应用场景,以实现在所述目标应用场景中对所述目标软件产品的应用。
本发明实施例提供的软件产品应用装置,当目标软件产品需要应用到目标应用场景中时,由第一获取单元获取该目标软件产品的总代码文件,再由第二获取单元获取依据目标应用场景对应的场景信息,通过调用注解处理器获取共性代码文件及各个目标特性代码文件,最终由构建单元构建共性代码文件及各个目标特性代码文件的映射关系,获得的产品代码文件保存至目标应用场景,实现在该应用场景对该目标软件产品的应用。本发明提供的装置,可以通过注解处理器获取目标应用场景中对应的特性代码文件,提高代码的复用率,进一步提高对软件产品开发的效率。
本发明实施例提供的装置,所述第一获取单元301,包括:
第一确定子单元,用于确定所述目标软件产品对应的产品名称;
第一获取子单元,用于在预先设置的代码文件数据库中,获取与所述产品名称相匹配的总代码文件。
本发明实施例提供的装置,还包括:
生成单元,用于接收用户发送的支持应用所述目标软件产品的各个应用场景对应的配置文件,并调用预先设置的构建脚本,依据所述配置文件中的各个所述配置信息,生成每个所述应用场景的场景注解;
发送单元,用于将每个所述应用场景的场景注解发送给所述用户,以使所述用户依据每个所述场景注解,构建所述目标软件产品对应的共性代码文件及各个特性代码文件;每个所述特性代码文件携带有其对应的应用场景的场景注解;
存储单元,用于将所述目标软件产品对应的共性代码文件及各个所述特性代码文件,保存至预先设置的所述目标软件产品对总代码文件中,并将所述总代码文件存储至所述代码文件数据库中。
本发明实施例提供的装置,所述第二获取单元302,包括:
第二获取子单元,用于获取所述场景信息中包含的所述目标应用场景对应的场景标识符;
第二确定子单元,用于调用所述注解处理器,确定所述总代码文件中各个特性代码文件所携带的场景注解;
匹配子单元,用于将所述场景标识符与各个所述场景注解进行匹配,并确定与所述场景标识符相匹配的场景注解为目标场景注解,获取所述总代码文件中携带有所述目标场景注解的各个特性代码文件。
本发明实施例提供的装置,所述构建单元303,包括:
第三确定子单元,用于确定所述共性代码文件与各个所述目标特性代码文件对应的运行逻辑;
生成子单元,用于依据所述运行逻辑,在所述共性代码文件中生成与每个所述目标特性代码文件对应的特性接口;
构建子单元,用于构建与每个特性接口对应的目标特性代码文件的连接代码,并通过各个所述连接代码,将各个所述目标特性代码文件映射至所述共性代码文件中。
本发明实施例提供的装置,还包括:
运行单元,用于运行所述产品代码文件中包含的各个主体代码和特性代码;当运行至所述共性代码文件中的当前特性接口时,调用预先设置的反射技术获取所述当前特性接口对应的连接代码;通过所述当前特性接口对应的连接代码,运行所述当前特性接口对应的目标特性代码文件中的各个特性代码。
本发明实施例提供的装置,还包括:
添加单元,用于当接收到所述用户发送的所述目标软件产品对应的应用场景添加指令时,确定所述应用场景添加指令对应的待添加的应用场景;生成所述待添加的应用场景的场景注解,并向所述用户发送所述待添加的应用场景的场景注解;当接收到所述用户依据所述待添加的应用场景的场景注解发送的特性代码文件时,将所述待添加的应用场景对应的特性代码文件存储至所述总代码文件中。
以上本发明实施例公开的软件产品应用装置中各个单元和子单元的具体工作过程,可参见本发明上述实施例公开的软件产品应用方法中的对应内容,这里不再进行赘述。
本发明实施例还提供了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述软件产品应用方法。
本发明实施例还提供了一种电子设备,其结构示意图如图9所示,具体包括存储器401,以及一个或者一个以上的指令402,其中一个或者一个以上指令402存储于存储器401中,且经配置以由一个或者一个以上处理器403执行所述一个或者一个以上指令402进行以下操作:
当目标软件产品需要应用到预先指定的目标应用场景时,获取预先存储的所述目标软件产品对应的总代码文件,所述总代码文件包含共性代码文件及多个特性代码文件;所述共性代码文件包含在所有支持应用所述目标软件产品的应用场景下,所述目标软件产品对应的产品功能的多个主体代码;每个所述特性代码文件至少对应一个应用场景,所述特性代码文件包含其对应的应用场景下,依据产品功能执行对应的实现过程的多个特性代码;
确定所述目标应用场景对应的场景信息,并调用预先设置的注解处理器,依据所述场景信息,获取所述总代码文件中包含所述目标应用场景对应的各个特性代码文件;
将所述目标应用场景对应的各个特性代码文件确定为目标特性代码文件,并构建所述共性代码文件与各个所述目标特性代码文件的映射关系,获得所述目标软件产品对应的产品代码文件,并将所述产品代码文件保存至所述目标应用场景,以实现在所述目标应用场景中对所述目标软件产品的应用。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现。
为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。