渠道包的生成方法、装置、存储介质及电子设备与流程

文档序号:33550450发布日期:2023-03-22 10:35阅读:36来源:国知局
渠道包的生成方法、装置、存储介质及电子设备与流程

1.本公开总体上涉及计算机技术领域,更具体地涉及一种渠道包的生成方法、装置、计算机程序产品、非暂时性计算机可读存储介质及电子设备。


背景技术:

2.本部分旨在介绍本领域的一些方面,其可以与下面描述的和/或要求保护的本公开的各个方面相关。相信本部分有助于提供背景信息以便于更好地理解本公开的各个方面。因此,应该理解的是这些陈述应该从这个角度来理解,而不是作为对现有技术的承认。
3.目前安卓市场的渠道非常之多。如果要在这些渠道上发行游戏,就要接入这些渠道不同的sdk(software development kit,软件开发工具包)来实现渠道的登录、支付等能力,不同于常规应用程序只需修改channel id(通道标识)即可。对于单个渠道的接入可能就需要花上一周甚至更多时间,如果要同时接入几十个渠道,对于游戏研发来说需要投入非常大的时间成本。再加上后期对于每个渠道sdk的迭代维护,其中的成本可想而知。
4.因此,有必要提出一种新的渠道包的生成方案,以解决上述至少一个技术问题。


技术实现要素:

