软件管理方法以及相关设备与流程

文档序号:33274658发布日期:2023-02-24 19:21阅读:27来源:国知局
软件管理方法以及相关设备与流程

1.本技术实施例涉及计算技术领域,尤其涉及软件管理方法以及相关设备。


背景技术:

2.当前由于客户数量的剧增以及客制化需求的增加,由一个tv产品衍生出来的客制化产品越来越多,增加了软件编译以及软件管理的复杂性和困难程度。
3.对于这种情况,现有技术中要么依赖于开发人员手动修改每一个客制化项目的项目代码,要么基于宏控制代码的客制化过程。但前一种方式基于开发人员手动修改项目代码效率低下,而后一种方式也受限于宏仅能提供极少的客制化对象。


技术实现要素:

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.在一种具体实现方式中,所述代码编译指令为远程指令,所述编译所述预设配置代码,获得并向所述终端发送与所述代码编译指令对应的编译结果,包括:
34.将所述代码编译指令转换为shell指令,并通过shell命令或脚本编译所述代码编译指令包含的预设配置代码,以获得并向所述终端发送所述编译结果。
35.在一种具体实现方式中,所述方法还包括:
36.若所述编译结果为编译成功,则基于所述目标项目的项目代码生成并向所述终端发送配置文件,所述配置文件包括所述目标项目提供的每个客制化对象对应的当前配置。
37.本技术实施例第三方面提供一种终端,包括:
38.确定单元,用于响应于代码编译的操作,将目标项目提供的至少一个客制化对象中,对应的当前配置为待修改配置的每个客制化对象确定为目标客制化对象;
39.编译单元,用于向所述目标项目对应的服务器发送代码编译指令,并接收所述服务器返回的编译结果,所述代码编译指令包括:与每个目标客制化对象对应的当前配置相应的预设配置代码;
40.配置单元,用于基于所述编译结果向所述服务器发送配置修改指令,以使得所述服务器将所述目标项目的项目代码中与每个所述目标客制化对象对应的代码替换为相应的预设配置代码,所述配置修改指令包括:与每个目标客制化对象对应的当前配置相应的预设配置代码。
41.在一种具体实现方式中,所述确定单元,还用于基于操作人员从每个所述目标客制化对象对应的配置选择控件包含的至少一个可选配置中选择任一可选配置的操作,确定每个目标客制化对象对应的当前配置。
42.在一种具体实现方式中,所述终端还包括:获取单元以及初始化单元;
43.所述获取单元,用于响应于操作人员选择所述目标项目的操作,获取所述操作人员输入的账户信息以及服务器信息;
44.所述获取单元,还用于若所述目标项目,所述账户信息以及所述服务器信息满足预设的匹配条件,则从与所述服务器信息对应的服务器获取所述项目代码;
45.所述确定单元,还用于基于所述项目代码,确定所述目标项目提供的每个客制化对象对应的默认配置;
46.所述初始化单元,用于初始化所述项目管理界面,以在所述项目管理界面展示所述每个客制化对象以及所述每个客制化对象对应的默认配置。
47.在一种具体实现方式中,所述初始化单元,还用于若获取到运行异常反馈,则初始化所述项目管理界面,所述运行异常反馈包括预设定时器的标志位未更新和/或运行异常通知。
48.在一种具体实现方式中,所述配置单元,具体用于基于所述编译结果生成配置修改接口调用请求,并将所述配置修改接口调用请求添加至接口调用队列中;
49.根据添加至所述接口调用队列中的顺序,从先至后依次将所述接口调用队列中每个未完成的接口调用请求确定为目标接口调用请求;
50.若所述配置修改接口调用请求为目标接口调用请求,则通过配置修改接口向所述服务器发送所述配置修改指令,并接收所述服务器通过所述配置修改接口返回的配置修改反馈。
51.在一种具体实现方式中,所述终端还包括:锁定单元;
52.所述锁定单元,用于响应于操作人员在项目管理界面选择代码编译控件的操作,执行代码编译的操作,并锁定所述项目管理界面直至接收到所述编译结果。
53.在一种具体实现方式中,所述终端还包括:判断单元;
54.所述判断单元,用于响应于操作人员在任一客制化对象对应的至少一个可选配置中选择目标配置的操作,判断所述任一客制化对象对应的目标配置是否存在预设匹配关系;
55.所述配置单元,还用于若存在所述预设匹配关系,则将每个匹配客制化对象对应
的配置修改为相应的匹配配置,所述预设匹配关系包含至少一个匹配客制化对象以及每个匹配客制化对象对应的匹配配置。
56.在一种具体实现方式中,所述终端还包括:记录单元;
57.所述记录单元,用于接收所述服务器发送的编译时长,并在编译日志中新增包括所述编译时长、所述编译结果以及二者之间的关联关系的编译记录,所述编译时长为所述服务器编译所述预设配置代码的时长。
58.本技术实施例第四方面提供一种服务器,包括:
59.接收单元,用于接收终端发送的与目标项目对应的代码编译指令,所述代码编译指令包括:与每个目标客制化对象对应的当前配置相应的预设配置代码;
60.编译单元,用于编译所述预设配置代码,获得并向所述终端发送与所述代码编译指令对应的编译结果;
61.配置单元,用于响应于所述终端基于所述编译结果发送的配置修改指令,将所述目标项目的项目代码中与每个所述目标客制化对象对应的代码,替换为相应的预设配置代码,以完成所述目标项目的客制化,所述配置修改指令包括:与每个目标客制化对象对应的当前配置相应的预设配置代码。
62.在一种具体实现方式中,所述代码编译指令为远程指令,所述编译单元,具体用于将所述代码编译指令转换为shell指令,并通过shell命令或脚本编译所述代码编译指令包含的预设配置代码,以获得并向所述终端发送所述编译结果。
63.在一种具体实现方式中,所述配置单元,还用于若所述编译结果为编译成功,则基于所述目标项目的项目代码生成并向所述终端发送配置文件,所述配置文件包括所述目标项目提供的每个客制化对象对应的当前配置。
64.本技术实施例第五方面提供一种终端,包括:
65.中央处理器,存储器以及输入输出接口;
66.所述存储器为短暂存储存储器或持久存储存储器;
67.所述中央处理器配置为与所述存储器通信,并执行所述存储器中的指令操作以执行第一方面所述的方法。
68.本技术实施例第六方面提供一种终端,包括:
69.中央处理器,存储器以及输入输出接口;
70.所述存储器为短暂存储存储器或持久存储存储器;
71.所述中央处理器配置为与所述存储器通信,并执行所述存储器中的指令操作以执行第二方面所述的方法。
72.本技术实施例第七方面提供一种包含指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行如第一方面或第二方面所述的方法。
73.本技术实施例第八方面提供一种计算机存储介质,所述计算机存储介质中存储有指令,所述指令在计算机上执行时,使得所述计算机执行如第一方面或第二方面所述的方法。
74.从以上技术方案可以看出,本技术实施例具有以下优点:终端可以向服务器发起代码编译指令,代码编译指令中包括:与每个目标客制化对象对应的当前配置相应的预设配置代码,服务器可以基于预设配置代码进行编译并获得编译结果。然后,终端基于编译结
果向服务器发送配置修改指令,服务器根据配置修改指令可以将目标项目的项目代码中与目标客制化对象对应的代码替换为相应的预设配置代码,以完成目标项目的客制化。本实施例直接通过包含目标客制化对象对应的当前配置的代码编译指令以及配置修改指令,实现软件编译以及软件客制化提升了软件编译效率,同时也不依赖于宏实现代码客制化大大扩展了目标项目可以提供的客制化对象。
附图说明
75.图1为本技术实施例公开的软件管理方法的一种系统架构图;
76.图2为本技术实施例公开的软件管理方法的一种流程示意图;
77.图3为本技术实施例公开的软件管理界面的一种示例图;
78.图4为本技术实施例公开的接口调用方法的一个示例图;
79.图5a为本技术实施例公开的系统防卡方法的一种流程示意图;
80.图5b为本技术实施例公开的系统防卡方法的另一流程示意图;
81.图6为本技术实施例公开的软件管理方法的另一流程示意图;
82.图7为本技术实施例公开的终端的一个结构示意图;
83.图8为本技术实施例公开的服务器的一个结构示意图;
84.图9为本技术实施例公开的软件管理设备的一个结构示意图。
具体实施方式
85.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
86.本技术实施例提供了软件管理方法以及相关设备,用于提升软件编译效率并减少客制化对象的局限性。
87.请参阅1,为了更好的实现本技术提供的软件管理方法,本技术实施例提供一种软件管理系统,该系统至少包括终端101以及服务器102。该系统采用多编程语言,在终端101上,上层使用h5技术搭建ui界面,底层使用python来进行逻辑和脚本操作,中间层使用eel模块将python接口暴露给h5上层;终端101通过安全外壳协议(ssh,secure shell)远程连接并操控服务器102;服务器102使用shell脚本执行终端101发送的各种指令。
88.具体的,上层可以基于html、javascript以及css等编程语言编写ui界面,并在ui界面提供不同的控件以供操作人员进行操作,控件可以包括但不限于:文本输入框、按钮、下拉框以及复选框等。其中,ui界面包括但不限于:登录界面以及项目管理界面。
89.中间层主要用于管理底层python接口,并将python接口通过网络通信的方式暴露给上层html几面,实现html间接调用python接口。
90.底层使用python语言封装逻辑接口,以供软件管理系统实现包括但不限于以下功能:远程字符查找、远程文件搜索、用户登录与退出、远程软件编译、远程客制化软件。所有逻辑都通过python实现,html只负责与ui界面进行交互。
91.基于ssh的远程连接,可以采用基于密钥的安全验证,对登录软件管理系统的账户
信息进行验证,确认账户是否有相应项目的管理权限。需要说明的是,管理员可以通过账户权限管理系统,对账户信息以及每个账户的账户权限(允许访问的项目)进行统一管理。
92.ssh还可以将终端101的控制指令传输给服务器102。当服务器102与终端101连接后,操作人员通过ui界面发起的指令经过python逻辑处理后,会议远程指令的方式发送给服务器101。服务器101可以将远程指令转换为shell命令,然后通过shell命令或脚本执行相应指令,以实现包括但不限于:软件编译、版本控制、配置修改以及统计分析等功能,然后输出编译日志或导出配置文件。最后,服务器101可以基于配置修改指令,进行软件编译以及软件输出,以完成相应项目的客制化。
93.需要说明的是,服务器101可以用独立的服务器或者是多个服务器(如服务器1021、服务器1022以及服务器1023)组成的服务器集群来实现,若为多个服务器组成的服务器集群,则该服务器集群中的每个服务器用于处理对应的至少一个项目的指令,也就是说每个服务器用于处理针对相应的项目的指令。
94.本实施例提供的软件管理系统,可以对多个项目的软件进行管理以及客制化。同时将操作人员与代码分离,操作人员只需通过ui界面即可完成客制化流程,避免应操作人员直接接触项目代码。
95.在前述软件管理系统的基础上,本技术实施例提供以下软件管理方法,可以由前述终端101以及服务器102执行,包括以下步骤:
96.201、终端响应于代码编译的操作,将目标项目提供的至少一个客制化对象中,对应的当前配置为待修改配置的每个客制化对象确定为目标客制化对象,每个客制化对象对应有至少一种可选配置。
97.响应于代码编译的操作,确定需要进行编译的内容。因为本技术实施例是对目标项目提供的客制化对象的配置进行修改,因此,需要编译的应当是实现目标项目对应的配置发生修改的客制化对象,对应的当前配置所需的预设配置代码。
98.具体的,需要从目标项目提供的至少一个客制化对象中,确定出对应的当前配置是修改后的配置(即待修改配置)的每个客制化对象作为目标客制化对象。
99.需要说明的是,本技术实施例的客制化对象包括但不限于是:ui主题、开机logo、wifi、蓝牙、应用程序、客户信息以及工厂设置中的至少一个。
100.202、终端向服务器发送与目标项目对应的代码编译指令,代码编译指令包括:与每个目标客制化对象对应的当前配置相应的预设配置代码。
101.终端在步骤201中确定目标客制化对象后,会从预设的配置代码库中获取与每个目标客制化对象对应的当前配置相应的预设配置代码,也就是说每个预设配置代码用于实现相应的目标客制化对象对应的当前配置。
102.203、服务器根据终端发送的代码编译指令,编译预设配置代码,获得并向终端发送与代码编译指令对应的编译结果。
103.在接收到代码编译指令后,服务器会编译代码编译指令中包含的每个预设配置代码,并获得前述代码编译指令的编译结果。然后,服务器获奖编译结果发送给终端,以供终端进行判断。其中,编译结果中可以包括每个预设配置代码的编译结果,编译结果用于描述相应的代码编译是否成功。
104.在一些具体实现方式中,若代码编译指令为远程指令,则本步骤可以通过以下方
式实现:将代码编译指令转换为shell指令,并通过shell命令或脚本编译代码编译指令包含的预设配置代码,以获得并向终端发送编译结果。
105.204、终端基于编译结果向服务器发送配置修改指令,配置修改指令包括:与每个目标客制化对象对应的当前配置相应的预设配置代码。
106.若终端在步骤203获得的编译结果为编译成功,则可以向服务器发送包括:与每个目标客制化对象对应的当前配置相应的预设配置代码的配置修改指令,以使得服务器完成对目标项目的客制化。
107.205、服务器基于终端发送的配置修改指令,将目标项目的项目代码中与每个目标客制化对象对应的代码替换为相应的预设配置代码。
108.服务器可以根据配置修改指令,将目标项目的项目代码中与每个目标客制化对象对应的代码替换为相应的预设配置代码,也就是说,将目标项目的项目代码中描述目标客制化对象的配置修改为目标客制化对象对应的当前配置,已完成对目标项目的客制化,实现对目标客制化对象的配置修改。
109.本实施例中,终端可以向服务器发起代码编译指令,代码编译指令中包括:与每个目标客制化对象对应的当前配置相应的预设配置代码,服务器可以基于预设配置代码进行编译并获得编译结果。然后,终端基于编译结果向服务器发送配置修改指令,服务器根据配置修改指令可以将目标项目的项目代码中与目标客制化对象对应的代码替换为相应的预设配置代码,以完成目标项目的客制化。本实施例直接通过包含目标客制化对象对应的当前配置的代码编译指令以及配置修改指令,实现软件编译以及软件客制化提升了软件编译效率,同时也不依赖于宏实现代码客制化大大扩展了目标项目可以提供的客制化对象。
110.在实际应用中,考虑到操作人员的使用便捷性,同时分离代码和操作人员,本技术实施例的各步骤都可以通过终端展示软件管理界面进行操作。
111.具体的,软件管理界面可参照图3。软件管理界面可以包括当前登录账号的账号id、退出登录按钮、当前所选项目目录、各客制化对象、各客制化对象相应的配置选择控件、日志显示区(用于展示编译日志)、代码编译按钮、配置修改按钮以及清空日志按钮(用于清空日志显示区域中当前显示的全部信息)。需要说明的是,根据客制化对象对应的可选配置的不同或多少,可采用不同的配置选择控件,包括但不限于客制化对象1对应的文本输入框控件,客制化对象2对应的下拉框控件以及客制化对象3对应的开关控件。
112.在实际应用中,若对应的客制化对象只有两种可选配置,一种是启用该客制化对象对应的功能(如打开蓝牙),另一种是停用该客制化对象对应的功能(如关闭蓝牙),则该客制化对象(如蓝牙)可以通过开关控件进行配置,以启用或停用;若对应的客制化对象有多种可选配置,则可以通过下拉框实现。另外,为了提升配置修改体验,针对存在大量可选配置的客制化对象(如sda),可以提供文本输入框,以供操作人员在对应的文本输入框中对该客制化对象进行配置。在一些具体实现方式中,在步骤201之前,还包括以下步骤:基于操作人员从每个目标客制化对象对应的配置选择控件包含的至少一个可选配置中选择任一可选配置的操作,确定每个目标客制化对象对应的当前配置。
113.具体的,终端存储有针对每个客制化对象都预先配置的至少一个可选配置,操作人员可以通过每个客制化对象对应的配置选择控件,为每个客制化对象选择配置作为该客制化对象的当前配置,或者说通过对应的配置选择控件修改每个客制化对象的当前配置。
114.需要说明的是,配置选择控件可以根据需求进行设计,
115.进一步的,为了对操作人员的权限进行控制,在进行配置修改和/或代码编译之前,还应当进行账户登录。考虑到访问不同的项目应当需要不同的访问权限,因此,现需要选择需要进行客制化的目标项目,再使用有该目标项目的访问权限的账户登录软件管理系统以修改目标项目的配置。
116.在前述实施例的基础上,本技术实施例还包括以下步骤:响应于操作人员选择目标项目的操作,获取操作人员输入的账户信息以及服务器信息;若目标项目,账户信息以及服务器信息满足预设的匹配条件,则从与服务器信息对应的服务器获取项目代码;基于项目代码,确定目标项目提供的每个客制化对象对应的默认配置;初始化项目管理界面,以在项目管理界面展示每个客制化对象以及每个客制化对象对应的默认配置。
117.具体的,在操作人员选择目标项目之后,获取操作人员输入的账户信息以及运行目标项目的服务器的信息(即服务器信息)。若目标项目,账户信息以及服务器信息满足预设的匹配条件(即账户信息所指示的账户拥有访问目标项目的权限),则可以从服务器获取目标项目的项目代码。然后,根据项目代码可以从获取到目标项目提供的每个客制化对象的配置(即默认配置),并根据每个客制化对象的默认配置初始化软件管理界面。初始化就是指在软件管理界面展示目标项目的每个客制化对象以及每个客制化对象对应的默认配置。
118.需要说明的是,目标项目可以进行多次客制化,因此此处获得的目标项目的项目代码并非一定是出场代码,所以前述以及后述默认配置是指的从服务器获取到的目标项目的项目代码中确认到的各客制化对象对应的配置。
119.更进一步的,为了提升软件管理系统的可用性和,还可以通过一下方式提升软件管理系统的鲁棒性、防呆能力以及防卡能力。
120.首先,操作人员在终端的软件管理界面点击配置修改按钮(即标识有配置修改的按钮控件),然后终端向服务器发送配置修改指令并接收显示配置修改反馈都依赖于底层的配置修改接口。同理,终端向服务器发送其他指令也都依赖于底层的相应接口。因此,当上层ui快速多次调用底层接口的时候,底层会有冲突,导致接口返回的数据不准确或者系统崩溃。
121.为了提升软件管理系统的鲁棒性并尽量减少底层冲突,本技术实施例中前述步骤基于编译结果向服务器发送配置修改指令具体可以通过以下方式实现:基于编译结果生成配置修改接口调用请求,并将配置修改接口调用请求添加至接口调用队列中;根据添加至接口调用队列中的顺序,从先至后依次将接口调用队列中每个未完成的接口调用请求确定为目标接口调用请求;若配置修改接口调用请求为目标接口调用请求,则通过配置修改接口向服务器发送配置修改指令,并接收服务器通过配置修改接口返回的配置修改反馈
122.具体的,若编译结果为编译成功,则操作人员会在软件管理界面点击配置修改按钮(即标识有配置修改的按钮控件),接着就会执行前述流程。发起配置修改接口调用请求,并将该配置修改接口调用请求新增至接口调用队列中。然后,根据添加至接口调用队列中的顺序,从先至后依次完成接口调用队列中每个未完成的接口调用请求,也就是说,只有当前一个接口调用请求所调用的接口完成相应的功能且获得调用结果后(如编译结果或配置修改反馈),才调用下一个接口调用请求所调用的接口并完成相应请求。具体调用方式可参
阅图4。
123.本实施例中,将所有接口调用请求添加到主程序之外的接口调用队列中,不影响主程序的执行。接口调用队列按添加的先后顺序执行每个接口调用请求,并设置于主程序之外,能有效减少主程序的占用和底层冲突。
124.其次,为了防止操作人员操作时疏忽导致的操作错误,软件管理系统中还进行了系统防呆的设计,具体可以通过以下方式实现:1、功能锁定:响应于操作人员在项目管理界面选择代码编译控件的操作,执行代码编译的操作,并锁定项目管理界面直至接收到编译结果。2、自动填充:响应于操作人员在任一客制化对象对应的至少一个可选配置中选择目标配置的操作,判断任一客制化对象对应的目标配置是否存在预设匹配关系;若存在预设匹配关系,则将每个匹配客制化对象对应的配置修改为相应的匹配配置,预设匹配关系包含至少一个匹配客制化对象以及每个匹配客制化对象对应的匹配配置。
125.具体的,功能锁定可以保证操作人员在通过软件管理界面发起了执行一些功能的操作后,在接收到相应的结果或反馈之前,无法在软件管理界面发起其他的操作。功能锁定可以依照需求选择性的针对部分功能开启,如针对代码编译功能和/或配置修改功能。自动填充可以保证,在这对一些需要同时发生修改的客制化对象的配置时,可以提供预设配置关系,以供软件管理系统进行自动填充。也就是说,在一个预设匹配关系中会包含多个客制化对象以及每个客制化对象对应的匹配配置,当软件管理系统识别到某个客制化对象对应的当前配置与任一预设匹配关系中该客制化对象对应的匹配配置一致时,则就可以将前述任一预设匹配关系中除该客制化对象之外的其他客制化对象作为匹配客制化对象,并将每个匹配客制化对象对应的配置自动修改为预设匹配关系中相应的匹配配置。
126.最后,为了防止因软件卡顿导致的操作失败等问题,还需要进行防卡设计,具体可以通过以下方式实现:若获取到运行异常反馈,则初始化所述项目管理界面,所述运行异常反馈包括预设定时器的标志位未更新和/或运行异常通知。
127.具体的,可参照图5a以及图5b。如图5a所示,可以在软件管理系统中加入系统返回,当系统异常产生运行异常通知时,抛出异常,同步初始化系统和软件管理界面,以退出卡顿。或者如图5b所示,设置一个预设定时器,按照预设检测频率对系统的运行状况进行检查,若系统卡顿,则预设定时器的标志位无法更新,则说明系统异常,同步初始化系统和软件管理界面,以退出卡顿。
128.在实际应用中,为了更好的实现软件管理,还可以在软件管理系统中配置编译日志,以保存每次发送代码编译指令的编译时长、编译结果以及二者之间的关联关系的编译记录。
129.本实施例可以记录每个项目的软件编译过程,便于查询操作人员每次修改目标项目的情况,实现软件的全流程管理。
130.前面描述了本技术实施例提供的软件管理方法,下面请参阅图6,在一个具体场景下,描述本技术实施例的软件管理方法。
131.首先,软件管理系统、ui界面和相关显示特效初始化。操作人员选择需要客制化的项目(即目标项目,如图中所示项目1以及项目2),然后通过终端输入管理员提供的用户信息进行远程登录,如账户id、相应的账户密码(以上两个都属于账户信息)、服务器的ip地址以及端口,以实现与目标项目对应的服务器上项目代码的连接。在实际应用中,目标项目可
是包括但不限于:linux项目或安卓gtv项目。
132.当终端登录完成后(即完成匹配条件的确认后),软件管理系统可以远程连接到服务器中与目标项目相关的项目代码,并基于目标项目的项目代码,完成软件管理界面的初始化,具体可参照前述相关实施例。需要说明的是,不同项目提供的客制化对象和/或客制化对象对应的可选配置不同,而软件管理界面的展示与目标项目可以进行修改的内容相关,因此不同项目的软件管理界面不完全相同。
133.在软件管理界面完成初始化之后,操作人员可以根据界面展示的内容对软件管理界面中的控件进行操作,以针对目标项目进行配置修改,实现客制化;或者对目标项目进行版本控制和/或日志管理。
134.在一些具体实现方式中,登录界面可以进一步包括账户信息输入框、登录按钮以及项目下拉框(进行不同项目的选择);项目管理界面可以进一步包括:日志记录按钮(触发可记录当前次软件编译时长以及编译结果)、各客制化对象对应的下拉框(包括至少一个可选配置以供选择)、软件编译按钮以及配置修改按钮。软件管理界面具体实现可参照图6。
135.终端通过python将操作人员在软件管理界面操作的配置修改统一处理,并借助远程命令的方式,通过ssh将代码编译指令发送给服务器处理。服务器接收到代码编译指令后,通过调用makefile执行软件编译,然后将编译后生成的软件输出到特定目录下面,并且将包含编译成功与否的编译结果返回给终端,终端在软件管理界面展示编译结果。
136.若编译结果为编译成功,则终端可以向服务器发起配置修改指令。服务器接受到配置修改指令后,对服务器中目标项目的项目代码中的相关内容进行修改,实现对目标项目对应软件的特定功能模块的远程修改。
137.在完成对目标项目的配置修改后,可以基于目标项目的项目代码,导出目标项目当前的全部客制化对象的配置,导出的配置文件格式可以为.ini格式。
138.进一步的,通过版本控制控件,操作人员可以从提供的不同版本的目标项目中选择所需的目标版本,以将目标项目的项目代码从当前版本恢复至目标版本。服务器接受到终端发送的版本控制指令后,可以通过git远程仓库管理实现目标项目对应软件的版本控制。
139.当服务器完成终端发送的相关指令后,会将该指令的操作结果(包括但不限于编译结果和/或配置修改结果)输出为日志,并在服务器保存该日志。通过日志管理相关控件,终端可以向服务器实时获取代码编译情况、配置修改情况以及版本信息(即服务器中目标项目当前运行的项目代码的版本信息),并在软件管理界面进行显示。
140.在实际应用中,还可以提供统计分析功能,用来记录每次进行代码编译的编译时长,以及每次进行配置修改的修改记录,以便校对信息。
141.请参阅图7,本技术实施例提供一种终端,包括:
142.确定单元701,用于响应于代码编译的操作,将目标项目提供的至少一个客制化对象中,对应的当前配置为待修改配置的每个客制化对象确定为目标客制化对象;
143.编译单元702,用于向目标项目对应的服务器发送代码编译指令,并接收服务器返回的编译结果,代码编译指令包括:与每个目标客制化对象对应的当前配置相应的预设配置代码;
144.配置单元703,用于基于编译结果向服务器发送配置修改指令,以使得服务器将目
标项目的项目代码中与每个目标客制化对象对应的代码替换为相应的预设配置代码,配置修改指令包括:与每个目标客制化对象对应的当前配置相应的预设配置代码。
145.在一种具体实现方式中,确定单元701,还用于基于操作人员从每个目标客制化对象对应的配置选择控件包含的至少一个可选配置中选择任一可选配置的操作,确定每个目标客制化对象对应的当前配置。
146.在一种具体实现方式中,终端还包括:获取单元以及初始化单元;
147.获取单元,用于响应于操作人员选择目标项目的操作,获取操作人员输入的账户信息以及服务器信息;
148.获取单元,还用于若目标项目,账户信息以及服务器信息满足预设的匹配条件,则从与服务器信息对应的服务器获取项目代码;
149.确定单元701,还用于基于项目代码,确定目标项目提供的每个客制化对象对应的默认配置;
150.初始化单元,用于初始化项目管理界面,以在项目管理界面展示每个客制化对象以及每个客制化对象对应的默认配置。
151.在一种具体实现方式中,初始化单元,还用于若获取到运行异常反馈,则初始化项目管理界面,运行异常反馈包括预设定时器的标志位未更新和/或运行异常通知。
152.在一种具体实现方式中,配置单元703,具体用于基于编译结果生成配置修改接口调用请求,并将配置修改接口调用请求添加至接口调用队列中;
153.根据添加至接口调用队列中的顺序,从先至后依次将接口调用队列中每个未完成的接口调用请求确定为目标接口调用请求;
154.若配置修改接口调用请求为目标接口调用请求,则通过配置修改接口向服务器发送配置修改指令,并接收服务器通过配置修改接口返回的配置修改反馈。
155.在一种具体实现方式中,终端还包括:锁定单元;
156.锁定单元,用于响应于操作人员在项目管理界面选择代码编译控件的操作,执行代码编译的操作,并锁定项目管理界面直至接收到编译结果。
157.在一种具体实现方式中,终端还包括:判断单元;
158.判断单元,用于响应于操作人员在任一客制化对象对应的至少一个可选配置中选择目标配置的操作,判断任一客制化对象对应的目标配置是否存在预设匹配关系;
159.配置单元703,还用于若存在预设匹配关系,则将每个匹配客制化对象对应的配置修改为相应的匹配配置,预设匹配关系包含至少一个匹配客制化对象以及每个匹配客制化对象对应的匹配配置。
160.在一种具体实现方式中,终端还包括:记录单元;
161.记录单元,用于接收服务器发送的编译时长,并在编译日志中新增包括编译时长、编译结果以及二者之间的关联关系的编译记录,编译时长为服务器编译预设配置代码的时长。
162.请参阅图8,本技术实施例还提供一种服务器,包括:
163.接收单元801,用于接收终端发送的与目标项目对应的代码编译指令,代码编译指令包括:与每个目标客制化对象对应的当前配置相应的预设配置代码;
164.编译单元802,用于编译预设配置代码,获得并向终端发送与代码编译指令对应的
编译结果;
165.配置单元803,用于响应于终端基于编译结果发送的配置修改指令,将目标项目的项目代码中与每个目标客制化对象对应的代码,替换为相应的预设配置代码,以完成目标项目的客制化,配置修改指令包括:与每个目标客制化对象对应的当前配置相应的预设配置代码。
166.在一种具体实现方式中,代码编译指令为远程指令,编译单元802,具体用于将代码编译指令转换为shell指令,并通过shell命令或脚本编译代码编译指令包含的预设配置代码,以获得并向终端发送编译结果。
167.在一种具体实现方式中,配置单元803,还用于若编译结果为编译成功,则基于目标项目的项目代码生成并向终端发送配置文件,配置文件包括目标项目提供的每个客制化对象对应的当前配置。
168.图9是本技术实施例提供的一种软件管理设备结构示意图,该软件管理设备900可以包括一个或一个以上中央处理器(central processing units,cpu)901和存储器905,该存储器905中存储有一个或一个以上的应用程序或数据。
169.其中,存储器905可以是易失性存储或持久存储。存储在存储器905的程序可以包括一个或一个以上模块,每个模块可以包括对软件管理设备中的一系列指令操作。更进一步地,中央处理器901可以设置为与存储器905通信,在软件管理设备900上执行存储器905中的一系列指令操作。
170.软件管理设备900还可以包括一个或一个以上电源902,一个或一个以上有线或无线网络接口903,一个或一个以上输入输出接口904,和/或,一个或一个以上操作系统,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等。
171.该中央处理器901可以执行前述图1至图8所示实施例中软件管理设备所执行的操作,具体此处不再赘述。其中,软件管理设备900可以是终端和/或服务器。
172.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
173.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
174.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
175.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
176.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用
时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
177.本技术实施例还提供一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如上述的软件管理方法。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1