软件开发包的编译方法、装置、软件开发系统及服务器
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种软件开发包的编译方法、装置、软件开发系统及服务器。
背景技术
在软件开发包的编译过程中,其中的一部分工作是对可编程染色编译组件进行编译,以使得后续软件编译完成之后可以调用高性能图形处理器的可编程染色器完成染色图形渲染的工作。传统方案中,针对某一个软件开发包,通常是针对固有的某个软件业务对其可编程染色编译组件进行编译后,生成签名开发包后使用。然而,经发明人研究发现,在实际的应用场景中,即便是同一个软件开发包,对于不同的平台不同的开发者而言,可能存在不同的软件业务需求,因此按照传统方案则无法很好地适配不同的软件业务需求,导致软件使用过程中针对具体的软件业务达到较好的渲染效果,甚至可能存在渲染出错的情况,严重影响用户体验。
发明内容
有鉴于此,本申请的目的在于提供一种软件开发包的编译方法、装置、软件开发系统及服务器,针对具体的具体的目标软件业务随时对目标软件开发包的可编程染色编译组件进行编译更新,从而可以很好地适配不同的软件业务需求,提高软件使用过程中针对具体的目标软件业务的渲染效果,减少渲染出错的情况。
第一方面,本申请提供一种软件开发包的编译方法,应用于服务器,所述服务器与多个软件开发终端通信连接,所述方法包括:
根据所述多个软件开发终端针对目标软件开发包的可编程染色编译组件的待编译信息,建立所述目标软件开发包的可编程染色编译信息,所述可编程染色编译信息用于反映所述目标软件开发包中进行图像渲染时的染色编程控制信息;
根据目标软件业务所对应的编译脚本对所述目标软件开发包的可编程染色编译组件的可编程染色编译信息进行编译更新,获得所述目标软件开发包关联于所述目标软件业务的可编程染色关联编译信息;
根据所述目标软件开发包的可编程染色关联编译信息确定所述目标软件开发包的业务染色渲染参数信息,所述业务染色渲染参数信息反映了业务染色节点与染色控制组件之间的渲染控制关系,所述业务染色节点包括与所述染色控制组件的相关控制系数匹配的染色属性;
根据所述目标软件开发包的业务染色渲染参数信息,构建目标软件开发包的编译发布安装包,并将所述编译发布安装包发送给所述软件开发终端进行签名验证。
在第一方面的一种可能的设计中,所述根据所述多个软件开发终端针对目标软件开发包的可编程染色编译组件的待编译信息,建立所述目标软件开发包的可编程染色编译信息的步骤,包括:
获取所述待编译信息中每个待编译项目的第一待编译项目业务特征,其中,所述第一待编译项目业务特征用于表征该待编译项目的编译字节码;
对所述第一待编译项目业务特征进行特征识别,获得第一染色节点特征信息和与第一染色节点特征信息对应的染色节点控制特征信息;
获取该待编译项目的第一图形化控件信息和图形控件互动信息,提取所述第一图形化控件信息的控件组件信息,所述第一图形化控件信息的控件组件信息包括指定图形控件组件;
获取预设历史待编译项目的指定图形控件组件,并根据该指定图形控件组件调整所述第一图形化控件信息的指定图形控件组件,使所述第一图形化控件信息中各个指定图形控件组件之间的渲染逻辑与所述预设历史待编译项目中各个指定图形控件组件之间的渲染逻辑匹配;
根据所述第一图形化控件信息中调整后的各个指定图形控件组件得到第二图形化控件信息的控件组件信息,并根据所述第二图形化控件信息的控件组件信息生成第二图形化控件信息;
根据所述图形控件互动信息和所述第二图形化控件信息的控件组件信息,查找得到与所述图形控件互动信息相匹配的染色节点控制特征信息以及与所述染色节点控制特征信息对应的第一染色节点特征信息,根据所述第二图形化控件信息的控件组件信息对与所述染色节点控制特征信息对应的第一染色节点特征信息进行调整,获得第二染色节点特征信息;
将所述第二染色节点特征信息与所述第二图形化控件信息进行映射关联处理,以建立所述目标软件开发包的可编程染色编译信息。
在第一方面的一种可能的设计中,所述服务器预先配置有目标软件业务的业务特征集合数据,以及所述业务特征集合数据中多个业务特征数据分别对应的初始业务渲染边界范围和渲染扩展范围;
所述根据目标软件业务所对应的编译脚本对所述目标软件开发包的可编程染色编译组件的可编程染色编译信息进行编译更新,获得所述目标软件开发包关联于所述目标软件业务的可编程染色关联编译信息的步骤,包括:
在所述多个业务特征数据中指定的至少部分业务特征数据对应的初始业务渲染边界范围内,根据所述目标软件业务所对应的编译脚本,偏移所述初始业务渲染边界范围的业务渲染边界,并计算指定的所述业务特征数据中在当前业务渲染边界位置处的业务特征子数据对应的渲染程度和渲染持续深度;其中,所述偏移的单位范围为指定的所述业务特征数据所对应的预设单位间隔;
根据所述当前业务渲染边界位置处的业务特征子数据对应的渲染程度和渲染持续深度,分别确定所述指定的所述业务特征数据对应的渲染程度曲线和渲染持续深度曲线;
确定所述渲染程度曲线的渲染程度极大值点和渲染持续深度曲线的渲染持续深度极大值点,并计算所述渲染程度曲线中在所述渲染程度极大值点之前的时间样点处的渲染程度曲线斜率,以及计算所述渲染持续深度曲线中在所述渲染持续深度极大值点之前的时间样点处的渲染持续深度曲线斜率;其中,渲染程度曲线斜率或渲染持续深度曲线斜率分别与时间样点一一对应;
将多个所述渲染程度曲线斜率和多个所述渲染持续深度曲线斜率中斜率最大的曲线斜率对应的时间样点的可编程染色项目作为所述指定的所述业务特征数据的可编程染色项目,并基于所述多个业务特征数据分别对应的渲染扩展范围,确定指定的所述可编程染色项目对应的渲染速度;
当指定的所述可编程染色项目对应的渲染速度在预设渲染速度范围内,将指定的所述可编程染色项目加入第一可编程染色项目序列;
从所述多个业务特征数据分别对应的渲染扩展范围中获取所述第一可编程染色项目序列中的多个第一可编程染色项目分别对应的渲染扩展范围;其中,所述业务特征数据、可编程染色项目、渲染扩展范围和渲染速度一一对应;
当所述第一可编程染色项目序列中相关联两个可编程染色项目的第一可编程染色项目对应的渲染速度之间的差值的绝对值小于预设速度阈值时,将所述相关联两个可编程染色项目的第一可编程染色项目分别对应的图层位置作为同一图层位置,并将属于同一图层位置的第一可编程染色项目构成的集合作为一个第一可编程染色项目子集,得到所述第一可编程染色项目序列中的多个第一可编程染色项目子集;
分别对所述多个第一可编程染色项目子集的第一可编程染色项目对应的渲染扩展范围和渲染速度进行拟合处理,得到多个渲染拟合曲线,并分别确定所述多个渲染拟合曲线中相关联两个渲染拟合曲线之间的交叉区域;
当所述交叉区域对应的渲染速度与指定相关联交叉区域对应的渲染速度之间的差值的绝对值小于所述预设速度阈值时,将所述交叉区域对应的可编程染色项目作为新的第一可编程染色项目,得到新的第一可编程染色项目序列,生成所述新的第一可编程染色项目序列对应的多个新的渲染拟合曲线;其中,所述指定相关联交叉区域对应的渲染速度表示与所述交叉区域对应的可编程染色项目相关联的可编程染色项目的第一可编程染色项目对应的渲染速度,并根据所述多个新的渲染拟合曲线确定所述多个业务特征数据分别对应的目标业务渲染边界范围,并针对所述多个业务特征数据中指定的所述业务特征数据,获取所述指定的所述业务特征数据中在所述指定的所述业务特征数据对应的目标业务渲染边界范围内的第一指定业务特征子数据;
计算所述第一指定业务特征子数据中的多个时间样点分别对应的第一业务渲染边界的特征向量,并将多个所述第一业务渲染边界的特征向量中数值最大的第一业务渲染边界的特征向量对应的时间样点的可编程染色项目作为所述指定的所述业务特征数据的第二可编程染色项目;
基于所述指定的所述业务特征数据的第二可编程染色项目,确定第二可编程染色项目序列,当所述第二可编程染色项目序列中相关联业务特征数据的可编程染色项目之间的时间差的绝对值大于或等于预设时差阈值时,将所述目标业务渲染边界范围作为新的初始业务渲染边界范围,并生成所述多个业务特征数据对应的新的目标业务渲染边界范围以及新的第二可编程染色项目序列,直至所述新的第二可编程染色项目序列中相关联业务特征数据的可编程染色项目之间的时间差的绝对值小于预设时差阈值或者迭代次数等于预设迭代次数,并将所述新的第二可编程染色项目序列重新作为所述业务特征集合数据的第二可编程染色项目序列;
基于所述第二可编程染色项目序列确定所述多个业务特征数据分别对应的最终业务渲染边界范围,并基于所述最终业务渲染边界范围确定所述多个业务特征数据的目标可编程染色项目序列;
根据确定的所述多个业务特征数据的目标可编程染色项目序列对所述目标软件开发包的可编程染色编译组件的可编程染色编译信息中对应的目标可编程染色项目进行编译更新,获得所述目标软件开发包关联于所述目标软件业务的可编程染色关联编译信息。
在第一方面的一种可能的设计中,所述基于所述最终业务渲染边界范围确定所述多个业务特征数据的目标可编程染色项目序列的步骤,包括:
针对所述多个业务特征数据中指定的所述业务特征数据,获取所述指定的所述业务特征数据中在所述指定的所述业务特征数据对应的最终业务渲染边界范围内的第二指定业务特征子数据;
计算所述第二指定业务特征子数据中的多个时间样点分别对应的第二业务渲染边界的特征向量;
将多个所述第二业务渲染边界的特征向量中数值最大的第二业务渲染边界的特征向量对应的时间样点的可编程染色项目作为所述指定的所述业务特征数据的第三可编程染色项目,并基于所述指定的所述业务特征数据的第三可编程染色项目,确定所述第三可编程染色项目序列;
将所述第三可编程染色项目序列中确定为所述目标可编程染色项目序列。
在第一方面的一种可能的设计中,所述根据所述目标软件开发包的可编程染色关联编译信息确定所述目标软件开发包的业务染色渲染参数信息的步骤,包括:
对于所述可编程染色关联编译信息中的各个不同渲染类型的可编程染色项目中的每个可编程染色项目,获取模拟渲染画面模拟该可编程染色项目的染色场景信息,所述染色场景信息包括图形参数度信息和特效参数度信息;
根据所述染色场景信息获取所述模拟渲染画面中每个渲染画布的子特效参数度信息和子图形参数度信息,并对所述模拟渲染画面中的每个渲染画布,根据该渲染画布的子特效参数度信息,确定该渲染画布的特效帧;
根据所述模拟渲染画面的各渲染画布的特效帧确定第一特效序列、第二特效序列和第三特效序列,所述第一特效序列中的特效单位为用于表征编程关键帧的基础特效浮点的特效,所述第二特效序列中的特效单位为用于表征编程关键帧的扩展特效浮点的特效,所述第三特效序列中的特效单位为用于表征编程关键帧的复合特效浮点的特效;
分别确定所述第一特效序列、所述第二特效序列与所述第三特效序列中特效单位的数量,若至少一个特效序列中的特效单位数量为零,则确认不存在所述编程关键帧;
若每个特效序列中的特效单位数量均为设定数量,则将所述第一特效序列、所述第二特效序列和所述第三特效序列中的特效单位分别作为所述编程关键帧的三个特效,从而得到所述编程关键帧;
若至少一个特效序列中的特效单位的数量大于所述设定数量,则根据所述第一特效序列、所述第二特效序列和所述第三特效序列中的特效单位,得到至少两个编程关键帧,确定所述至少两个编程关键帧中,每个编程关键帧的渲染参数和特效的渲染等级,并对于所述至少两个编程关键帧中的每个渲染画布的特效帧,确定所述编程关键帧的每个特效的最大图形参数度;
判断所述模拟渲染画面的关键渲染区的特效参数度是否对应于该编程关键帧;
当所述模拟渲染画面的关键渲染区的特效参数度对应于该编程关键帧时,从所述编程关键帧的每个特效的最大图形参数度中确定出最大值,将所述最大值作为关键渲染区的特效参数度下所述模拟渲染画面的各渲染画布的最大图形参数度;
对于所述至少两个编程关键帧中的每个编程关键帧,对该编程关键帧的渲染参数、特效的渲染等级以及关键渲染区的特效参数度下所述模拟渲染画面的各渲染画布的最大图形参数度进行加权处理,得到加权结果,并从所有加权结果中确定出加权参数度最大的加权结果,将与所述加权参数度最大的加权结果对应的编程关键帧作为目标编程关键帧;
当存在目标编程关键帧时,对于每个渲染画布,根据该渲染画布对应于该目标编程关键帧的子特效参数度信息和子图形参数度信息,生成该渲染画布的业务染色编译参数,根据各个渲染画布的业务染色编译参数汇总得到业务染色编译参数集合;
根据每个可编程染色项目的业务染色编译参数集合进行汇总得到所述目标软件开发包的业务染色渲染参数信息。
在第一方面的一种可能的设计中,所述根据该渲染画布对应于该目标编程关键帧的子特效参数度信息和子图形参数度信息,生成该渲染画布的业务染色编译参数的步骤,包括:
将该渲染画布对应于该目标编程关键帧的子特效参数度信息和子图形参数度信息进行融合,得到融合参数度信息,其中,所述融合参数度信息包括多个融合参数节点的染色参数;
确定所述融合参数度信息中每个融合参数节点以及与所述融合参数节点相关联的融合参数节点组成的第一业务染色板块,并确定所述第一业务染色板块中所有融合参数节点值的平均值;
确定第二业务染色板块中所有融合参数节点值的平均值,和第三业务染色板块中所有融合参数节点值的平均值;其中,所述第二业务染色板块与所述第一业务染色板块相关联且位于所述第一业务染色板块的同一图层位置,所述第三业务染色板块与所述第一业务染色板块相关联且位于所述第一业务染色板块的不同图层位置;所述第二业务染色板块、所述第三业务染色板块和所述第一业务染色板块包含相同个数的融合参数节点;
确定所述第二业务染色板块中所有融合参数节点值平均值与所述第一业务染色板块中所有融合参数节点值的平均值的差值,以及确定所述第三业务染色板块中所有融合参数节点值平均值与所述第一业务染色板块中所有融合参数节点值的平均值的差值,并将最大的差值作为所述融合参数节点的梯度值;
根据所述该渲染画布中每个融合参数节点的梯度值,生成所述该渲染画布对应的梯度画布,并对所述梯度画布中的冗余融合参数节点进行过滤处理;
对满足过滤处理条件的融合参数节点进行聚类操作,确定多个聚类业务染色板块,并根据所述多个聚类业务染色板块中业务染色节点与染色控制组件之间的渲染控制关系以及所有业务染色节点的融合参数节点值,生成该渲染画布的业务染色编译参数。
在第一方面的一种可能的设计中,所述根据所述目标软件开发包的业务染色渲染参数信息,构建目标软件开发包的编译发布安装包的步骤,包括:
将所述目标软件开发包的业务染色渲染参数信息添加到所述目标软件开发包中的可编程染色编译组件的业务染色编译目录中,得到更新后的目标软件开发包;
将所述编译发布安装包发送给所述软件开发终端进行签名验证。
第二方面,本申请实施例还提供一种软件开发包的编译装置,应用于服务器,所述服务器与多个软件开发终端通信连接,所述装置包括:
建立模块,用于根据所述多个软件开发终端针对目标软件开发包的可编程染色编译组件的待编译信息,建立所述目标软件开发包的可编程染色编译信息,所述可编程染色编译信息用于反映所述目标软件开发包中进行图像渲染时的染色编程控制信息;
编译更新模块,用于根据目标软件业务所对应的编译脚本对所述目标软件开发包的可编程染色编译组件的可编程染色编译信息进行编译更新,获得所述目标软件开发包关联于所述目标软件业务的可编程染色关联编译信息;
确定模块,用于根据所述目标软件开发包的可编程染色关联编译信息确定所述目标软件开发包的业务染色渲染参数信息,所述业务染色渲染参数信息反映了业务染色节点与染色控制组件之间的渲染控制关系,所述业务染色节点包括与所述染色控制组件的相关控制系数匹配的染色属性;
构建模块,用于根据所述目标软件开发包的业务染色渲染参数信息,构建目标软件开发包的编译发布安装包,并将所述编译发布安装包发送给所述软件开发终端进行签名验证。
第三方面,本申请实施例还提供一种软件开发系统,所述软件开发系统包括服务器一级与所述服务器通信连接的多个软件开发终端;
所述多个软件开发终端向所述服务器发送针对目标软件开发包的可编程染色编译组件的待编译信息;
所述服务器,用于根据所述多个软件开发终端针对目标软件开发包的可编程染色编译组件的待编译信息,建立所述目标软件开发包的可编程染色编译信息,所述可编程染色编译信息用于反映所述目标软件开发包中进行图像渲染时的染色编程控制信息;
所述服务器,用于根据目标软件业务所对应的编译脚本对所述目标软件开发包的可编程染色编译组件的可编程染色编译信息进行编译更新,获得所述目标软件开发包关联于所述目标软件业务的可编程染色关联编译信息;
所述服务器,用于根据所述目标软件开发包的可编程染色关联编译信息确定所述目标软件开发包的业务染色渲染参数信息,所述业务染色渲染参数信息反映了业务染色节点与染色控制组件之间的渲染控制关系,所述业务染色节点包括与所述染色控制组件的相关控制系数匹配的染色属性;
所述服务器,用于根据所述目标软件开发包的业务染色渲染参数信息,构建目标软件开发包的编译发布安装包,并将所述编译发布安装包发送给所述软件开发终端进行签名验证。
第四方面,本申请实施例还提供一种服务器,所述服务器包括处理器、机器可读存储介质和网络接口,所述机器可读存储介质、所述网络接口以及所述处理器之间通过总线系统相连,所述网络接口用于与至少一个软件开发终端通信连接,所述机器可读存储介质用于存储程序、指令或代码,所述处理器用于执行所述机器可读存储介质中的程序、指令或代码,以执行第一方面或者第一方面中任意一个可能的设计中的软件开发包的编译方法。
第五方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上检测时,使得计算机执行上述第一方面或者第一方面中任意一个可能的设计中的软件开发包的编译方法。
根据上述任意一个方面,本申请能够针对具体的目标软件业务随时对目标软件开发包的可编程染色编译组件进行编译更新,由此根据目标软件开发包的可编程染色关联编译信息确定目标软件开发包的业务染色渲染参数信息,从而根据目标软件开发包的业务染色渲染参数信息,构建目标软件开发包的编译发布安装包,并将编译发布安装包发送给软件开发终端进行签名验证。如此,可以很好地适配不同的软件业务需求,提高软件使用过程中针对具体的目标软件业务的渲染效果,减少渲染出错的情况。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的软件开发系统的应用场景示意图;
图2为本申请实施例提供的软件开发包的编译方法的流程示意图;
图3为本申请实施例提供的软件开发包的编译装置的功能模块示意图;
图4为本申请实施例提供的用于实现上述的软件开发包的编译方法的服务器的结构示意框图。
具体实施方式
下面结合说明书附图对本申请进行具体说明,方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。在本申请的描述中,除非另有说明,“至少一个”包括一个或多个。“多个”是指两个或两个以上。例如,A、B和C中的至少一个,包括:单独存在A、单独存在B、同时存在A和B、同时存在A和C、同时存在B和C,以及同时存在A、B和C。在本申请中,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
图1是本申请一种实施例提供的软件开发系统10的交互示意图。软件开发系统10可以包括服务器100以及与所述服务器100通信连接的软件开发终端200,服务器100中可以包括执行指令操作的处理器。图1所示的软件开发系统10仅为一种可行的示例,在其它可行的实施例中,该软件开发系统10也可以仅包括图1所示组成部分的其中一部分或者还可以包括其它的组成部分。
在一些实施例中,服务器100可以是单个服务器,也可以是一个服务器组。服务器组可以是集中式的,也可以是分布式的(例如,服务器100可以是分布式系统)。在一些实施例中,服务器100相对于软件开发终端200,可以是本地的、也可以是远程的。例如,服务器100可以经由网络访问存储在软件开发终端200以及数据库、或其任意组合中的信息。作为另一示例,服务器100可以直接连接到软件开发终端200和数据库中的至少一个,以访问其中存储的信息和/或数据。在一些实施例中,服务器100可以在云平台上实现;仅作为示例,云平台可以包括私有云、公有云、混合云、社区云(community cloud)、分布式云、跨云(inter-cloud)、多云(multi-cloud)等,或者它们的任意组合。
在一些实施例中,服务器100可以包括处理器。处理器可以处理与服务请求有关的信息和/或数据,以执行本申请中描述的一个或多个功能。处理器可以包括一个或多个处理核(例如,单核处理器(S)或多核处理器(S))。仅作为举例,处理器可以包括中央处理单元(Central Processing Unit, CPU)、专用集成电路(Application Specific IntegratedCircuit, ASIC)、专用指令集处理器(Application Specific Instruction-setProcessor, ASIP)、图形处理单元(Graphics Processing Unit, GPU)、物理处理单元(Physics Processing Unit, PPU)、数字信号处理器 (Digital Signal Processor,DSP)、现场可编程门阵列( Field Programmable Gate Array,FPGA)、可编程逻辑器件(Programmable Logic Device, PLD)、控制器、微控制器单元、简化指令集计算机(ReducedInstruction Set Computing, RISC)、或微处理器等,或其任意组合。
网络可以用于信息和/或数据的交换。在一些实施例中,软件开发系统10中的一个或多个组件(例如,服务器100,软件开发终端200和数据库)可以向其他组件发送信息和/或数据。在一些实施例中,网络可以是任何类型的有线或者无线网络,或者是他们的结合。仅作为示例,网络130可以包括有线网络、无线网络、光纤网络、远程通信网络、内联网、因特网、局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、无线局域网(Wireless Local Area Networks,WLAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、公共电话交换网(Public Switched Telephone Network,PSTN)、蓝牙网络、ZigBee网络、或近场通信(Near Field Communication, NFC)网络等,或其任意组合。在一些实施例中,网络可以包括一个或多个网络接入点。例如,网络可以包括有线或无线网络接入点,例如基站和/或网络交换节点,软件开发系统10的一个或多个组件可以通过该接入点连接到网络以交换数据和/或信息。
前述的数据库可以存储数据和/或指令。在一些实施例中,数据库可以存储向软件开发终端200分配的数据。在一些实施例中,数据库可以存储在本申请中描述的示例性方法的数据和/或指令。在一些实施例中,数据库可以包括大容量存储器、可移动存储器、易失性读写存储器、或只读存储器(Read-Only Memory, ROM)等,或其任意组合。作为举例,大容量存储器可以包括磁盘、光盘、固态驱动器等;可移动存储器可包括闪存驱动器、软盘、光盘、存储卡、zip磁盘、磁带等;易失性读写存储器可以包括随机存取存储器(Random AccessMemory, RAM);RAM可以包括动态RAM(Dynamic Random Access Memory, DRAM),双倍数据速率同步动态RAM(Double Date-Rate Synchronous RAM, DDR SDRAM);静态RAM(StaticRandom-Access Memory, SRAM),晶闸管RAM(Thyristor-Based Random Access Memory,T-RAM)和零电容器RAM(Zero-RAM)等。作为举例,ROM可以包括掩模ROM(Mask Read-OnlyMemory, MROM)、可编程ROM( Programmable Read-Only Memory, PROM)、可擦除可编程ROM(Programmable Erasable Read-only Memory , PEROM)、电可擦除可编程ROM(Electrically Erasable Programmable read only memory, EEPROM)、光盘ROM(CD-ROM)、以及数字通用磁盘ROM等。在一些实施例中,数据库可以在云平台上实现。仅作为示例,云平台可以包括私有云、公有云、混合云、社区云、分布式云、跨云、多云或者其它类似的等,或其任意组合。
在一些实施例中,数据库可以连接到网络以与软件开发系统10(例如,服务器100,软件开发终端200等)中的一个或多个组件通信。软件开发系统10中的一个或多个组件可以经由网络访问存储在数据库中的数据或指令。在一些实施例中,数据库可以直接连接到软件开发系统10中的一个或多个组件(例如,服务器100,软件开发终端200等;或者,在一些实施例中,数据库也可以是服务器100的一部分。
本实施例中,软件开发终端200可以是用于执行软件开发工作的计算机设备,例如服务器、高性能计算机等,本实施例在此不作具体限定。
为了解决前述背景技术中的技术问题,图2为本申请实施例提供的软件开发包的编译方法的流程示意图,本实施例提供的软件开发包的编译方法可以由图1中所示的服务器100执行,下面对该软件开发包的编译方法进行详细介绍。
步骤S110,根据多个软件开发终端200针对目标软件开发包的可编程染色编译组件的待编译信息,建立目标软件开发包的可编程染色编译信息。
步骤S120,根据目标软件业务所对应的编译脚本对目标软件开发包的可编程染色编译组件的可编程染色编译信息进行编译更新,获得目标软件开发包关联于目标软件业务的可编程染色关联编译信息。
步骤S130,根据目标软件开发包的可编程染色关联编译信息确定目标软件开发包的业务染色渲染参数信息。
步骤S140,根据目标软件开发包的业务染色渲染参数信息,构建目标软件开发包的编译发布安装包,并将编译发布安装包发送给软件开发终端200进行签名验证。
本实施例中,针对步骤S110,可编程染色编译信息可以用于反映目标软件开发包中进行图像渲染时的染色编程控制信息。例如,染色编程控制信息可以是指图像渲染时的控制渲染速度、渲染方式、渲染过程中每个节点的渲染状态等等,在此不作具体限制。
本实施例中,针对步骤S120,目标软件业务可以根据具体的开发需求和使用需求进行确定,例如可以是报表展示业务、广告渲染业务、游戏渲染业务、登录入口的渲染业务等等,在此不作具体限制。在编译更新过程中,目标软件业务所对应的编译脚本可以预先进行配置,具体配置方式可根据该目标软件业务所涉及的具体渲染需求进行确定,配置编译脚本的过程为现有技术,本实施例对此不加以赘述。
本实施例中,针对步骤S130,业务染色渲染参数信息反映了业务染色节点与染色控制组件之间的渲染控制关系,也即每个业务染色节点与对应的染色控制组件是如何配合完成相应的渲染调用工作的。业务染色节点可以包括与染色控制组件的相关控制系数匹配的染色属性。
基于上述设计,能够针对具体的目标软件业务随时对目标软件开发包的可编程染色编译组件进行编译更新,由此根据目标软件开发包的可编程染色关联编译信息确定目标软件开发包的业务染色渲染参数信息,从而根据目标软件开发包的业务染色渲染参数信息,构建目标软件开发包的编译发布安装包,并将编译发布安装包发送给软件开发终端200进行签名验证。如此,可以很好地适配不同的软件业务需求,提高软件使用过程中针对具体的目标软件业务的渲染效果,减少渲染出错的情况。
在一种可能的设计中,进一步针对步骤S110,为了提高渲染可靠性,避免后续渲染可能产生的染色点非正常重合的情况,本实施例具体可以获取待编译信息中每个待编译项目的第一待编译项目业务特征,其中,第一待编译项目业务特征用于表征该待编译项目的编译字节码。
在此基础上,可以对第一待编译项目业务特征进行特征识别,获得第一染色节点特征信息和与第一染色节点特征信息对应的染色节点控制特征信息,然后获取该待编译项目的第一图形化控件信息和图形控件互动信息,提取第一图形化控件信息的控件组件信息,第一图形化控件信息的控件组件信息包括指定图形控件组件。
接着,获取预设历史待编译项目的指定图形控件组件,并根据该指定图形控件组件调整第一图形化控件信息的指定图形控件组件,使第一图形化控件信息中各个指定图形控件组件之间的渲染逻辑与预设历史待编译项目中各个指定图形控件组件之间的渲染逻辑匹配。而后,根据第一图形化控件信息中调整后的各个指定图形控件组件得到第二图形化控件信息的控件组件信息,并根据第二图形化控件信息的控件组件信息生成第二图形化控件信息。
由此,可以根据图形控件互动信息和第二图形化控件信息的控件组件信息,查找得到与图形控件互动信息相匹配的染色节点控制特征信息以及与染色节点控制特征信息对应的第一染色节点特征信息,根据第二图形化控件信息的控件组件信息对与染色节点控制特征信息对应的第一染色节点特征信息进行调整,获得第二染色节点特征信息,从而将第二染色节点特征信息与第二图形化控件信息进行映射关联处理,以建立目标软件开发包的可编程染色编译信息。
如此,基于上述设计,通过将以上第二染色节点特征信息与第二图形化控件信息进行映射关联处理,能够提高渲染可靠性,避免后续渲染可能产生的染色点非正常重合的情况。
在一种可能的设计中,服务器100还可以预先配置有目标软件业务的业务特征集合数据,以及业务特征集合数据中多个业务特征数据分别对应的初始业务渲染边界范围和渲染扩展范围。
在此基础上,进一步针对步骤S120,为了有效根据目标软件业务所对应的编译脚本对目标软件开发包的可编程染色编译组件的可编程染色编译信息进行编译更新,提高编译更新的完整性,本实施例可以在多个业务特征数据中指定的至少部分业务特征数据对应的初始业务渲染边界范围内,根据目标软件业务所对应的编译脚本偏移初始业务渲染边界范围的业务渲染边界,并计算指定的业务特征数据中在当前业务渲染边界位置处的业务特征子数据对应的渲染程度和渲染持续深度。
在此值得说明的是,上述偏移的单位范围可以理解为指定的业务特征数据所对应的预设单位间隔,该预设单位间隔可以根据指定的业务特征数据进行确定,在此不作具体限定。
接着,可以根据当前业务渲染边界位置处的业务特征子数据对应的渲染程度和渲染持续深度,分别确定指定的业务特征数据对应的渲染程度曲线和渲染持续深度曲线,而后确定渲染程度曲线的渲染程度极大值点和渲染持续深度曲线的渲染持续深度极大值点,并计算渲染程度曲线中在渲染程度极大值点之前的时间样点处的渲染程度曲线斜率,以及计算渲染持续深度曲线中在渲染持续深度极大值点之前的时间样点处的渲染持续深度曲线斜率。其中,渲染程度曲线斜率或渲染持续深度曲线斜率分别与时间样点一一对应。
而后,可以将多个渲染程度曲线斜率和多个渲染持续深度曲线斜率中斜率最大的曲线斜率对应的时间样点的可编程染色项目作为指定的业务特征数据的可编程染色项目,并基于多个业务特征数据分别对应的渲染扩展范围,确定指定的可编程染色项目对应的渲染速度。
当指定的可编程染色项目对应的渲染速度在预设渲染速度范围内,将指定的可编程染色项目加入第一可编程染色项目序列,然后从多个业务特征数据分别对应的渲染扩展范围中获取第一可编程染色项目序列中的多个第一可编程染色项目分别对应的渲染扩展范围。其中,业务特征数据、可编程染色项目、渲染扩展范围和渲染速度一一对应。
再例如,当第一可编程染色项目序列中相关联两个可编程染色项目的第一可编程染色项目对应的渲染速度之间的差值的绝对值小于预设速度阈值时,将相关联两个可编程染色项目的第一可编程染色项目分别对应的图层位置作为同一图层位置,并将属于同一图层位置的第一可编程染色项目构成的集合作为一个第一可编程染色项目子集,得到第一可编程染色项目序列中的多个第一可编程染色项目子集。
而后,可以分别对多个第一可编程染色项目子集的第一可编程染色项目对应的渲染扩展范围和渲染速度进行拟合处理,得到多个渲染拟合曲线,并分别确定多个渲染拟合曲线中相关联两个渲染拟合曲线之间的交叉区域。
例如,当交叉区域对应的渲染速度与指定相关联交叉区域对应的渲染速度之间的差值的绝对值小于预设速度阈值(比如2cm/ms)时,将交叉区域对应的可编程染色项目作为新的第一可编程染色项目,得到新的第一可编程染色项目序列,生成新的第一可编程染色项目序列对应的多个新的渲染拟合曲线。其中,指定相关联交叉区域对应的渲染速度表示与交叉区域对应的可编程染色项目相关联的可编程染色项目的第一可编程染色项目对应的渲染速度。
在此基础上,根据多个新的渲染拟合曲线确定多个业务特征数据分别对应的目标业务渲染边界范围(例如可以根据多个新的渲染拟合曲线中的边界范围的重合位置点确定多个业务特征数据分别对应的目标业务渲染边界范围),并针对多个业务特征数据中指定的业务特征数据,获取指定的业务特征数据中在指定的业务特征数据对应的目标业务渲染边界范围内的第一指定业务特征子数据。
而后,可以进一步计算第一指定业务特征子数据中的多个时间样点分别对应的第一业务渲染边界的特征向量,并将多个第一业务渲染边界的特征向量中数值最大的第一业务渲染边界的特征向量对应的时间样点的可编程染色项目作为指定的业务特征数据的第二可编程染色项目。
接下来,基于指定的业务特征数据的第二可编程染色项目,确定第二可编程染色项目序列,当第二可编程染色项目序列中相关联业务特征数据的可编程染色项目之间的时间差的绝对值大于或等于预设时差阈值时,将目标业务渲染边界范围作为新的初始业务渲染边界范围,并生成多个业务特征数据对应的新的目标业务渲染边界范围以及新的第二可编程染色项目序列,直至新的第二可编程染色项目序列中相关联业务特征数据的可编程染色项目之间的时间差的绝对值小于预设时差阈值或者迭代次数等于预设迭代次数,并将新的第二可编程染色项目序列重新作为业务特征集合数据的第二可编程染色项目序列。
接着,可以基于第二可编程染色项目序列确定多个业务特征数据分别对应的最终业务渲染边界范围,并基于最终业务渲染边界范围确定多个业务特征数据的目标可编程染色项目序列,而后根据确定的多个业务特征数据的目标可编程染色项目序列对目标软件开发包的可编程染色编译组件的可编程染色编译信息中对应的目标可编程染色项目进行编译更新,获得目标软件开发包关联于目标软件业务的可编程染色关联编译信息。
如此,采用以上设计,能够有效根据目标软件业务所对应的编译脚本对目标软件开发包的可编程染色编译组件的可编程染色编译信息进行编译更新,提高编译更新的完整性。
值得说明的是,在一种可能的设计中,在以上基于最终业务渲染边界范围确定多个业务特征数据的目标可编程染色项目序列的过程中,本实施例针对多个业务特征数据中指定的业务特征数据,获取指定的业务特征数据中在指定的业务特征数据对应的最终业务渲染边界范围内的第二指定业务特征子数据。
接着,计算第二指定业务特征子数据中的多个时间样点分别对应的第二业务渲染边界的特征向量,将多个第二业务渲染边界的特征向量中数值最大的第二业务渲染边界的特征向量对应的时间样点的可编程染色项目作为指定的业务特征数据的第三可编程染色项目,并基于指定的业务特征数据的第三可编程染色项目,确定第三可编程染色项目序列,由此可以将第三可编程染色项目序列中确定为目标可编程染色项目序列。
在一种可能的设计中,针对步骤S130,为了进一步适配该目标软件业务的业务染色渲染参数信息,对于可编程染色关联编译信息中的各个不同渲染类型的可编程染色项目中的每个可编程染色项目,获取模拟渲染画面模拟该可编程染色项目的染色场景信息,染色场景信息包括图形参数度信息和特效参数度信息。
其中,图形参数度信息可以是指图形的对比度、亮度、饱和度等信息,特效参数度可以是指特效的范围宽度、长度等信息。
在此基础上,可以根据染色场景信息获取模拟渲染画面中每个渲染画布的子特效参数度信息和子图形参数度信息,并对模拟渲染画面中的每个渲染画布,根据该渲染画布的子特效参数度信息,确定该渲染画布的特效帧。
而后,根据模拟渲染画面的各渲染画布的特效帧确定第一特效序列、第二特效序列和第三特效序列。其中,值得说明的是,第一特效序列中的特效单位为用于表征编程关键帧的基础特效浮点的特效,第二特效序列中的特效单位为用于表征编程关键帧的扩展特效浮点的特效,第三特效序列中的特效单位为用于表征编程关键帧的复合特效浮点的特效。
接着,分别确定第一特效序列、第二特效序列与第三特效序列中特效单位的数量,若至少一个特效序列中的特效单位数量为零,则确认不存在编程关键帧。若每个特效序列中的特效单位数量均为设定数量(例如1),则将第一特效序列、第二特效序列和第三特效序列中的特效单位分别作为编程关键帧的三个特效,从而得到编程关键帧。若至少一个特效序列中的特效单位的数量大于设定数量(例如1),则根据第一特效序列、第二特效序列和第三特效序列中的特效单位,得到至少两个编程关键帧,确定至少两个编程关键帧中,每个编程关键帧的渲染参数和特效的渲染等级,并对于至少两个编程关键帧中的每个渲染画布的特效帧,确定编程关键帧的每个特效的最大图形参数度。
由此,可以判断模拟渲染画面的关键渲染区的特效参数度是否对应于该编程关键帧,当模拟渲染画面的关键渲染区的特效参数度对应于该编程关键帧时,从编程关键帧的每个特效的最大图形参数度中确定出最大值,将最大值作为关键渲染区的特效参数度下模拟渲染画面的各渲染画布的最大图形参数度。
对于至少两个编程关键帧中的每个编程关键帧,对该编程关键帧的渲染参数、特效的渲染等级以及关键渲染区的特效参数度下模拟渲染画面的各渲染画布的最大图形参数度进行加权处理,得到加权结果,并从所有加权结果中确定出加权参数度最大的加权结果,将与加权参数度最大的加权结果对应的编程关键帧作为目标编程关键帧。
当存在目标编程关键帧时,对于每个渲染画布,根据该渲染画布对应于该目标编程关键帧的子特效参数度信息和子图形参数度信息,生成该渲染画布的业务染色编译参数,根据各个渲染画布的业务染色编译参数汇总得到业务染色编译参数集合,从而可以根据每个可编程染色项目的业务染色编译参数集合进行汇总得到目标软件开发包的业务染色渲染参数信息。
值得说明的是,在一种可能的设计中,在上述根据该渲染画布对应于该目标编程关键帧的子特效参数度信息和子图形参数度信息,生成该渲染画布的业务染色编译参数的过程中,可以将该渲染画布对应于该目标编程关键帧的子特效参数度信息和子图形参数度信息进行融合,得到融合参数度信息,其中,融合参数度信息包括多个融合参数节点的染色参数。
而后,确定融合参数度信息中每个融合参数节点以及与融合参数节点相关联的融合参数节点组成的第一业务染色板块,并确定第一业务染色板块中所有融合参数节点值的平均值。
同时,确定第二业务染色板块中所有融合参数节点值的平均值,和第三业务染色板块中所有融合参数节点值的平均值。其中,第二业务染色板块与第一业务染色板块相关联且位于第一业务染色板块的同一图层位置,第三业务染色板块与第一业务染色板块相关联且位于第一业务染色板块的不同图层位置。第二业务染色板块、第三业务染色板块和第一业务染色板块包含相同个数的融合参数节点。
在此基础上,可以确定第二业务染色板块中所有融合参数节点值平均值与第一业务染色板块中所有融合参数节点值的平均值的差值,以及确定第三业务染色板块中所有融合参数节点值平均值与第一业务染色板块中所有融合参数节点值的平均值的差值,并将最大的差值作为融合参数节点的梯度值。而后,根据该渲染画布中每个融合参数节点的梯度值,生成该渲染画布对应的梯度画布,并对梯度画布中的冗余融合参数节点进行过滤处理,对满足过滤处理条件的融合参数节点进行聚类操作,确定多个聚类业务染色板块,并根据多个聚类业务染色板块中业务染色节点与染色控制组件之间的渲染控制关系以及所有业务染色节点的融合参数节点值,生成该渲染画布的业务染色编译参数。其中,融合参数节点值可以用于表示与染色控制组件的相关控制系数匹配的染色属性。
在一种可能的设计中,针对步骤S140,本实施例可以将目标软件开发包的业务染色渲染参数信息添加到目标软件开发包中的可编程染色编译组件的业务染色编译目录中,得到更新后的目标软件开发包,从而将编译发布安装包发送给软件开发终端200进行签名验证。
图3为本申请实施例提供的软件开发包的编译装置300的功能模块示意图,本实施例可以根据上述方法实施例对该软件开发包的编译装置300进行功能模块的划分。例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。比如,在采用对应各个功能划分各个功能模块的情况下,图3示出的软件开发包的编译装置300只是一种装置示意图。其中,软件开发包的编译装置300可以包括建立模块310、编译更新模块320、确定模块330以及构建模块340,下面分别对该软件开发包的编译装置300的各个功能模块的功能进行详细阐述。
建立模块310,用于根据多个软件开发终端200针对目标软件开发包的可编程染色编译组件的待编译信息,建立目标软件开发包的可编程染色编译信息,可编程染色编译信息用于反映目标软件开发包中进行图像渲染时的染色编程控制信息。
编译更新模块320,用于根据目标软件业务所对应的编译脚本对目标软件开发包的可编程染色编译组件的可编程染色编译信息进行编译更新,获得目标软件开发包关联于目标软件业务的可编程染色关联编译信息。
确定模块330,用于根据目标软件开发包的可编程染色关联编译信息确定目标软件开发包的业务染色渲染参数信息,业务染色渲染参数信息反映了业务染色节点与染色控制组件之间的渲染控制关系,业务染色节点包括与染色控制组件的相关控制系数匹配的染色属性。
构建模块340,用于根据目标软件开发包的业务染色渲染参数信息,构建目标软件开发包的编译发布安装包,并将编译发布安装包发送给软件开发终端200进行签名验证。
进一步地,图4为本申请实施例提供的用于执行上述软件开发包的编译方法的服务器100的结构示意图。如图4所示,该服务器100可包括网络接口110、机器可读存储介质120、处理器130以及总线140。处理器130可以是一个或多个,图4中以一个处理器130为例。网络接口110、机器可读存储介质120以及处理器130可以通过总线140或其他方式连接,图4中以通过总线140连接为例。
机器可读存储介质120作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的软件开发包的编译方法对应的程序指令/模块(例如图3中所示的软件开发包的编译装置300的建立模块310、编译更新模块320、确定模块330以及构建模块340)。处理器130通过检测存储在机器可读存储介质120中的软件程序、指令以及模块,从而执行终端设备的各种功能应用以及数据处理,即实现上述的软件开发包的编译方法,在此不再赘述。
机器可读存储介质120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,机器可读存储介质120可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-OnlyMemory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合发布节点的存储器。在一些实例中,机器可读存储介质120可进一步包括相对于处理器130远程设置的存储器,这些远程存储器可以通过网络连接至服务器100。上述网络的实例包括但不限于互联网、待编译项目内部网、局域网、移动通信网及其组合。
处理器130可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器130中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器130可以是通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。
服务器100可以通过网络接口110和其它设备(例如软件开发终端200)进行信息交互。网络接口110可以是电路、总线、收发器或者其它任意可以用于进行信息交互的装置。处理器130可以利用网络接口110收发信息。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请实施例的这些表达和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。