5.本公开的目的在于提供一种渠道包的生成方法、装置、计算机程序产品、非暂时性计算机可读存储介质及电子设备,以提高软件的打包效率,降低软件开发的成本。
6.根据本公开的第一方面,提供一种渠道包的生成方法,包括:获取软件母包,其中,所述软件母包由软件本体和代理包生成,所述代理包用于向所述软件本体提供渠道功能的接口,且包含实现所述渠道功能的代码;根据目标渠道的演示包和所述软件母包,生成对应的渠道包,其中,所述目标渠道的演示包中包含所述目标渠道的渠道开发工具包。
7.根据本公开的第二方面,提供了一种渠道包的生成装置,包括:获取模块,其被配置为获取软件母包,其中,所述软件母包由软件本体和代理包生成,所述代理包用于向所述软件本体提供渠道功能的接口,且包含实现所述渠道功能的代码;生成模块,其被配置为根据目标渠道的演示包和所述软件母包,生成对应的渠道包,其中,所述目标渠道的演示包中包含所述目标渠道的渠道开发工具包。
8.根据本公开的第三方面,提供了一种计算机程序产品,包括程序代码指令,当所述程序产品由计算机执行时,所述程序代码指令使所述计算机执行根据本公开的第一方面所述的方法。
9.根据本公开的第四方面,提供了一种存储有计算机指令的非暂时性计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据本公开的第一方面所述的方法。
10.根据本公开的第五方面,提供了一种电子设备,包括:处理器,与所述处理器进行电子通信的存储器;以及指令,所述指令存储在所述存储器中并且可由所述处理器执行以使所述电子设备执行根据本公开的第一方面所述的方法。
11.根据本公开提供的各个实施例,通过代理包向软件开发者提供统一的渠道功能接
口,软件开发者无需关注各个渠道的具体实现,只需将软件本体和代理包进行一次打包即可实现多个渠道的接入,大大提高了软件的打包效率。同时,代理包中包含实现渠道功能的代码,软件本体与代理包打包完成后即可进行联调测试,大大提高了软件的开发测试效率。
12.应当理解,本部分所描述的内容并不旨在标识所要求保护的发明内容的关键或必要特征,也不旨在单独地用于确定所要求保护的发明内容的范围。
附图说明
13.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
14.图1示出了根据本公开的渠道包的生成方法的一个实施例的系统架构图;
15.图2示出了根据本公开的渠道包的生成方法的一个实施例的流程图;
16.图3示出了根据本公开的渠道包的生成方法的一个实施例的架构图;
17.图4示出了图2中步骤202的一个具体实施方式的流程图;
18.图4a示出了根据本公开的渠道包的生成方法的一个实施例的反编译结果的示意图;
19.图4b示出了根据本公开的渠道包的生成方法的一个实施例的渠道包生成过程的示意图;
20.图5示出了根据本公开的渠道包的生成方法的一个实施例的资源目录合并过程的示意图;
21.图6示出了根据本公开的实施例的渠道包的生成装置的示例性框图;
22.图7示出了可以用来实施本公开的实施例的示例电子设备700的示意图。
23.具体实现方式
24.下文将参考附图更全面地描述本公开。然而,本公开可以以多种替代形式来体现,并且不应被解释为限于本文描述的实施例。因此,尽管本公开易于进行各种修改和替代形式,但是其具体实施例在附图中以示例的方式示出,并将在本文详细描述。然而,应当理解,这种方式并不旨在将本公开限制于所公开的特定形式,相反,本公开覆盖了落入由权利要求所限定的本公开的精神和范围内的所有修改方案、等同方案和替代方案。
25.应当理解,尽管本文可以用术语第一、第二等描述各种元素,但是这些元素不应该被这些术语所限制。这些术语仅用于区分一个元素和另一个元素。例如,第一元素可以被称为第二元素,并且类似地,第二元素可以被称为第一元素,而不脱离本公开的教导。
26.本文结合框图和/或流程图描述了一些示例,其中每个框表示包括用于实现指定逻辑功能的一个或多个可执行指令的电路元件、模分块或代码的部分。还应该注意的是,在其他实现方式中,框中所述的功能可以不按所述的顺序发生。例如,根据所涉及的功能,连续示出的两个框实际上可以实质上同时执行,或者这些框有时可以以相反的顺序执行。
27.本文提到的“根据...示例”或“在..示例中”意味着结合示例描述的特定特征、结构或特性可以被包括在本公开的至少一个实现方式中。本文中不同地方出现的短语“根
据...示例”或“在...示例中”不一定都指同一示例,也不一定是与其他示例相互排斥的单独或替代示例。
28.图1示出了可以应用本公开的渠道包的生成方法、装置、终端设备和存储介质的实施例的示例性系统架构100。
29.如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
30.用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如语音交互类应用、视频会议类应用、短视频社交类应用、网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
31.终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是具有麦克风和扬声器的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、mp3播放器(moving picture experts group audio layer iii,动态影像专家压缩标准音频层3)、mp4(moving picture experts group audio layer iv,动态影像专家压缩标准音频层4)播放器、便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
32.服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103发送的渠道包的生成请求进行处理的后台服务器。
33.在一些情况下,本公开所提供的渠道包的生成方法可以由终端设备101、102、103执行,相应地,渠道包的生成装置也可以设置于终端设备101、102、103中,这时,系统架构100也可以不包括服务器105。
34.例如,可以在终端设备101、102、103中设置相应的脚本,并基于脚本自动执行本公开实施例中的渠道包的生成方法。如此,有利于降低打包难度,提高打包效率。进一步地,可以在终端设备101、102、103中设置持续集成工具(例如jenkins),维护运行环境,避免因环境差异报错。如此,有利于进一步提高打包效率。
35.在一些情况下,本公开所提供的渠道包的生成方法可以由服务器105执行,相应地,渠道包的生成装置也可以设置于服务器105中,这时,系统架构100也可以不包括终端设备101、102、103。
36.例如,可以在服务器105中设置打包平台。终端设备101、102、103可以向服务器105发起打包请求,服务器105响应于该请求自动执行打包操作并反馈打包结果。如此,使得打包方案更直观、更低门槛、更产品化,并且可以避免包体多次传输,有利于提高打包效率。
37.在一些情况下,本公开所提供的渠道包的生成方法可以由终端设备101、102、103和服务器105共同执行,相应地,渠道包的生成装置也可以分别设置于终端设备101、102、103和服务器105中。
38.例如,可以由服务器105主要执行打包操作,同时技术人员可通过终端设备101、102、103执行其中的某些步骤,例如对回编译结果进行加固处理的步骤。
39.需要说明的是,服务器105可以是硬件,也可以是软件。当服务器105为硬件时,可
以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器105为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
40.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
41.图2示出了根据本公开的渠道包的生成方法的一个实施例的流程图。该实施例中的方法可以由图1中的终端设备实施,或者由图1中的服务器实施,或者由图1中的终端设备和服务器共同实施。
42.如图2所示,本实施例中渠道包的生成方法200包括以下步骤:
43.步骤201,获取游戏母包(或者软件母包),其中,游戏母包(或者软件母包)由游戏本体(或者软件本体)和代理包生成,代理包用于向游戏本体(或者软件本体)提供渠道功能的接口,且包含实现渠道功能的代码。
44.步骤202,根据目标渠道的演示包和游戏母包(或者软件母包),生成对应的渠道包,其中,目标渠道的演示包中包含目标渠道的渠道开发工具包。
45.在本实施例中,渠道可以指代游戏等软件的发行渠道,例如是a应用商店,b应用市场,或者其他向终端用户提供游戏等软件安装包下载服务的平台等。需要说明的是,本实施例主要针对游戏的打包进行说明,但是本实施例中的渠道包的生成方法不仅可以适用于游戏的打包,还可以适用于其他采用渠道方式发行的软件的打包,在适用时将本实施例中的游戏本体替换为相应的软件本体,将本实施例中的游戏母包替换为相应的软件母包即可。本实施例中对相关概念的描述部分,也可以将其中的“游戏”替换为“软件”。
46.在本实施例中,游戏本体可以指代游戏本身的代码或者数据。
47.在本实施例中,游戏母包可以由游戏开发者或者其他主体,将游戏本体接入代理包后生成。其中,代理包用于向游戏本体提供渠道功能的接口。渠道功能可以包括登录、支付、注销、选区服以及其他与渠道相关的功能。
48.在本实施例中,代理包除了提供渠道功能的接口外,还包含实现渠道功能的代码。因此,本实施例中在游戏本体与代理包打包完成后即可进行联调测试,有利于提高游戏的开发测试效率。
49.在一些实施方式中,渠道包包括代理类(class,一种用户定义的引用数据类型)和至少一个渠道的渠道功能的实例((instance,根据类创建出来的具体的对象),代理类用于提供渠道功能的接口以及通过调用至少一个渠道的渠道功能的实例实现渠道功能。
50.在一个示例中,可以为每个渠道单独创建一个工程,并且由统一的代理类向上提供登录、支付等渠道功能接口,在底层调用渠道sdk各自的实现方法,并且把渠道的回调传递到上层的游戏。在代理层(参见下文对代理sdk层级的描述)中可以根据不同的渠道初始化对应的实现类的实例。该示例中保证每个渠道工程代理类的类名以及路径的一致,防止在替换(参见下文对图4b对应的渠道包生成过程的描述)的时候出现引用错误。
51.在一些实施方式中,可以设置专门的代理服务器,安装有游戏母包的电子设备可以与代理服务器通信,从而实现或者测试代理包提供的登录、支付、注销、选区服等渠道功能。代理服务器可以是图1中的服务器105,也可以是其他的服务器。
52.在本实施例中,每个渠道具有对应的渠道开发工具包,或者称其为渠道sdk
(software development kit,软件开发工具包)。在特定的渠道发行游戏,需要接入对应的渠道sdk。
53.在本实施例中,可以将虚设游戏接入目标渠道的渠道sdk,生成目标渠道的演示(demo)包。其中,虚设游戏可以指代专门为渠道接入而设置的、并非用于实际发行的游戏。
54.在本实施例中,可以将目标渠道的演示包和游戏母包合并,从而将目标渠道的渠道sdk注入游戏母包,得到目标渠道的渠道包,或者称其为渠道apk(android application package,安卓应用程序包)。该渠道包可以实现目标渠道的登录、支付、注销、选区服等渠道功能。利用该渠道包,即可在目标渠道发行游戏本体对应的游戏。
55.图3示出了根据本公开的渠道包的生成方法的一个实施例的架构图。
56.如图3所示,该架构包括游戏、代理sdk和渠道apk三个层级。其中,代理sdk提供登录、支付、注销、选区服等渠道功能的接口和实现。渠道apk包括渠道1、渠道2、渠道3、渠道4等各个具体渠道的apk。在运行过程中,游戏调用渠道sdk的代理sdk中的接口,代理sdk中接口调用具体的渠道apk中的接口。这样无论底层的渠道如何变化,只要代理层的接口设计能覆盖渠道所有的能力,那么对于上层的游戏来说渠道的变化就是无感知的,这样做到了游戏和渠道的彻底解耦,也做到了渠道的整合。
57.图4示出了图2中步骤202的一个具体实施方式的流程图。
58.在一些实施方式中,如图4所示,步骤202可以进一步包括以下步骤:
59.步骤2021,分别对目标渠道的演示包和游戏母包进行反编译,得到对应的第一反编译结果和第二反编译结果。其中,目标渠道的演示包对应第一反编译结果,游戏母包对应第二反编译结果。
60.步骤2022,将第一反编译结果和第二反编译结果合并,得到对应的合并结果。
61.步骤2023,对合并结果进行回编译,得到对应的回编译结果。
62.步骤2024,对回编译结果进行签名,得到渠道包。
63.可以借助apktool(一种已知的apk反编译工具)或者其他工具,执行上述步骤2021至步骤2024。
64.图4a示出了根据本公开的渠道包的生成方法的一个实施例的反编译结果的示意图。借助apktool获得的反编译结果包括如图4a所示的多个文件以及多个文件夹,例如“androidmanifest.xml”文件、“apktool.yml”文件、“assets”文件夹、“lib”文件夹、“original”文件夹、“res”文件夹、“smali”文件夹等。可以将第一反编译结果和第二反编译结果中同名的文件或者文件夹进行合并,得到对应的合并结果。
65.反编译结果中的“apktool.yml”文件记录了反编译的配置信息,用于回编译时读取。在一些实施方式中,可以基于“apktool.yml”文件的配置信息,对合并结果进行回编译。在一些实施方式中,可以利用“apktool.yml”指定回编译结果的包名。例如,可以在“apktool.yml”中增加一行包含“rename”命令的代码,以将回编译结果命名为指定的包名。除了包名外,还可以利用“apktool.yml”文件的配置信息,对回编译结果的其他属性进行配置。
66.反编译结果中的“smali”文件夹中存储有类的方法,其可以转化成dex文件(安卓系统的可执行文件,包含应用程序的全部操作指令以及运行时数据)。dex文件中类的方法的总数通常存在上限,当dex文件中类的方法的总数超过(包括大于或者等于)预设的数目
阈值时,便会引起异常或者错误。上述预设的数目阈值例如是65536。
67.针对上述问题,在一些实施方式中,可以在合并过程中,对“smali”文件夹中类的方法的总数进行控制,具体可以包括:确定第一反编译结果中类的方法与第二反编译结果中类的方法的总数目;在总数目大于或者等于预设的数目阈值的情况下,将第一反编译结果中存储有类的方法的文件夹与第二反编译结果中存储有类的方法的文件夹合并为至少两个文件夹,其中,至少两个文件夹中每个文件夹存储的类的方法的数目均小于预设的数目阈值。
68.在上述实施方式中,根据类的方法的总数目和预设的数目阈值,确定合并后的文件夹的数目,能够避免因类的方法的总数目超出相关的数目限制而出现错误。
69.需要指出的是,上述实施方式不局限于文件夹这一类型的存储单元,还可以应用到其他类型的存储单元,例如单个文件。
70.在一些实施方式中,反编译结果中包括了资源目录,其中存储有资源与资源标识(或者称其为资源id)的对应关系。第一反编译结果和第二反编译结果中的资源目录可能会存在冲突,例如,同一资源在第一反编译结果和第二反编译结果中对应不同的资源标识,或者,同一资源标识在第一反编译结果和第二反编译结果中对应不同的资源。对此,需要将第一反编译结果中的资源目录与第二反编译结果中的资源目录进行合并。
71.图5示出了根据本公开的渠道包的生成方法的一个实施例的资源目录合并过程的示意图。其中,public.xml是存储有资源目录的文件。
72.如图5所示,目录合并过程包括以下步骤:首先,分别解析游戏母包对应的public.xml和渠道演示包对应的public.xml。其次,对比演示包中的资源是否存在于母包。若否,则将该资源作为新增资源并新增相应的id。若是,则保留母包中的id,并且记录演示包中的新旧id的映射(为下文描述的旧id的替换做准备)。通过上述方式,可以完成public.xml的合并。
73.这里提供一个资源目录合并的具体例子。在该例子中,游戏母包对应的资源目录为:
74.资源a——id为1;
75.资源b——id为2;
76.资源c——id为3。
77.渠道演示包对应的资源目录如下:
78.资源c——id为1;
79.资源d——id为2;
80.资源e——id为3。
81.在对资源目录进行合并时,资源a和资源b仅存在于游戏母包中,对其id予以保留。资源c同时存在于游戏母包和渠道演示包中,保留其在游戏母包中的id,并且记录渠道演示包中的新旧id的映射。资源d和资源e只存在于渠道演示包中,在游戏母包对应的资源目录的基础上新增对应的id。合并后的资源目录如下:
82.资源a——id为1;
83.资源b——id为2;
84.资源c——id为3;
85.资源d——id为4;
86.资源e——id为5。
87.上述合并过程是以游戏母包对应的资源目录为基准进行的。游戏母包中的资源的数量通常大于渠道演示中的资源数量,因此这种方式能够减少资源id的修改量,有利于提高合并效率。如能够理解的,也可以以渠道演示包对应的资源目录为基准进行资源目录合并。
88.在资源目录合并完成后,还需要对旧id值的引用进行替换。在以游戏母包对应的资源目录为基准进行资源目录合并的情形中,可以根据第一反编译结果中的资源目录和合并后的资源目录,对第一反编译结果中用于调用资源的代码包含的资源标识进行更新,将代码中引用的旧id替换为新id。在以渠道演示包对应的资源目录为基准进行资源目录合并的情形中,可以根据第二反编译结果中的资源目录和合并后的资源目录,对第二反编译结果中用于调用资源的代码包含的资源标识进行更新,将代码中引用的旧id替换为新id。
89.在一些实施方式中,渠道包中包含内容提供组件的声明标识,不同渠道包对应的声明标识应该存在区别,否则在先安装的渠道包会导致在后安装的渠道包不可用。对此,可以在合并过程中进行如下处理:将第一反编译结果包括的内容提供组件的声明标识确定为合并结果中内容提供组件的声明标识;将合并结果中内容提供组件的声明标识包括的占位符替换为渠道包的包名。由于渠道包的包名既包含渠道名又包含游戏名,因此同一渠道下的不同游戏对应的渠道包的包名是不同的,对应的声明标识也是不同的。
90.在上述实施方式中,利用占位符和渠道包的包名修改合并结果中内容提供组件的声明标识,能够避免同一渠道下的不同游戏对应的声明标识出现冲突。
91.在一些实施方式中,可以对回编译结果进行加固处理,以提高代码的安全性。其中,加固处理可以通过第三方平台执行,也可以通过在前述打包平台中集成的加固处理组件执行。
92.在一些实施方式中,将加固处理设置在步骤2023的回编译步骤之后、步骤2024的签名步骤之前,有利于保证渠道包的可用性,避免出现闪退等程序错误。
93.图4b示出了根据本公开的渠道包的生成方法的一个实施例的渠道包生成过程的示意图。如图4b所示,本实施例中,游戏母包包括游戏本体和代理包,渠道a的演示包包括虚设游戏和渠道a的工具包,渠道b的演示包包括虚设游戏和渠道b的工具包。将游戏母包解包(反编译)后得到游戏本体,将渠道a的演示包解包(反编译)后得到渠道a的工具包,在此基础上将游戏本体和渠道a的演示包合包(合并及回编译),得到渠道a的渠道包,其包括游戏本体和渠道a的工具包。类似地,将渠道b的演示包解包(反编译)后得到渠道b的工具包,将游戏本体和渠道b的演示包合包(合并及回编译),得到渠道b的渠道包,其包括游戏本体和渠道b的工具包。
94.本实施例中,通过代理包向游戏开发者提供统一的渠道功能接口,游戏开发者无需关注各个渠道的具体实现,只需将游戏本体和代理包进行一次打包即可实现多个渠道的接入,大大提高了游戏的打包效率。
95.图6示出了根据本公开的实施例的渠道包的生成装置的示例性框图。如图6所示,该渠道包的生成装置600包括:获取模块601,其被配置为获取游戏母包,其中,游戏母包由游戏本体和代理包生成,代理包用于向游戏本体提供渠道功能的接口,且包含实现渠道功
能的代码;生成模块602,其被配置为根据目标渠道的演示包和游戏母包,生成对应的渠道包,其中,目标渠道的演示包中包含目标渠道的渠道开发工具包。
96.应当理解,图6中所示装置600的各个模块可以与参考图2描述的方法200中的各个步骤相对应。由此,上面针对方法200描述的操作、特征和优点同样适用于装置600及其所包括的模块。为了简洁起见,某些操作、特征和优点在此不再赘述。
97.在一些实施方式中,生成模块601进一步包括:反编译单元,被配置为分别对目标渠道的演示包和游戏母包进行反编译,得到对应的第一反编译结果和第二反编译结果;合并单元,被配置为将第一反编译结果和第二反编译结果合并,得到对应的合并结果;回编译单元,被配置为对合并结果进行回编译,得到对应的回编译结果;签名单元,被配置为对回编译结果进行签名,得到渠道包。
98.在一些实施方式中,生成模块601还包括:加固单元,被配置为对回编译结果进行加固处理,其中,加固处理用于提高代码的安全性。
99.在一些实施方式中,回编译单元进一步被配置为:基于预设的配置信息,对合并结果进行回编译,其中,预设的配置信息包括用于指定回编译结果的包名的信息。
100.在一些实施方式中,第一反编译结果和第二反编译结果均包括存储有类的方法的文件夹;合并单元进一步被配置为:确定第一反编译结果中类的方法与第二反编译结果中类的方法的总数目;在总数目大于或者等于预设的数目阈值的情况下,将第一反编译结果中存储有类的方法的文件夹与第二反编译结果中存储有类的方法的文件夹合并为至少两个文件夹,其中,至少两个文件夹中每个文件夹存储的类的方法的数目均小于预设的数目阈值。
101.在一些实施方式中,第一反编译结果和第二反编译结果均包括资源目录,资源目录中存储有资源和资源标识的对应关系;合并单元进一步被配置为:将第一反编译结果中的资源目录与第二反编译结果中的资源目录合并,得到合并后的资源目录。
102.在一些实施方式中,合并单元进一步被配置为:以第二反编译结果中的资源目录为基准,将第一反编译结果中的资源目录与第二反编译结果中的资源目录合并。
103.在一些实施方式中,合并单元进一步被配置为:根据第一反编译结果中的资源目录和合并后的资源目录,对第一反编译结果中用于调用资源的代码包含的资源标识进行更新;和/或根据第二反编译结果中的资源目录和合并后的资源目录,对第二反编译结果中用于调用资源的代码包含的资源标识进行更新。
104.在一些实施方式中,第一反编译结果和第二反编译结果均包括内容提供组件的声明标识,第一反编译结果包括的内容提供组件的声明标识包括预设的占位符;合并单元进一步被配置为:将第一反编译结果包括的内容提供组件的声明标识确定为合并结果中内容提供组件的声明标识;将合并结果中内容提供组件的声明标识包括的占位符替换为渠道包的包名。
105.在一些实施方式中,该渠道包的生成装置600基于预设的脚本实现。
106.在一些实施方式中,该渠道包的生成装置600基于预设的持续集成工具实施。
107.图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。参见图7,现将描述可以作为本公开的服务器或客户端的电子设备700的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字计算机,诸如,
膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。如图7所示,电子设备700包括计算单元701,其可以根据存储在只读存储器(rom)702中的计算机程序或者从存储单元708加载到随机访问存储器(ram)703中的计算机程序,来执行各种适当的动作和处理。在ram 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、rom 702以及ram 703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。设备700中的多个部件连接至i/o接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
108.计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如渠道包的生成方法。例如,在一些实施例中,渠道包的生成方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由rom 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到ram 703并由计算单元701执行时,可以执行上文描述的渠道包的生成方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行渠道包的生成方法。
109.结合本文公开的方面所描述的各种说明性逻辑、逻辑块、模块、电路和算法过程可以实现为电子硬件、计算机软件或两者的组合。硬件和软件的可互换性已经在功能方面进行了一般性描述,并且在上述各种说明性组件、块、模块、电路和过程中进行了说明。这种功能是以硬件还是软件实现取决于特定的应用和对整个系统的设计限制。
110.用于实现结合本文公开的方面所描述的各种说明性逻辑、逻辑块、模块和电路的硬件和数据处理装置可以用通用单芯片或多芯片处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其他可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件或被设计成执行本文所描述的功能的其任意组合来实现或执行。通用处理器可以是微处理器或任何常规处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如dsp和微处理器的组合、多个微处理器、一个或多个与dsp内核结合的微处理器、或者任何其他这样的配置。在一些方面中,特定的过程和方法可以由特定于给定功能的电路来执行。
111.在一个或多个方面,所描述的功能可以在硬件、数字电子电路、计算机软件、固件(包括本说明书中公开的结构及其等同结构)或其任意组合中实现。本说明书中所描述的主题的方面也可以实现为一个或多个计算机程序,即计算机程序指令的一个或多个模块,该一个或多个计算机程序被编码在计算机存储介质上用于由数据处理装置执行或控制数据处理装置的操作。
112.如果以软件实现,该功能可以作为一个或多个指令或代码存储或传输到计算机可读介质上。本文公开的方法或算法的过程可以在处理器可执行的软件模块中实现,该软件模块可以驻留在计算机可读介质上。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括能够将计算机程序从一个地方传送到另一个地方的任何介质。存储介质可以是可由计算机访问的任何可用介质。作为示例而非限制,此计算机可读介质可以包括ram、rom、eeprom、cd-rom或其他光盘存储器、磁盘存储器或其他磁存储设备,或者可以用于以指令或数据结构的形式存储所需的程序代码并且可以由计算机访问的任何其他介质。此外,任何连接都可以被恰当地称为计算机可读介质。本文使用的盘(disk)和盘(disc)包括高密度光盘(cd)、激光盘、光盘、数字多功能盘(dvd)、软盘和蓝光光盘,其中盘(disk)通常磁性地复制数据,而盘(disc)用激光光学地复制数据。以上的组合也应该包括在计算机可读介质的范围内。附加地,方法或算法的操作可以作为机器可读介质和计算机可读介质上的代码和指令的一个或任意组合或集合,其可以被结合到计算机程序产品中。
113.本公开中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、设备实施例、计算机可读存储介质实施例、以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1