一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种程序处理方法、装置、设备及计算机可读存储介质与流程

2022-08-30 23:13:29 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种程序处理方法、装置、设备及计算机可读存储介质。


背景技术:

2.相关技术中,软件开发工具包(software development kit,sdk)间的依赖关系复杂,在sdk接入方需要的目标sdk依赖其他sdk的情况下,软件开发平台无法自动解析目标sdk的依赖关系,导致无法自动生成目标sdk的示例程序,需要开发技术人员进行手动编写。
3.此外,在检测到目标sdk的示例程序中调用的sdk存在更新的情况下,软件开发平台无法解决更新后的sdk与原来的sdk间的冲突问题,导致无法更新目标sdk的示例程序。


技术实现要素:

4.本技术提供了一种程序处理方法、装置、设备及计算机可读存储介质,至少可以解决相关技术中无法自动生成目标程序、以及无法更新目标程序的问题。
5.一方面,本技术提供了一种程序处理方法,所述方法包括:
6.向服务端发送目标软件开发工具包对应的工具包下载请求;
7.接收所述服务器发送的所述目标软件开发工具包和基础软件开发工具包,其中,所述基础软件开发工具包为所述服务端基于预设的工具包依赖信息确定的;
8.基于本地预设的代码模板、所述目标软件开发工具包和所述基础软件开发工具包,生成目标程序,跳转至所述目标程序对应的程序调试页面,所述程序调试页面包括程序运行控件;
9.若检测到针对所述程序运行控件的触发指令,向服务端发送软件包更新查询请求;
10.接收所述服务端在目标软件开发工具对应的更新信息指示存在更新的情况下,发送的更新软件开发工具包;
11.基于所述更新软件开发工具包更新所述目标程序,得到更新后的目标程序,运行所述更新后的目标程序。
12.另一方面,本技术还提供了另一种程序处理方法,所述方法包括:
13.接收客户端发送的目标软件开发包对应的工具包下载请求,基于预设的工具包依赖关系,确定所述目标软件开发工具包依赖的基础软件开发工具包,向客户端发送所述目标软件开发工具包和所述基础软件开发工具;
14.接收客户端在检测到针对程序运行控件的触发指令的情况下,发送的软件包更新查询请求,确定所述目标软件开发工具对应的更新信息;
15.在目标软件开发工具对应的更新信息指示存在更新的情况下,向客户端发送更新软件开发工具包。
16.再一方面,本技术还提供了一种程序处理装置,所述装置包括:
17.第一发送模块,用于向服务端发送目标软件开发工具包对应的工具包下载请求;
18.第一接收模块,用于接收所述服务器发送的所述目标软件开发工具包和基础软件开发工具包,其中,所述基础软件开发工具包为所述服务端基于预设的工具包依赖信息确定的;
19.生成模块,用于基于本地预设的代码模板、所述目标软件开发工具包和所述基础软件开发工具包,生成目标程序,跳转至所述目标程序对应的程序调试页面,所述程序调试页面包括程序运行控件;
20.第二发送模块,用于若检测到针对所述程序运行控件的触发指令,向服务端发送软件包更新查询请求;
21.第二接收模块,用于接收所述服务端在目标软件开发工具对应的更新信息指示存在更新的情况下,发送的更新软件开发工具包;
22.更新模块,用于基于所述更新软件开发工具包更新所述目标程序,得到更新后的目标程序,运行所述更新后的目标程序。
23.又一方面,本技术还提供了一种程序处理装置,所述装置包括:
24.第一接收模块,用于接收客户端发送的目标软件开发包对应的工具包下载请求,基于预设的工具包依赖关系,确定所述目标软件开发工具包依赖的基础软件开发工具包,向客户端发送所述目标软件开发工具包和所述基础软件开发工具;
25.第二接收模块,用于接收客户端在检测到针对程序运行控件的触发指令的情况下,发送的软件包更新查询请求,确定所述目标软件开发工具对应的更新信息;
26.发送模块,用于在目标软件开发工具对应的更新信息指示存在更新的情况下,向客户端发送更新软件开发工具包。
27.又一方面,本技术还提供了一种程序处理设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序、所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上所述的程序处理方法。
28.又一方面,本技术还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上所述的程序处理方法。
29.本技术提供的程序处理方法、装置、设备及计算机可读存储介质,具有如下技术效果:
30.本技术基于本地预设的代码模板、所述目标软件开发工具包和所述基础软件开发工具包,生成目标程序,可实现目标程序的自动生成。
31.本技术基于所述更新软件开发工具包更新所述目标程序,得到更新后的目标程序,运行所述更新后的目标程序,可实现目标程序的自动更新。
附图说明
32.为了更清楚地说明本技术实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
33.图1是本技术实施例提供的一种程序处理系统的示意图;
34.图2是本技术实施例提供的一种程序处理方法的流程示意图;
35.图3是本技术实施例提供的一种目标页面的展示图;
36.图4是本技术实施例提供的一种目标程序的生成方法的流程示意图;
37.图5是本技术实施例提供的另一种目标程序的生成方法的流程示意图;
38.图6是本技术实施例提供的一种目标程序的更新方法的流程示意图;
39.图7是本技术实施例提供的另一种目标程序的更新方法的流程示意图;
40.图8是本技术实施例提供的再一种目标程序的更新方法的流程示意图;
41.图9是本技术实施例提供的一种初始页面的展示图;
42.图10是本技术实施例提供的另一种程序处理方法的流程示意图;
43.图11是本技术实施例提供的再一种程序处理方法的流程示意图;
44.图12是本技术提供的一种程序处理装置的结构示意图;
45.图13是本技术提供的另一种程序处理装置的结构示意图;
46.图14是本技术提供的再一种程序处理装置的结构示意图;
47.图15是本技术提供的一种程序处理方法的服务器的硬件结构框图。
具体实施方式
48.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
49.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
50.以下介绍本技术提供的程序处理方法,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
51.请参阅图1,图1是本技术实施例提供的一种程序处理系统的示意图,如图1所示,该系统可以包括客户端01和服务端02。本说明书实施例中,客户端01可以用于面向用户提供程序处理服务。可选的,客户端01可以包括智能手机、台式计算机、平板电脑、笔记本电脑、智能音箱、数字助理、增强现实(augmentedreality,ar)/虚拟现实(virtual reality,vr)设备、智能可穿戴设备等类型的实体设备。也可以包括运行于上述实体设备上的软体,例如应用程序、网站等。
52.本说明书实施例中,服务端02可以用于接收客户端01发送的工具包下载请求和更新查询请求,并基于该工具包下载请求为客户端01提供程序处理所需的软件开发工具包,基于该更新查询请求为客户端01提供程序处理所需的更新软件开发工具包。可选的,服务端02可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content deliverynetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
53.上述客户端01、服务端02可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。此外,需要说明的是,上述图1对应的系统架构仅仅是本说明书实施例提供的一种数据查询系统的架构,在实际应用中,还可以包括其他系统架构。例如,程序处理也可以在服务端侧实现等。
54.在一个具体的实施例中,如图2所示,本技术提供了一种程序处理方法,应用于程序处理系统,所述程序处理系统包括服务端和客户端;上述方法包括:
55.s201:客户端向服务端发送目标软件开发工具包对应的工具包下载请求。
56.本说明书实施例中,所述程序处理系统可以为软件开发平台,在一个具体的实施例中,该软件开发平台可以用于移动金融相关的软件开发,相应的,该软件开发平台可以为移动金融开发平台。
57.在一个具体的实施例中,所述客户端可以为软件开发平台的客户端,所述服务端可以为软件开发平台的服务端。
58.所述客户端可以用于为软件开发平台的用户提供可视化的软件开发界面。
59.所述服务端可以用于为软件开发平台的用户提供软件开发过程中需要的软件开发工具和软件开发资源。
60.其中,软件开发工具可以包括软件开发工具包、软件开发函数库等代码资源,软件开发资源可以包括图片资源、视频资源和音频资源等媒体资源。
61.其中,所述软件开发工具包为预先设置在服务端中的封装好的、可以实现一定功能的程序包。
62.在实际应用中,用户在客户端进行软件开发的过程中,利用服务端提供的至少一个软件开发工具包,可以节省大量精力和时间。为了便于用户快速掌握至少一个软件开发工具包的使用技巧,软件开发平台可以为用户提供至少一个软件开发工具包的示例程序。
63.可以理解,用户使用的客户端为软件开发工具包的接入方,服务端为软件开发工具包的提供方。
64.可以理解,本说明书实施例中涉及的目标程序为目标软件开发工具包的示例程序。
65.本说明书实施例中,所述目标软件开发工具包可以为用户需要使用的软件开发工具包;所述目标软件开发工具包对应的工具包下载请求可以包括目标软件开发工具包的标识信息,用于请求下载所述目标软件开发工具包、目标软件开发工具包依赖的基础软件开发工具包。
66.具体的,软件开发工具包的标识信息可以包括但不限于软件开发工具包的名称、唯一标识和版本号。
67.本说明书实施例中,客户端通过向服务端发送下载请求信息,可以向服务端请求下载目标软件开发工具包,以及目标软件开发工具包依赖的基础软件开发工具包,为生成目标程序提供数据支持。
68.在一个可选的实施例中,为了确定目标软件开发工具包,上述方法还包括:
69.客户端显示目标页面,所述目标页面包括至少一个软件开发工具包的选择控件;
70.若客户端检测到针对所述至少一个选择控件的选择指令,确定所述选择指令对应的目标软件开发工具包;
71.相应的,所述客户端向服务端发送目标软件开发工具包对应的工具包下载请求包括:
72.若客户端检测到针对所述目标页面的确认控件的触发指令,向服务端发送工具包下载请求,所述工具包下载请求包括所述目标软件开发工具包的标识信息。
73.本说明书实施例中,所述目标页面为用户选择目标软件开发工具包的页面。
74.本说明书实施例中,预先设置所述至少一个软件开发工具包与至少一个选择控件的对应关系,得到至少一个软件开发工具包的选择控件。其中,所述选择控件可以为单选框,可以为复选框,还可以为显示对应软件开发工具包的标识信息的可变色矩形框。其中,该可变色矩形框在被选中、和未被选中的状态下的背景颜色不同。
75.本说明书实施例中,可以根据至少一个软件开发工具包与至少一个选择控件的对应关系,确定所述选择指令针对的至少一个软件开发工具包(目标软件开发工具包)。
76.如图3所示,所述目标页面显示有两种类型的软件开发工具包,一种为用于客户端性能分析的软件开发工具包(标识为qapm),另一种为用于智慧投放的软件开发工具包(标识为xxicdp)。其中,该两种软件开发工具包对应的选择控件为可变色矩形框,分别显示有它们的标识信息和介绍。
77.如图3所示,所述目标页面还包括标识为“下一步”的确认控件,标识为“上一步”的取消控件,以及标识为“取消”的取消控件。
78.若客户端检测到针对标识为“下一步”的确认控件的触发指令,向服务端发送工具包下载请求。
79.若客户端检测到针对标识为“上一步”的取消控件的触发指令,则从目标页面跳转至初始页面,初始页面为目标程序的配置信息的设置页面。
80.若客户端检测到针对标识为“取消”的取消控件的触发指令,则从客户端会关闭客户端界面。
81.本说明书实施例中,客户端通过向用户提供目标页面,便于客户端检测用户在目标页面上触发的选择指令和确认指令,确定目标软件开发工具包。
82.s203:服务端基于预设的工具包依赖关系,确定所述目标软件开发工具包依赖的基础软件开发工具包。
83.s205:服务端向客户端发送所述目标软件开发工具包和所述基础软件开发工具包。
84.本说明书实施例中,预先在服务端设置至少一个软件开发工具包的依赖关系。
85.本说明书实施例中,所述目标软件开发工具包依赖的基础软件开发工具包括直接依赖的基础软件开发工具包和间接依赖的基础软件开发工具包。
86.其中,直接依赖的基础软件开发工具包为目标软件开发工具包直接需要的基础软件开发工具包;间接依赖的基础软件开发工具包为目标软件开发工具包依赖的基础软件开发工具包中、除直接依赖的基础软件开发工具包之外的基础软件开发工具包。
87.以目标软件开发工具包为用于识别银行卡的软件开发工具包为例,其直接依赖的基础软件开发工具包为用于开启手电筒的软件开发工具包,用于开启手电筒的软件开发工具包直接依赖的基础软件开发工具包为用于扫一扫的软件开发工具包(也即用于识别银行卡的软件开发软件包间接依赖的基础软件开发工具包)。
88.在实际应用中,结合软件开发应用平台的具体软件开发业务来看,工具包依赖关系往往更为复杂。例如移动金融类软件开发往往需要用于热修复的软件开发工具包、用于定位服务的软件开发工具包、用于消息推送的软件开发工具包、用于统一存储的软件开发工具包、用于移动监控的软件开发工具包和用于移动网关的软件开发工具包等,软件开发工具包间的依赖关系复杂。
89.在一种具体的实施例中,为了适应依赖关系复杂的软件开发工具包的情况,所述基于预设的工具包依赖关系,确定所述目标软件开发工具包依赖的基础软件开发工具包包括:
90.获取预设的工具包依赖关系;
91.根据工具包下载请求携带的目标软件开发工具包的标识信息,从预设的工具包依赖关系中,确定目标软件开发工具包的依赖信息。
92.根据目标软件开发工具包的依赖信息,确定目标软件开发工具包依赖的基础软件开发工具包。
93.本说明书实施例中,所述工具包依赖关系可以表征多个软件开发工具包中、每个软件开发工具包对其他至少一个软件开发工具包的依赖信息。
94.本说明书实施例中,通过预先在服务器上预先设置工具包依赖关系,便于客户端请求下载工具包的情况下、服务端迅速根据预设的工具包依赖关系确定目标软件开发工具包依赖的基础开发工具包,节省服务端的处理时间。
95.在一个可选的实施例中,还可以将目标软件开发工具包的依赖关系预先设置在目标软件开发工具包的工具包目录中,服务端接收到客户端发送的工具包下载请求,查询目标软件开发工具包的工具包目录,可以得到目标软件开发工具包的依赖关系,进而可以确定目标软件开发工具包依赖的基础软件开发工具包,将目标软件开发工具包和基础软件开发工具包发送给客户端。
96.s207:客户端基于本地预设的代码模板、所述目标软件开发工具包和所述基础软件开发工具包,生成目标程序,跳转至所述目标程序对应的程序调试页面,所述程序调试页面包括程序运行控件。
97.本说明书实施例中,在客户端的本地数据库中预先设置的代码模板,通过本地预设的代码模板调用目标软件开发工具包和基础软件开发工具包,生成目标程序。
98.本说明书实施例中,所述目标软件开发工具包可以包括至少两个第一调用对象,所述基础软件开发工具包可以包括至少两个第二调用对象。
99.具体的,所述至少两个第一调用对象为所述目标软件开发工具包的至少两个接口,可以包括但不限于初始化接口和功能接口。其中,目标软件开发工具包的初始化接口用
于初始化目标软件开发工具包,目标软件开发工具包的功能接口用于调用目标软件开发工具包的功能。
100.在一个可选的实施例中,目标软件开发工具包的至少两个接口还可以包括回调接口,用于将调用目标软件开发工具包得到的执行结果返回给本地预设的代码模板的主函数。
101.具体的,所述至少两个第二调用对象为所述基础软件开发工具包的至少两个接口,可以包括但不限于初始化接口和功能接口。其中,基础软件开发工具包的初始化接口用于初始化基础软件开发工具包,基础软件开发工具包的功能接口用于调用基础软件开发工具包的功能。
102.在一个可选的实施例中,基础软件开发工具包的至少两个接口还包括回调接口,用于将调用基础软件开发工具包得到的执行结果返回给本地预设的代码模板的主函数。
103.在一个具体的实施例中,如图4所示,所述基于本地预设的代码模板、所述目标软件开发工具包和所述基础软件开发工具包,生成目标程序包括:
104.s401:提取所述目标软件开发工具包中的至少两个第一调用对象。
105.s403:提取所述基础软件开发工具包中的至少两个第二调用对象。
106.s405:基于所述本地预设的代码模板、所述至少两个第一调用对象和所述至少两个第二调用对象,生成目标程序。
107.本说明书实施例中,所述至少两个第一调用对象位于所述目标软件开发工具包的配置文件中,可以通过扫描目标软件开发工具包的配置文件,得到所述至少两个第一调用对象。
108.本说明书实施例中,所述至少两个第二调用对象位于所述基础软件开发工具包的配置文件中,可以通过扫描基础软件开发工具包的配置文件,得到所述至少两个第二调用对象。
109.本说明书实施例中,通过本地预设的代码模板调用至少两个第一调用对象和至少两个第二调用对象,来实现本地预设的代码模板对目标软件开发包和基础软件开发包的调用。
110.在一个可选的实施例中,如图5所示,所述基于所述本地预设的代码模板、所述至少两个第一调用对象和所述至少两个第二调用对象,生成目标程序包括:
111.s501:获取所述代码模板中按序排列的第一形式参数。
112.本说明书实施例中,所述第一形式参数可以为代码模板中的至少两个第一调用函数的形式参数,至少两个第一调用函数按序排列。
113.s503:扫描所述目标软件开发工具包的配置文件,确定所述至少两个第一调用对象间的调用顺序信息。
114.本说明书实施例中,所述目标软件开发工具包的配置文件为所述目标软件开发工具包的代码源文件,用于配置至少两个第一调用对象、以及每个第一调用对象中的参数和方法函数。
115.s505:基于所述至少两个第一调用对象间的调用顺序信息和所述第一形式参数对所述至少两个第一调用对象进行标记,得到第一标记信息,所述第一标记信息表征所述至少两个第一调用对象与所述第一形式参数间的对应关系。
116.本说明书实施例中,所述至少两个第一调用对象间的调用顺序信息表征的是至少两个第一调用对象的调用顺序,该至少两个第一调用对象的调用顺序与所述第一形式参数的排列顺序一致。
117.本说明书实施例中,通过建立至少两个第一调用对象与所述第一形式参数间的对应关系,可以通过至少两个第一调用函数对至少两个第一形式参数的调用,实现至少两个第一调用函数对至少两个第一调用对象的调用。
118.s507:获取所述代码模板中按序排列的第二形式参数。
119.本说明书实施例中,所述第二形式参数可以为代码模板中的至少两个第二调用函数的形式参数,至少两个第二调用函数按序排列。
120.s509:扫描所述基础软件开发工具包的配置文件,确定所述至少两个第二调用对象间的调用顺序信息。
121.本说明书实施例中,所述基础软件开发工具包的配置文件为所述基础软件开发工具包的代码源文件,用于配置至少两个第二调用对象、以及每个第二调用对象中的参数和方法函数。
122.s511:基于所述至少两个第二调用对象间的调用顺序信息和所述第二形式参数对所述至少两个第二调用对象进行标记,得到第二标记信息,所述第二标记信息表征所述至少两个第二调用对象与所述第二形式参数间的对应关系。
123.本说明书实施例中,所述至少两个第二调用对象间的调用顺序信息表征的是至少两个第二调用对象的调用顺序,该至少两个二调用对象的调用顺序与所述第二形式参数的排列顺序一致。
124.本说明书实施例中,通过建立至少两个第二调用对象与所述第二形式参数间的对应关系,可以通过至少两个第二调用函数对至少两个第二形式参数的调用,实现至少两个第二调用函数对至少两个第二调用对象的调用。
125.s513:根据所述本地预设的代码模板、所述第一标记信息和所述第二标记信息,生成目标程序。
126.本说明书实施例中,通过建立至少两个第一调用对象与所述第一形式参数间的对应关系、以及所述至少两个第二调用对象与所述第二形式参数间的对应关系,可以实现代码模板中至少两个第一调用函数对至少两个第一调用对象的调用,以及至少两个第二调用函数对至少两个第二调用对象的调用,生成目标程序。
127.本说明书实施例提供的目标程序的生成方法简便易行,有利于迅速、准确的生成目标程序。
128.在一些实施例中,所述目标软件开发工具包的资源文件中的至少一个资源、以及所述基础软件开发工具包的资源文件中的至少一个资源的获取步骤包括:
129.客户端扫描所述目标软件开发工具包的资源文件,得到至少一个第一资源标识;
130.客户端扫描所述基础软件开发工具包的资源文件,得到至少一个第二资源标识;
131.客户端向服务端发送资源下载请求,所述资源下载请求携带有至少一个第一资源标识和至少一个第二资源标识;
132.服务端向客户端发送与至少一个资源标识匹配的第一资源、与至少一个第二资源标识匹配的第二资源;
133.客户端接收服务端发送的至少一个第一资源和至少一个第二资源,根据至少一个第一资源与至少一个第一资源标识的匹配关系、至少一个第二资源与至少一个第二资源标识的匹配关系,将至少一个第一资源和至少一个第二资源分别存储于所述目标软件开发工具包的资源文件和所述基础软件开发工具包的资源文件中;
134.相应的,所述基于所述本地预设的代码模板、所述至少两个第一调用对象和所述至少两个第二调用对象,生成目标程序还包括:
135.基于所述本地预设的代码模板、所述至少两个第一调用对象、所述至少两个第二调用对象、上述至少一个第一资源和上述至少一个第二资源,生成目标程序。
136.本说明书实施例中,上述至少一个第一资源、至少一个第二资源的资源类型可以包括但不限于图片资源、视频资源和音频资源。
137.本说明书实施例中,通过所述本地预设的代码目标调用所述至少两个第一调用对象和所述至少两个第二调用对象,可以加载至少一个第一资源和至少一个第二资源,实现目标程序的可视化,丰富目标程序的展现形式。
138.在一些实施例中,在所述基于本地预设的代码模板、所述目标软件开发工具包和所述基础软件开发工具包,生成目标程序之前,上述方法还包括:
139.客户端显示下载进度显示页面,所述下载进度显示页面包括所述目标软件开发工具包和所述基础软件开发工具包对应的下载进度信息;
140.相应的,所述基于本地预设的代码模板、所述目标软件开发工具包和所述基础软件开发工具包,生成目标程序包括:
141.在所述下载进度信息指示软件包下载完成的情况下,基于本地预设的代码模板、所述目标软件开发工具包和所述基础软件开发工具包,生成目标程序。
142.本说明书实施例中,所述下载进度显示页面可以包括进度显示控件,该进度显示控件可以为进度条,用于显示目标软件开发工具包和基础软件开发工具包的下载进度。
143.s209:客户端若检测到针对所述程序运行控件的触发指令,向服务端发送软件包更新查询请求。
144.本说明书实施例中,所述更新查询请求用于请求查询目标软件开发工具包对应的更新信息,其携带有目标软件开发工具包的标识信息。
145.s211:服务端确定所述目标软件开发工具对应的更新信息。
146.s213:服务端在所述更新信息指示存在更新的情况下,确定所述更新信息对应的更新软件开发工具包。
147.s215:服务端向客户端发送所述更新软件开发工具包。
148.本说明书实施例中,所述更新软件开发工具包可以包括目标软件开发工具包和/或基础软件开发工具包。
149.s217:客户端基于所述更新软件开发工具包更新所述目标程序,运行更新后的目标程序。
150.在一个可选的实施例中,如图6所示,所述基于所述更新软件开发工具包更新所述目标程序,得到更新后的目标程序包括:
151.s601:获取所述更新软件开发工具包的配置文件。
152.s603:若所述更新软件开发工具包为更新的目标软件开发工具包,获取所述目标
软件开发工具包的配置文件。
153.s605:基于所述更新软件开发工具包的配置文件,对所述目标软件开发工具包的配置文件进行覆盖,得到更新后目标软件开发工具包。
154.本说明书实施例中,可以通过将更新软件开发工具包的配置文件与所述目标软件开发工具包的配置文件进行合并,对所述目标软件开发工具包的配置文件进行覆盖。
155.若客户端检测到合并过程中所述目标软件开发工具包的配置文件与所述更新软件开发工具包的配置文件发生冲突,确定所述目标软件开发工具包的配置文件中的冲突对象,删除冲突对象。具体的,所述冲突对象为发生冲突的接口。
156.若客户端检测到合并过程中所述目标软件开发工具包的配置文件与所述更新软件开发工具包的配置文件发生重复,确定所述目标软件开发工具包的配置文件中的重复对象,删除重复对象。具体的,所述重复对象为重复的接口。
157.s607:扫描所述更新后目标软件开发工具包的配置文件,确定所述更新后目标软件开发工具包中的至少两个第四调用对象间的调用顺序信息。
158.s609:基于所述至少两个第四调用对象间的调用顺序信息和所述第一形式参数对所述至少两个第四调用对象进行标记,得到第三标记信息,所述第三标记信息表征所述至少两个第四调用对象与所述第一形式参数间的对应关系。
159.s611:根据所述本地预设的代码模板、所述第三标记信息和所述第二标记信息,得到更新后的目标程序。
160.具体的,上述s607至s611的实现原理与前述s503、s505和s513的实现原理类似,在此不作赘述。
161.在一个可选的实施例中,如图7所示,可以基于本地预设的代码模板、更新后软件开发工具包、目标软件开发工具包和基础开发工具包,生成更新后的目标程序;相应的,所述基于所述更新软件开发工具包更新所述目标程序,得到更新后的目标程序包括:
162.s701:获取所述更新软件开发工具包的配置文件;
163.s703:若所述更新软件开发工具包为更新后的基础软件开发工具包,获取所述基础软件开发工具包的配置文件;
164.s705:基于所述更新软件开发工具包的配置文件,对所述基础软件开发工具包的配置文件进行覆盖,得到更新后基础软件开发工具包;
165.s707:扫描所述更新后基础软件开发工具包的配置文件,确定所述更新后基础软件开发工具包中的至少两个第五调用对象间的调用顺序信息;
166.s709:基于所述至少两个第五调用对象间的调用顺序信息和所述第二形式参数对所述至少两个第五调用对象进行标记,得到第四标记信息,所述第四标记信息表征所述至少两个第五调用对象与所述第二形式参数间的对应关系;
167.s711:根据所述本地预设的代码模板、所述第一标记信息和所述第四标记信息,得到更新后的目标程序。
168.具体的,上述s701至s711的实现原理与前述s601至s611的实现原理类似,在此不作赘述。
169.本说明书实施例中,通过在更新软件开发工具包为更新后的目标软件开发工具包的情况下,将更新软件开发工具包的配置文件对目标软件开发工具包的配置文件进行覆
盖,对覆盖得到的新的配置文件中的冲突接口和重复接口进行删除,得到新的配置文件中的至少两个第四调用对象,通过代码模板对至少两个第四调用对象和至少两个第二调用对象的调用,得到更新后的目标程序。
170.本说明书实施例中,通过在更新软件开发工具包为更新后的基础软件开发工具包的情况下,将更新软件开发工具包的配置文件对基础软件开发工具包的配置文件进行覆盖,对覆盖得到的新的配置文件中的冲突接口和重复接口进行删除,得到新的配置文件中的至少两个第五调用对象,通过代码模板对至少两个第五调用对象和至少两个第一调用对象的调用,得到更新后的目标程序。
171.上述目标程序的更新方案适用于更新软件开发工具包的更新变化较为复杂的情况,能够化繁为简,提高目标程序的更新效率,确保更新准确性,得到可以运行的更新后的目标程序。
172.在一个可选的实施例中,还可以通过对目标程序的程序信息进行更新,更新目标程序;相应的,如图8所示,所述基于所述更新软件开发工具包更新所述目标程序,得到更新后的目标程序包括:
173.s801:提取所述更新软件开发工具包的至少两个第三调用对象;
174.s803:根据所述至少两个第三调用对象,对所述目标程序进行更新,获得所述更新后的目标程序。
175.本说明书实施例中,根据至少两个第三调用对象,确定如何更新目标程序的程序信息。具体的,程序信息的修改可以通过钩子函数来实现。
176.在一个可选的实施例中,在至少一个第一调用对象或者至少一个第二调用对象,和所述至少一个第三调用对象发生冲突的情况下,所述根据所述至少两个第三调用对象,对所述目标程序进行更新包括:
177.从所述至少两个第一调用对象和所述至少两个第二调用对象中,确定与所述至少两个第三调用对象存在冲突的冲突对象;
178.基于所述至少两个第三调用对象更新所述目标程序中与所述冲突对象对应程序信息。
179.本说明书实施例中,若检测到至少两个第一调用对象中存在与至少两个第三调用对象的标识相同、且内部的方法函数不同的第一调用对象,确定该第一调用对象为冲突对象。
180.本说明书实施例中,所述冲突对象对应的程序信息可以为便于目标程序调用冲突对象的代码片段。通过将调用冲突对象的代码片段更新为对应的第三调用对象对应的代码片段,可以实现目标程序的更新。
181.本说明书实施例中,通过更新目标程序中的冲突对象对应的代码片段,可以避免更新后的目标程序无法运行的问题。
182.在一个可选的实施例中,在至少一个第三调用对象为新增对象的情况下,所述根据所述至少两个第三调用对象,对所述目标程序进行更新包括:
183.从所述至少两个第三调用对象中,确定与所述至少两个第一调用对象、所述至少两个第二调用对象不同的新增对象;
184.确定所述新增对象与所述至少两个第一调用对象间的第一调用顺序信息;或者,
确定所述新增对象与所述至少两个第二调用对象间的第二调用顺序信息;
185.基于所述第一调用顺序信息或者所述第二调用顺序信息,确定所述新增对象对应的程序信息在所述目标程序中的添加位置;
186.基于所述新增对象对应的程序信息和所述添加位置,更新所述目标程序。
187.本说明书实施例中,所述新增对象的标识与至少两个第一调用对象的标识、至少两个第二调用对象的标识不同。
188.本说明书实施例中,更新软件开发工具包为更新后的目标软件开发工具包的情况下,至少两个第三调用对象中存在与至少一个第一调用对象相同的第三调用对象;或者,更新软件开发工具包为更新后的基础软件开发工具包的情况下,至少两个第三调用对象中存在与至少一个第二调用对象相同的第三调用对象。
189.由此,可以根据所述第三调用对象间的顺序信息,确定新增对象与所述至少两个第一调用对象间的第一调用顺序信息;或者,确定所述新增对象与所述至少两个第二调用对象间的第二调用顺序信息。
190.由此,可以根据第一调用顺序信息或者第二调用顺序信息,将新增对象对应的程序信息插入到目标程序中,得到更新后的目标程序。
191.本说明书实施例中,所述新增对象对应的程序信息为便于目标程序调用所述新增对象的代码片段。
192.上述目标程序的更新方案适用于更新软件开发工具包的更新变化较为简单的情况,可以通过直接更改目标程序,提高目标程序的更新效率,确保更新准确性,得到可以运行的更新后的目标程序。
193.上述两种目标程序的更新方案中,通过考虑冲突对象、新增对象和重复对象对目标程序更新的影响,有利于目标程序的全面更新,提高用户的体验。
194.在一个可选的实施例中,在所述更新软件开发工具包还包括资源文件的情况下,所述基于所述更新软件开发工具包更新所述目标程序,得到更新后的目标程序还包括:
195.获取所述更新软件开发工具包的资源文件;
196.若所述更新软件开发工具包为更新后的目标软件开发工具包,获取所述目标软件开发工具包的资源文件;
197.基于所述更新软件开发工具包的配置文件和资源文件,分别对所述目标软件开发工具包的配置文件和资源文件进行覆盖,得到更新后的目标软件开发工具包;
198.若所述更新软件开发工具包为更新后的基础软件开发工具包,获取所述基础软件开发工具包的资源文件;
199.基于所述更新软件开发工具包的配置文件和资源文件,分别对所述基础软件开发工具包的配置文件和资源文件进行覆盖,得到更新后的基础软件开发工具包。
200.本说明书实施例中,若所述更新软件开发工具包为更新后的目标软件开发工具包,可以通过将更新软件开发工具包的资源文件与所述目标软件开发工具包的资源文件进行合并,对所述目标软件开发工具包的资源文件进行覆盖。
201.若客户端检测到合并过程中所述目标软件开发工具包的资源文件与所述更新软件开发工具包的资源文件发生冲突,确定所述目标软件开发工具包的资源文件中的冲突资源,删除冲突资源。具体的,所述冲突资源为第一资源标识发生冲突的第一资源。
202.若客户端检测到合并过程中所述目标软件开发工具包的资源文件与所述更新软件开发工具包的资源文件发生重复,确定所述目标软件开发工具包的资源文件中的重复资源,删除重复资源。具体的,所述重复资源为重复的第一资源。
203.对基础软件开发工具包的资源文件的覆盖可以参照上述方案,在此不作赘述。
204.本说明书实施例中,无需通过客户端的用户手动操作,即可完成所述目标程序的更新,用户只需选择目标软件开发工具包,即可在客户端看见目标程序,大大提高了用户体验。
205.在一些实施例中,为了提高目标程序的运行速度,所述程序调试页面还包括至少一个第一调用对象和/或至少一个第二调用对象对应的屏蔽控件,上述方法还包括:
206.若客户端检测到针对至少一个屏蔽控件的触发指令,根据所述至少一个屏蔽控件对应的第一调用对象和/或第二调用对象,确定目标屏蔽对象;
207.客户端获取所述目标屏蔽调用对象的缓存数据;
208.客户端基于所述目标屏蔽调用对象的缓存数据,启动所述目标程序。
209.本说明书实施例中,所述目标屏蔽对象可以包括目标软件开发工具包的初始化接口和回调接口,还可以包括基础软件开发工具包的初始化接口和回调接口。通过屏蔽目标屏蔽对象,利用目标屏蔽对象的缓存数据确保目标程序的正常运行,可以显著提高目标程序的运行速度,满足用户对目标程序的一些测试需求。
210.在一些实施例中,上述方法还包括:
211.客户端显示初始页面,所述初始页面包括目标程序对应的信息配置控件和确认控件;
212.若客户端检测到针对所述信息配置控件的编辑指令,获取所述信息配置控件对应的配置信息;
213.若客户端检测到针对所述确认控件的触发指令,对所述配置信息进行校验,在校验通过的情况下执行所述目标页面的显示。
214.在一个具体的实施例中,所述对所述配置信息进行校验,在校验通过的情况下执行所述目标页面的显示,包括:
215.校验所述配置信息中的自定义名称是否符合预设的编码形式;
216.校验所述配置信息中的唯一标识是否唯一;
217.校验所述配置信息中的保存路径是否为合法路径;
218.在所述自定义名称符合预设的编码形式、所述唯一标识唯一以及所述保存路径为合法路径的情况下,确定校验通过,执行所述目标页面的显示。
219.本说明书实施例中,通过对目标程序的配置信息进行校验,可以确保目标程序的配置信息符合规范,便于后续对目标程序的运维和管理。
220.如图9所示,为本技术提供的一种初始页面的示意图。若检测到针对标识为“创建工程”的创建控件的触发指令,初始页面会显示目标程序对应的信息配置控件。
221.本技术通过在服务端预先设置工具包依赖关系,可以适应软件开发工具包间依赖关系复杂的场景,以及在服务端接收到客户端发送的目标软件开发工具包对应的工具包下载请求信息的情况下,迅速地确定目标软件开发工具包依赖的基础软件开发工具包,有利于在较短时间内完成目标软件开发工具包和基础软件开发工具包的下载。进而,通过基于
本地预设的代码模板、目标软件开发工具包和基础软件开发工具包,自动生成目标程序,所采用的生成方案还能够确保目标程序的正常运行,有利于提高用户体验。此外,本技术通过客户端向服务端发送目标软件开发工具包对应的更新查询信息,接收服务端发送的更新开发软件工具包,可以基于更新开发软件工具包,对目标程序进行更新,在无需用户手动操作的情况下,自动实现目标程序的更新,所采用的更新方案还能够确保更新后的目标程序的正常运行,进一步提高用户体验。
222.在一个具体的实施例中,如图10所示,为本技术提供的另一种程序处理方法,应用于客户端;上述方法包括:
223.s1001:向服务端发送目标软件开发工具包对应的工具包下载请求。
224.在一种可选的实施例中,上述方法还包括:
225.显示目标页面,所述目标页面包括至少一个软件开发工具包的选择控件;
226.若检测到针对所述至少一个选择控件的选择指令,确定所述选择指令对应的目标软件开发工具包;
227.相应的,所述向服务端发送目标软件开发工具包对应的工具包下载请求包括:
228.若检测到针对所述目标页面的确认控件的触发指令,向服务端发送工具包下载请求,所述工具包下载请求包括所述目标软件开发工具包的标识信息。
229.s1003:接收所述服务端发送的所述目标软件开发工具包和基础软件开发工具包,其中,所述基础软件开发工具包为所述服务端基于预设的工具包依赖信息确定的;
230.s1005:基于本地预设的代码模板、所述目标软件开发工具包和所述基础软件开发工具包,生成目标程序,跳转至所述目标程序对应的程序调试页面,所述程序调试页面包括程序运行控件。
231.在一种具体的实施例中,所述基于本地预设的代码模板、所述目标软件开发工具包和所述基础软件开发工具包,生成目标程序包括:
232.提取所述目标软件开发工具包中的至少两个第一调用对象;
233.提取所述基础软件开发工具包中的至少两个第二调用对象;
234.基于所述本地预设的代码模板、所述至少两个第一调用对象和所述至少两个第二调用对象,生成目标程序。
235.在一种可选的实施例中,所述基于所述本地预设的代码模板、所述至少两个第一调用对象和所述至少两个第二调用对象,生成目标程序包括:
236.获取所述代码模板中按序排列的第一形式参数;
237.扫描所述目标软件开发工具包的配置文件,确定所述至少两个第一调用对象间的调用顺序信息;
238.基于所述至少两个第一调用对象间的调用顺序信息和所述第一形式参数对所述至少两个第一调用对象进行标记,得到第一标记信息,所述第一标记信息表征所述至少两个第一调用对象与所述第一形式参数间的对应关系;
239.获取所述代码模板中按序排列的第二形式参数;
240.扫描所述基础软件开发工具包的配置文件,确定所述至少两个第二调用对象间的调用顺序信息;
241.基于所述至少两个第二调用对象间的调用顺序信息和所述第二形式参数对所述
至少两个第二调用对象进行标记,得到第二标记信息,所述第二标记信息表征所述至少两个第二调用对象与所述第二形式参数间的对应关系;
242.根据所述本地预设的代码模板、所述第一标记信息和所述第二标记信息,生成目标程序。
243.在一种可选的实施例中,上述方法还包括:
244.显示初始页面,所述初始页面包括目标程序对应的信息配置控件和确认控件;
245.若检测到针对所述信息配置控件的编辑指令,获取所述信息配置控件对应的配置信息;
246.若检测到针对所述确认控件的触发指令,对所述配置信息进行校验,在校验通过的情况下执行所述目标页面的显示。
247.s1007:若检测到针对所述程序运行控件的触发指令,向服务端发送软件包更新查询请求;
248.s1009:接收所述服务端在目标软件开发工具对应的更新信息指示存在更新的情况下,发送的更新软件开发工具包;
249.s1011:基于所述更新软件开发工具包更新所述目标程序,得到更新后的目标程序,运行所述更新后的目标程序。
250.在一种可选的实施例中,所述基于所述更新软件开发工具包更新所述目标程序,得到更新后的目标程序包括:
251.获取所述更新软件开发工具包的配置文件;
252.若所述更新软件开发工具包为更新的目标软件开发工具包,获取所述目标软件开发工具包的配置文件;
253.基于所述更新软件开发工具包的配置文件,对所述目标软件开发工具包的配置文件进行覆盖,得到更新后目标软件开发工具包;
254.扫描所述更新后目标软件开发工具包的配置文件,确定所述更新后目标软件开发工具包中的至少两个第四调用对象间的调用顺序信息;
255.基于所述至少两个第四调用对象间的调用顺序信息和所述第一形式参数对所述至少两个第四调用对象进行标记,得到第三标记信息,所述第三标记信息表征所述至少两个第四调用对象与所述第一形式参数间的对应关系;
256.根据所述本地预设的代码模板、所述第三标记信息和所述第二标记信息,得到更新后的目标程序。
257.在一种可选的实施例中,所述基于所述更新软件开发工具包更新所述目标程序,得到更新后的目标程序包括:
258.获取所述更新软件开发工具包的配置文件;
259.若所述更新软件开发工具包为更新后的基础软件开发工具包,获取所述基础软件开发工具包的配置文件;
260.基于所述更新软件开发工具包的配置文件,对所述基础软件开发工具包的配置文件进行覆盖,得到更新后基础软件开发工具包;
261.扫描所述更新后基础软件开发工具包的配置文件,确定所述更新后基础软件开发工具包中的至少两个第五调用对象间的调用顺序信息;
262.基于所述至少两个第五调用对象间的调用顺序信息和所述第二形式参数对所述至少两个第五调用对象进行标记,得到第四标记信息,所述第四标记信息表征所述至少两个第五调用对象与所述第二形式参数间的对应关系;
263.根据所述本地预设的代码模板、所述第一标记信息和所述第四标记信息,得到更新后的目标程序。
264.在一些实施例中,所述基于所述更新软件开发工具包更新所述目标程序,得到更新后的目标程序包括:
265.提取所述更新软件开发工具包的至少两个第三调用对象;
266.根据所述至少两个第三调用对象,对所述目标程序进行更新,获得所述更新后的目标程序。
267.在一种可选的实施例中,所述根据所述至少两个第三调用对象,对所述目标程序进行更新包括:
268.从所述至少两个第一调用对象和所述至少两个第二调用对象中,确定与所述至少两个第三调用对象存在冲突的冲突对象;
269.基于所述至少两个第三调用对象更新所述目标程序中与所述冲突对象对应程序信息。
270.在一种可选的实施例中,所述根据所述至少两个第三调用对象,对所述目标程序进行更新包括:
271.从所述至少两个第三调用对象中,确定与所述至少两个第一调用对象、所述至少两个第二调用对象不同的新增对象;
272.确定所述新增对象与所述至少两个第一调用对象间的第一调用顺序信息;或者,确定所述新增对象与所述至少两个第二调用对象间的第二调用顺序信息;
273.基于所述第一调用顺序信息或者所述第二调用顺序信息,确定所述新增对象对应的程序信息在所述目标程序中的添加位置;
274.基于所述新增对象对应的程序信息和所述添加位置,更新所述目标程序。
275.在一种可选的实施例中,所述基于所述更新软件开发工具包更新所述目标程序,得到更新后的目标程序还包括:
276.获取所述更新软件开发工具包的资源文件;
277.若所述更新软件开发工具包为更新后的目标软件开发工具包,获取所述目标软件开发工具包的资源文件;
278.基于所述更新软件开发工具包的资源文件,对所述目标软件开发工具包的资源文件进行覆盖,得到更新后基础软件开发工具包;
279.若所述更新软件开发工具包为更新后的基础软件开发工具包,获取所述基础软件开发工具包的资源文件;
280.基于所述更新软件开发工具包的资源文件,对所述基础软件开发工具包的资源文件进行覆盖,得到更新后基础软件开发工具包。
281.本技术基于本地预设的代码模板、目标软件开发工具包和基础软件开发工具包,自动生成目标程序,所采用的生成方案还能够确保目标程序的正常运行,有利于提高用户体验。此外,本技术通过客户端向服务端发送目标软件开发工具包对应的更新查询信息,接
收服务端发送的更新开发软件工具包,可以基于更新开发软件工具包,对目标程序进行更新,在无需用户手动操作的情况下,自动实现目标程序的更新,所采用的更新方案还能够确保更新后的目标程序的正常运行,进一步提高用户体验。
282.在一个具体的实施例中,如图11所示,为本技术提供的又一种程序处理方法,应用于服务端;所述方法,包括:
283.s1101:接收客户端发送的目标软件开发包对应的工具包下载请求,基于预设的工具包依赖关系,确定所述目标软件开发工具包依赖的基础软件开发工具包,向客户端发送所述目标软件开发工具包和所述基础软件开发工具。
284.本说明书实施例中,预先在服务端设置至少一个软件开发工具包的依赖关系。
285.在一种具体的实施例中,所述基于预设的工具包依赖关系,确定所述目标软件开发工具包依赖的基础软件开发工具包包括:
286.获取预设的工具包依赖关系;
287.根据工具包下载请求携带的目标软件开发工具包的标识信息,从预设的工具包依赖关系中,确定目标软件开发工具包的依赖信息。
288.根据目标软件开发工具包的依赖信息,确定目标软件开发工具包依赖的基础软件开发工具包。
289.s1103:接收客户端在检测到针对程序运行控件的触发指令的情况下,发送的软件包更新查询请求,确定所述目标软件开发工具对应的更新信息;
290.s1105:在目标软件开发工具对应的更新信息指示存在更新的情况下,向客户端发送更新软件开发工具包。
291.本技术通过在服务端预先设置工具包依赖关系,可以适应软件开发工具包间依赖关系复杂的场景,以及在服务端接收到客户端发送的目标软件开发工具包对应的工具包下载请求信息的情况下,迅速地确定目标软件开发工具包依赖的基础软件开发工具包,有利于在较短时间内完成目标软件开发工具包和基础软件开发工具包的下载。
292.在一个具体的实施例中,如图12所示,为本技术提供的一种程序处理装置,应用于程序处理系统,所述程序处理系统包括客户端和服务端;所述装置包括:
293.第一发送模块1201,用于客户端向服务端发送目标软件开发工具包对应的工具包下载请求。
294.第一确定模块1203,用于服务端基于预设的工具包依赖关系,确定所述目标软件开发工具包依赖的基础软件开发工具包。
295.第二发送模块1205,用于向客户端发送所述目标软件开发工具包和所述基础软件开发工具包。
296.生成模块1207,用于客户端基于本地预设的代码模板、所述目标软件开发工具包和所述基础软件开发工具包,生成目标程序,跳转至所述目标程序对应的程序调试页面,所述程序调试页面包括程序运行控件。
297.第二发送模块1209,用于客户端若检测到针对所述程序运行控件的触发指令,向服务端发送软件包更新查询请求。
298.接收模块1211,用于服务端确定所述目标软件开发工具对应的更新信息。
299.第二确定模块1213,用于服务端在所述更新信息指示存在更新的情况下,确定所
述更新信息对应的更新软件开发工具包。
300.第三发送模块1215,用于向客户端发送所述更新软件开发工具包。
301.更新模块1217,用于客户端基于所述更新软件开发工具包更新所述目标程序,运行更新后的目标程序。
302.在一些实施例中,所述装置还包括:
303.第一显示模块,用于客户端显示目标页面,所述目标页面包括至少一个软件开发工具包的选择控件;
304.第一检测模块,用于若客户端检测到针对所述至少一个选择控件的选择指令,确定所述选择指令对应的目标软件开发工具包;
305.相应的,所述第一发送模块1201包括:
306.检测单元,用于若客户端检测到针对所述目标页面的确认控件的触发指令,向服务端发送工具包下载请求,所述工具包下载请求包括所述目标软件开发工具包的标识信息。
307.在一些实施例中,所述生成模块1207包括:
308.第一提取单元,用于提取所述目标软件开发工具包中的至少两个第一调用对象;
309.第二提取单元,用于提取所述基础软件开发工具包中的至少两个第二调用对象;
310.生成单元,用于基于所述本地预设的代码模板、所述至少两个第一调用对象和所述至少两个第二调用对象,生成目标程序。
311.在一些实施例中,生成单元包括:
312.第一获取子单元,用于获取所述代码模板中按序排列的第一形式参数;
313.第一扫描子单元,用于扫描所述目标软件开发工具包的配置文件,确定所述至少两个第一调用对象间的调用顺序信息;
314.第一标记子单元,用于基于所述至少两个第一调用对象间的调用顺序信息和所述第一形式参数对所述至少两个第一调用对象进行标记,得到第一标记信息,所述第一标记信息表征所述至少两个第一调用对象与所述第一形式参数间的对应关系;
315.第二获取单元,用于获取所述代码模板中按序排列的第二形式参数;
316.第二扫描子单元,用于扫描所述基础软件开发工具包的配置文件,确定所述至少两个第二调用对象间的调用顺序信息;
317.第二标记子单元,用于基于所述至少两个第二调用对象间的调用顺序信息和所述第二形式参数对所述至少两个第二调用对象进行标记,得到第二标记信息,所述第二标记信息表征所述至少两个第二调用对象与所述第二形式参数间的对应关系;
318.生成子单元,用于根据所述本地预设的代码模板、所述第一标记信息和所述第二标记信息,生成目标程序。
319.在一些实施例中,所述装置还包括:
320.第二显示模块,用于显示下载进度显示页面,所述下载进度显示页面包括所述目标软件开发工具包和所述基础软件开发工具包对应的下载进度信息;
321.相应的,所述生成模块,还用于在所述下载进度信息指示软件包下载完成的情况下,基于本地预设的代码模板、所述目标软件开发工具包和所述基础软件开发工具包,生成目标程序。
322.在一些实施例中,所述更新模块1217包括:
323.第一获取单元,用于获取所述更新软件开发工具包的配置文件;
324.第二获取单元,用于若所述更新软件开发工具包为更新的目标软件开发工具包,获取所述目标软件开发工具包的配置文件;
325.第一覆盖单元,用于基于所述更新软件开发工具包的配置文件,对所述目标软件开发工具包的配置文件进行覆盖,得到更新后目标软件开发工具包;
326.第一扫描单元,用于扫描所述更新后目标软件开发工具包的配置文件,确定所述更新后目标软件开发工具包中的至少两个第四调用对象间的调用顺序信息;
327.第一标记单元,用于基于所述至少两个第四调用对象间的调用顺序信息和所述第一形式参数对所述至少两个第四调用对象进行标记,得到第三标记信息,所述第三标记信息表征所述至少两个第四调用对象与所述第一形式参数间的对应关系;
328.更新单元,用于根据所述本地预设的代码模板、所述第三标记信息和所述第二标记信息,得到更新后的目标程序。
329.在一些实施例中,所述更新单元包括:
330.第三获取子单元,用于获取所述更新软件开发工具包的配置文件;
331.第四获取子单元,用于若所述更新软件开发工具包为更新后的基础软件开发工具包,获取所述基础软件开发工具包的配置文件;
332.第二覆盖子单元,用于基于所述更新软件开发工具包的配置文件,对所述基础软件开发工具包的配置文件进行覆盖,得到更新后基础软件开发工具包;
333.第二扫描子单元,用于扫描所述更新后基础软件开发工具包的配置文件,确定所述更新后基础软件开发工具包中的至少两个第五调用对象间的调用顺序信息;
334.第二标记子单元,用于基于所述至少两个第五调用对象间的调用顺序信息和所述第二形式参数对所述至少两个第五调用对象进行标记,得到第四标记信息,所述第四标记信息表征所述至少两个第五调用对象与所述第二形式参数间的对应关系;
335.第二更新子单元,用于根据所述本地预设的代码模板、所述第一标记信息和所述第四标记信息,得到更新后的目标程序。
336.在一些实施例中,所述更新单元包括:
337.第一提取子单元,用于提取所述更新软件开发工具包的至少两个第三调用对象;
338.第三更新子单元,用于根据所述至少两个第三调用对象,对所述目标程序进行更新,获得所述更新后的目标程序。
339.在一些实施例中,所述第三更新子单元包括:
340.第一确定子子单元,用于从所述至少两个第一调用对象和所述至少两个第二调用对象中,确定与所述至少两个第三调用对象存在冲突的冲突对象;
341.第一更新子子单元,用于基于所述至少两个第三调用对象更新所述目标程序中与所述冲突对象对应程序信息。
342.在一些实施例中,所述第三更新子单元包括:
343.第二确定子子单元,用于从所述至少两个第三调用对象中,确定与所述至少两个第一调用对象、所述至少两个第二调用对象不同的新增对象;
344.第三确定子子单元,用于确定所述新增对象与所述至少两个第一调用对象间的第
一调用顺序信息;或者,确定所述新增对象与所述至少两个第二调用对象间的第二调用顺序信息;
345.第四确定子子单元,用于基于所述第一调用顺序信息或者所述第二调用顺序信息,确定所述新增对象对应的程序信息在所述目标程序中的添加位置;
346.第二更新子子单元,用于基于所述新增对象对应的程序信息和所述添加位置,更新所述目标程序。
347.在一些实施例中,所述装置还包括:
348.第三显示模块,用于显示初始页面,所述初始页面包括目标程序对应的信息配置控件和确认控件;
349.第二检测模块,用于若检测到针对所述信息配置控件的编辑指令,获取所述信息配置控件对应的配置信息;
350.第三检测模块,用于若检测到针对所述确认控件的触发指令,对所述配置信息进行校验,在校验通过的情况下执行所述目标页面的显示。
351.所述的装置实施例中的装置与方法实施例基于同样地发明构思。
352.在一个具体的实施例中,如图13所示,为本技术提供的一种程序处理装置,应用于客户端;所述装置包括:
353.第一发送模块1301,用于向服务端发送目标软件开发工具包对应的工具包下载请求;
354.第一接收模块1303,用于接收所述服务端发送的所述目标软件开发工具包和基础软件开发工具包,其中,所述基础软件开发工具包为所述服务端基于预设的工具包依赖信息确定的;
355.生成模块1305,用于基于本地预设的代码模板、所述目标软件开发工具包和所述基础软件开发工具包,生成目标程序,跳转至所述目标程序对应的程序调试页面,所述程序调试页面包括程序运行控件;
356.第二发送模块1307,用于若检测到针对所述程序运行控件的触发指令,向服务端发送软件包更新查询请求;
357.第二接收模块1309,用于接收所述服务端在目标软件开发工具对应的更新信息指示存在更新的情况下,发送的更新软件开发工具包;
358.更新模块1311,用于基于所述更新软件开发工具包更新所述目标程序,得到更新后的目标程序,运行所述更新后的目标程序。
359.在一些实施例中,所述生成模块1305,包括:
360.第一提取单元,用于提取所述目标软件开发工具包中的至少两个第一调用对象;
361.第二提取单元,用于提取所述基础软件开发工具包中的至少两个第二调用对象;
362.生成单元,用于基于所述本地预设的代码模板、所述至少两个第一调用对象和所述至少两个第二调用对象,生成目标程序。
363.在一些实施例中,所述生成单元,包括:
364.第一获取子单元,用于获取所述代码模板中按序排列的第一形式参数;
365.第一扫描子单元,用于扫描所述目标软件开发工具包的配置文件,确定所述至少两个第一调用对象间的调用顺序信息;
366.第一标记子单元,用于基于所述至少两个第一调用对象间的调用顺序信息和所述第一形式参数对所述至少两个第一调用对象进行标记,得到第一标记信息,所述第一标记信息表征所述至少两个第一调用对象与所述第一形式参数间的对应关系;
367.第二获取子单元,用于获取所述代码模板中按序排列的第二形式参数;
368.第二扫描子单元,用于扫描所述基础软件开发工具包的配置文件,确定所述至少两个第二调用对象间的调用顺序信息;
369.第二标记子单元,用于基于所述至少两个第二调用对象间的调用顺序信息和所述第二形式参数对所述至少两个第二调用对象进行标记,得到第二标记信息,所述第二标记信息表征所述至少两个第二调用对象与所述第二形式参数间的对应关系;
370.第一生成子单元,用于根据所述本地预设的代码模板、所述第一标记信息和所述第二标记信息,生成目标程序。
371.在一些实施例中,所述更新模块1311包括:
372.第一获取单元,用于获取所述更新软件开发工具包的配置文件;
373.第二获取单元,用于若所述更新软件开发工具包为更新的目标软件开发工具包,获取所述目标软件开发工具包的配置文件;
374.第一更新单元,用于基于所述更新软件开发工具包的配置文件,对所述目标软件开发工具包的配置文件进行覆盖,得到更新后目标软件开发工具包;
375.第一扫描单元,用于扫描所述更新后目标软件开发工具包的配置文件,确定所述更新后目标软件开发工具包中的至少两个第四调用对象间的调用顺序信息;
376.第一标记单元,用于基于所述至少两个第四调用对象间的调用顺序信息和所述第一形式参数对所述至少两个第四调用对象进行标记,得到第三标记信息,所述第三标记信息表征所述至少两个第四调用对象与所述第一形式参数间的对应关系;
377.第二更新单元,用于根据所述本地预设的代码模板、所述第三标记信息和所述第二标记信息,得到更新后的目标程序。
378.在一些实施例中,所述更新模块1311包括:
379.第三获取单元,用于获取所述更新软件开发工具包的配置文件;
380.第四获取单元,用于若所述更新软件开发工具包为更新后的基础软件开发工具包,获取所述基础软件开发工具包的配置文件;
381.第三更新单元,用于基于所述更新软件开发工具包的配置文件,对所述基础软件开发工具包的配置文件进行覆盖,得到更新后基础软件开发工具包;
382.第二扫描单元,用于扫描所述更新后基础软件开发工具包的配置文件,确定所述更新后基础软件开发工具包中的至少两个第五调用对象间的调用顺序信息;
383.第二标记单元,用于基于所述至少两个第五调用对象间的调用顺序信息和所述第二形式参数对所述至少两个第五调用对象进行标记,得到第四标记信息,所述第四标记信息表征所述至少两个第五调用对象与所述第二形式参数间的对应关系;
384.第四更新单元,用于根据所述本地预设的代码模板、所述第一标记信息和所述第四标记信息,得到更新后的目标程序。
385.在一些实施例中,所述更新模块1311包括:
386.第一提取单元,用于提取所述更新软件开发工具包的至少两个第三调用对象;
387.第五更新单元,用于根据所述至少两个第三调用对象,对所述目标程序进行更新,获得所述更新后的目标程序。
388.在一些实施例中,所述第五更新单元包括:
389.第一确定子单元,用于从所述至少两个第一调用对象和所述至少两个第二调用对象中,确定与所述至少两个第三调用对象存在冲突的冲突对象;
390.第一更新子单元,用于基于所述至少两个第三调用对象更新所述目标程序中与所述冲突对象对应程序信息。
391.在一些实施例中,所述第五更新单元包括:
392.第二确定子单元,用于从所述至少两个第三调用对象中,确定与所述至少两个第一调用对象、所述至少两个第二调用对象不同的新增对象;
393.第三确定子单元,用于确定所述新增对象与所述至少两个第一调用对象间的第一调用顺序信息;或者,确定所述新增对象与所述至少两个第二调用对象间的第二调用顺序信息;
394.第四确定子单元,用于基于所述第一调用顺序信息或者所述第二调用顺序信息,确定所述新增对象对应的程序信息在所述目标程序中的添加位置;
395.第二更新子单元,用于基于所述新增对象对应的程序信息和所述添加位置,更新所述目标程序。
396.在一些实施例中,所述装置还包括:
397.第一显示模块,用于显示下载进度显示页面,所述下载进度显示页面包括所述目标软件开发工具包和所述基础软件开发工具包对应的下载进度信息;
398.相应的,所述生成模块还包括:
399.第二生成子单元,用于在所述下载进度信息指示软件包下载完成的情况下,基于本地预设的代码模板、所述目标软件开发工具包和所述基础软件开发工具包,生成目标程序。
400.在一些实施例中,所述装置还包括:
401.第二显示模块,用于显示目标页面,所述目标页面包括至少一个软件开发工具包的选择控件;
402.第一检测模块,用于若检测到针对所述至少一个选择控件的选择指令,确定所述选择指令对应的目标软件开发工具包;
403.相应的,所述第一发送模块包括:
404.发送单元,用于若检测到针对所述目标页面的确认控件的触发指令,向服务端发送工具包下载请求,所述工具包下载请求包括所述目标软件开发工具包的标识信息。
405.在一些实施例中,所述装置还包括:
406.第三显示模块,用于显示初始页面,所述初始页面包括目标程序对应的信息配置控件和确认控件;
407.第二检测模块,用于若检测到针对所述信息配置控件的编辑指令,获取所述信息配置控件对应的配置信息;
408.第三检测模块,用于若检测到针对所述确认控件的触发指令,对所述配置信息进行校验,在校验通过的情况下执行所述目标页面的显示。
409.所述的装置实施例中的装置与方法实施例基于同样地发明构思。
410.在一个具体的实施例中,如图14所示,为本技术提供的一种程序处理装置,应用于服务端;所述装置包括:
411.第一接收模块1401,用于接收客户端发送的目标软件开发包对应的工具包下载请求,基于预设的工具包依赖关系,确定所述目标软件开发工具包依赖的基础软件开发工具包,向客户端发送所述目标软件开发工具包和所述基础软件开发工具;
412.第二接收模块1403,用于接收客户端在检测到针对程序运行控件的触发指令的情况下,发送的软件包更新查询请求,确定所述目标软件开发工具对应的更新信息;
413.发送模块1405,用于在目标软件开发工具对应的更新信息指示存在更新的情况下,向客户端发送更新软件开发工具包。
414.在一些实施例中,所述第一接收模块包括:
415.获取单元,用于获取预设的工具包依赖关系;
416.第一确定单元,用于根据工具包下载请求携带的目标软件开发工具包的标识信息,从预设的工具包依赖关系中,确定目标软件开发工具包的依赖信息。
417.第二确定单元,用于根据目标软件开发工具包的依赖信息,确定目标软件开发工具包依赖的基础软件开发工具包。
418.本技术通过在服务端预先设置工具包依赖关系,可以适应软件开发工具包间依赖关系复杂的场景,以及在服务端接收到客户端发送的目标软件开发工具包对应的工具包下载请求信息的情况下,迅速地确定目标软件开发工具包依赖的基础软件开发工具包,有利于在较短时间内完成目标软件开发工具包和基础软件开发工具包的下载。
419.所述的装置实施例中的装置与方法实施例基于同样地发明构思。
420.在一个具体的实施例中,本技术提供一种程序处理设备,应用于客户端;所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序、所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上所述的程序处理方法。
421.所述的设备实施例中的设备与方法实施例基于同样地发明构思。
422.在一个具体的实施例中,本技术实施例提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上所述的程序处理方法。
423.本技术实施例提供了一种程序处理服务器,该业务运营的数据处理服务器包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现如上述方法实施例所提供的程序处理方法。
424.存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及程序处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
425.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程
序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
426.本技术实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图15是本技术实施例提供的一种程序处理方法的服务器的硬件结构框图。如图15所示,该服务器1500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,cpu)1510(处理器1510可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器1530,一个或一个以上存储应用程序1523或数据1522的存储介质1520(例如一个或一个以上海量存储设备)。其中,存储器1530和存储介质1520可以是短暂存储或持久存储。存储在存储介质1520的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1510可以设置为与存储介质1520通信,在服务器1500上执行存储介质1520中的一系列指令操作。服务器1500还可以包括一个或一个以上电源1560,一个或一个以上有线或无线网络接口1550,一个或一个以上输入输出接口1540,和/或,一个或一个以上操作系统1521,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等等。
427.输入输出接口1540可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器1500的通信供应商提供的无线网络。在一个实例中,输入输出接口1540包括一个网络适配器(network interface controller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口1540可以为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
428.本领域普通技术人员可以理解,图15所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器1500还可包括比图15中所示更多或者更少的组件,或者具有与图15所示不同的配置。
429.本技术的实施例还提供了一种存储介质,所述存储介质可设置于服务器之中以保存用于实现方法实施例中一种程序处理方法相关的至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现上述方法实施例提供的程序处理方法。
430.可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,randomaccess memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
431.由上述本技术提供的程序处理方法、装置、设备或存储介质的实施例可见,本技术基于本地预设的代码模板、所述目标软件开发工具包和所述基础软件开发工具包,生成目标程序,可实现目标程序的自动生成。基于所述更新软件开发工具包更新所述目标程序,得到更新后的目标程序,运行所述更新后的目标程序,可实现目标程序的自动更新。
432.需要说明的是:上述本技术实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且
仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
433.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
434.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
435.以上所述仅为本技术的较佳实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献