CN109542461A - 应用安装包的发布方法、终端设备及介质 - Google Patents
应用安装包的发布方法、终端设备及介质 Download PDFInfo
- Publication number
- CN109542461A CN109542461A CN201811203760.7A CN201811203760A CN109542461A CN 109542461 A CN109542461 A CN 109542461A CN 201811203760 A CN201811203760 A CN 201811203760A CN 109542461 A CN109542461 A CN 109542461A
- Authority
- CN
- China
- Prior art keywords
- channel
- information
- file
- installation package
- application installation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000009434 installation Methods 0.000 title claims abstract description 147
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000011161 development Methods 0.000 claims abstract description 28
- 238000004422 calculation algorithm Methods 0.000 claims description 68
- 238000004590 computer program Methods 0.000 claims description 15
- 238000009825 accumulation Methods 0.000 claims description 13
- 230000013011 mating Effects 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims 2
- 238000013459 approach Methods 0.000 abstract description 4
- 238000012856 packing Methods 0.000 abstract description 4
- 238000004806 packaging method and process Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 12
- 230000006837 decompression Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000796 flavoring agent Substances 0.000 description 1
- 235000019634 flavors Nutrition 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明适用于开发技术领域,提供了一种应用安装包的发布方法、终端设备及介质,该方法包括:获取开发应用的源代码,并对源代码进行编译,得到应用安装包;解压应用安装包,并读取解压包中的信息描述文件;加载渠道列表文件,依序遍历渠道列表文件中与分发渠道对应的渠道标识,并将当前遍历的渠道标识转换为满足预设格式的信息值;定位信息描述文件中的渠道标志位,并将渠道标志位的属性值更新为信息值;在对应信息值的分发渠道中,发布信息描述文件更新完成后的应用安装包。本发明避免了传统方式下每次发布都需要执行重复多次的编译打包的情况出现,因此,缩短了编译时长,从而也提高了应用程序的多渠道打包效率以及提高了应用安装包的发布效率。
Description
技术领域
本发明属于开发技术领域,尤其涉及一种应用安装包的发布方法、终端设备及计算机可读存储介质。
背景技术
安卓市场的开放性使得应用安装包的发布平台众多。各个发布平台都有自己的应用市场,此外,在一些网页中也存在有应用安装包的下载链接,由此使得终端用户可以从应用市场或网页下载链接中下载自己所需的应用安装包。其中,上述每一个能下载到应用安装包的渠道称为分发渠道。
通常情况下,开发者需要分渠道统计应用下载用户的活跃数、注册数以及在线数据等,以此作为渠道分成的依据。因此,对于同一功能的开发应用,针对不同的分发渠道,需要发布差异化的应用安装包,即,需要实现开发应用的多渠道打包。
现有技术中,多渠道打包的方式主要是通过gradle flavor串行的方式来实现。具体地,在应用程序源代码的AndroidManifest文件中分别修改不同的渠道标识,并对该源代码进行编译打包后,可输出一个分发渠道对应的应用程序安装包。然而,这种方式下,若要发布N(N为大于零的整数)个渠道的应用安装包,则需要耗费N倍单个应用安装包的编译时长,由此导致了多渠道打包的操作流程较为复杂,降低了应用安装包的发布效率。
发明内容
有鉴于此,本发明实施例提供了一种应用安装包的发布方法、终端设备及计算机可读存储介质,以解决现有技术中,应用程序的多渠道打包流程较为复杂,由此导致了应用安装包的发布效率较为低下的问题。
本发明实施例的第一方面提供了一种应用安装包的发布方法,包括:
获取开发应用的源代码,并对所述源代码进行编译,得到应用安装包;
解压所述应用安装包,并读取解压包中的信息描述文件;
加载渠道列表文件,依序遍历所述渠道列表文件中与分发渠道对应的渠道标识,并将当前遍历的所述渠道标识转换为满足预设格式的信息值;
定位所述信息描述文件中的渠道标志位,并将所述渠道标志位的属性值更新为所述信息值;
在对应所述信息值的所述分发渠道中,发布所述信息描述文件更新完成后的应用安装包。
本发明实施例的第二方面提供了一种终端设备,包括存储器以及处理器,所述存储器存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
获取开发应用的源代码,并对所述源代码进行编译,得到应用安装包;
解压所述应用安装包,并读取解压包中的信息描述文件;
加载渠道列表文件,依序遍历所述渠道列表文件中与分发渠道对应的渠道标识,并将当前遍历的所述渠道标识转换为满足预设格式的信息值;
定位所述信息描述文件中的渠道标志位,并将所述渠道标志位的属性值更新为所述信息值;
在对应所述信息值的所述分发渠道中,发布所述信息描述文件更新完成后的应用安装包。
本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:
获取开发应用的源代码,并对所述源代码进行编译,得到应用安装包;
解压所述应用安装包,并读取解压包中的信息描述文件;
加载渠道列表文件,依序遍历所述渠道列表文件中与分发渠道对应的渠道标识,并将当前遍历的所述渠道标识转换为满足预设格式的信息值;
定位所述信息描述文件中的渠道标志位,并将所述渠道标志位的属性值更新为所述信息值;
在对应所述信息值的所述分发渠道中,发布所述信息描述文件更新完成后的应用安装包。
本发明实施例中,通过预先对开发应用的源代码进行直接编译来生成一应用安装包,使得该应用安装包能够作为各个渠道安装包的母包;通过对母包进行解压以及在解压后的信息描述文件中执行渠道标志位属性值的置换操作,能够快速创建得到渠道安装包,并在对应的分发渠道中进行发布。在各分发渠道的应用安装包的发布过程中,由于仅需执行对开发应用源代码的一次编译操作,故避免了传统方式下每次发布都需要执行重复多次的编译打包的情况出现,因此,大大缩短了编译时长,从而提高了应用程序的多渠道打包效率以及提高了应用安装包的发布效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的应用安装包的发布方法的实现流程图;
图2是本发明实施例提供的应用安装包的发布方法S105的具体实现流程图;
图3是本发明另一实施例提供的应用安装包的发布方法的实现流程图;
图4是本发明又一实施例提供的应用安装包的发布方法的实现流程图;
图5是本发明再一实施例提供的应用安装包的发布方法的实现流程图;
图6是本发明实施例提供的应用安装包的发布装置的结构框图;
图7是本发明实施例提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
图1示出了本发明实施例提供的应用安装包的发布方法的实现流程,该方法流程包括步骤S101至S105。各步骤的具体实现原理如下:
S101:获取开发应用的源代码,并对所述源代码进行编译,得到应用安装包。
本发明实施例中,需要安装于终端设备上的应用程序为上述开发应用。在对开发应用进行发布之前,在预设的集成开发环境中,接收开发人员输入的与该开发应用匹配的源代码。上述源代码用于实现用户所需的各项用途功能,包括但不限于基于C、Java、Python以及JavaScript等开发语言所编写的源代码。
通过集成开发环境所提供的编译模块,对开发人员所录入的源代码进行编译处理。编译过程表示从源语言编写的源代码来产生目标程序的一个过程,由此使得高级程序语言能够转换为计算机可识读的二进制语言。在编译完成后,输出与目标程序关联的应用安装包。
特别地,本发明实施例中的应用安装包为安卓应用包(AndroidPackage,APK)。该应用安装包为待生成的各个渠道安装包的母包。
S102:解压所述应用安装包,并读取解压包中的信息描述文件。
本发明实施例中,通过Linux操作系统中的unzip命令,对上述编译输出的应用安装包APK进行解压,以得到与该应用安装包关联的多个数据文件,并使解压得到的各个数据文件存放于apkfiles文件夹中。其中,解压得到的数据文件包括安卓应用的信息描述文件。具体地,该信息描述文件为AndroidManifest.xml文件。将AndroidManifest.xml文件拷贝存储至另一预设目录,并将拷贝出来的文件转换为数据格式为十六进制的A.xml文件。
本发明实施例中,对解压包中的信息描述文件进行读取,包括:利用Python的bytearray方法,读取上述十六进制的A.xml文件所包含的数据,并将其存入byte数组,存为orgin_data。
S103:加载渠道列表文件,依序遍历所述渠道列表文件中与分发渠道对应的渠道标识,并将当前遍历的所述渠道标识转换为满足预设格式的信息值。
为了统计开发应用分别在各个不同分发渠道中的用户日活量、月活量以及注册数等数据,根据接收到的设置指令,预先定义各个分发渠道所对应的渠道标识,并将各个渠道标识存储于渠道列表文件中。其中,上述渠道标识以键值对的方式进行表示。键值对包括键名Key以及键值Vaule。Key为固定的参数变量,其用于表征Vaule的参数意义,上述Key例如可以是TD_CHANNEL_ID等;Value为用于表示应用市场平台的渠道标识,应用市场平台包括但不限于华为商店、豌豆荚以及360应用市场等,则上述Value例如可以是HuaweiMarket以及Wandoujia。
本发明实施例中,对渠道列表文件进行加载。根据渠道列表文件中渠道标识的排列顺序,依次遍历各个渠道标识。
对于当前遍历的每一个渠道标识,通过预设的bytearray utf-16方法,将该渠道标识转换为十六进制的数据值。另外,加载Python中的struct模块,并依次调用struct模块中的pack()函数以及unpack()函数,以在利用上述两个函数来处理当前的数据值后,输出得到满足预设格式的信息值,即,输出十六进制的信息值new_string_pack。
S104:定位所述信息描述文件中的渠道标志位,并将所述渠道标志位的属性值更新为所述信息值。
本发明实施例中,开发人员输入的源代码包含有一初始化的分发渠道的渠道标识,由此使得基于源代码所生成的应用安装包为与初始渠道标识匹配的渠道安装包。因此,在创建其余各个分发渠道的应用安装包之前,将该初始渠道标识进行读取。
同上述S103中的步骤实现原理,本发明实施例中,通过预设的bytearray utf-16方法,将初始渠道标识转换为十六进制的数据值,并依次调用struct模块中的pack()函数以及unpack()函数,以在利用上述两个函数来处理当前的数据值后,输出十六进制的原始信息值old_string_pack。
在上述解压后所得到的信息描述文件AndroidManifest.xml中,找出原始信息值old_string_pack所在的渠道标志位,则当前时刻该渠道标志位的属性值为old_string_pack。本发明实施例中,将属性值由old_string_pack变更为上述new_string_pack。
S105:在对应所述信息值的所述分发渠道中,发布所述信息描述文件更新完成后的应用安装包。
本发明实施例中,将渠道标志位属性值更新后的信息描述文件AndroidManifest.xml重新导入apkfiles,以覆盖原有的AndroidManifest.xml,由此获得更新后与开发应用相关的各项数据文件。对当前时刻的各项数据文件进行打包,以创建得到与当前遍历的渠道标识相对应的应用安装包,即,与该渠道标识对应的渠道安装包。
在完成任意一个渠道安装包的创建后,返回执行上述步骤S103,以遍历渠道列表文件中的下一个渠道标识,并基于步骤S104及S105来创建与该渠道标识对应的渠道安装包,直至渠道列表文件中的各个渠道标识均遍历完毕后,将各个渠道安装包分别发布对应的各个分发渠道。
本发明实施例中,通过预先对开发应用的源代码进行直接编译来生成一应用安装包,使得该应用安装包能够作为各个渠道安装包的母包;通过对母包进行解压以及在解压后的信息描述文件中执行渠道标志位属性值的置换操作,能够快速创建得到渠道安装包,并在对应的分发渠道中进行发布。在各分发渠道的应用安装包的发布过程中,由于仅需执行对开发应用源代码的一次编译操作,故避免了传统方式下每次发布都需要执行重复多次的编译打包的情况出现,因此,大大缩短了编译时长,从而提高了应用程序的多渠道打包效率以及提高了应用安装包的发布效率。
作为本发明的一个实施例,图2示出了本发明实施例提供的应用安装包的发布方法S105的具体实现流程,详述如下:
S1051:对于所述属性值更新完成后的所述信息描述文件,生成与该信息描述文件对应的签名信息。
S1052:将所述信息描述文件以及所述签名信息绑定并存储至所述解压包的预设目录。
S1053:在对应所述信息值的所述分发渠道中,发布所述信息描述文件更新完成后的应用安装包。
签名信息为应用安装包的数字签名。本发明实施例中,对于渠道标志位属性值更新后的信息描述文件AndroidManifest.xml,读取包含于AndroidManifest.xml中的各项数据信息,并通过预设算法来对上述各项数据信息进行运算处理,以将运算结果输出为与信息描述文件对应的签名信息。上述用于对各项数据信息进行运算处理的预设算法包括但不限于对称性加密算法、非对称性加密算法和/或消息摘要算法等。
示例性地,对信息描述文件中的各项数据信息,基于消息摘要运算来生成一个摘要,并利用预存储的私钥来对该摘要进行加密,以生成信息描述文件对应的数字签名。
本发明实施例中,将更新后的信息描述文件及其签名信息绑定并存储至解压包的预设目录。对当前时刻的解压包数据进行重新打包,以得到与当前遍历的渠道标识所对应的应用安装包后,在渠道标识所匹配的分发渠道中发布该应用安装包。
应用下载终端在分发渠道中下载应用安装包后,一方面,应用下载终端将使用发布者的公钥来对该应用安装包进行解密,以得到原数据信息的摘要;另一方面,将利用预设算法来对应用安装包所包含的数据信息进行摘要计算。若得到的两个摘要相同,则可确定该应用安装包为合法发布的应用安装包,其数据未经过篡改。
本发明实施例中,对于属性值更新完成后的信息描述文件,通过生成与该信息描述文件对应的签名信息,并将信息描述文件以及签名信息绑定存储至预设目录后,才对更新后的应用安装包进行发布,保证了经过渠道打包操作之后所得到的应用安装包能够拥有其匹配的签名信息,避免了应用下载终端在下载应用安装包后,因解析得到的签名信息为渠道打包之前的签名信息而导致应用程序无法正常安装,因此,提高了渠道安装包的可靠性以及发布准确性。
作为本发明的另一个实施例,如图3所示,在上述S105之后,还包括:
S301:若检测到关于任一所述应用安装包的下载请求,则触发渠道下载统计事件,所述渠道下载统计事件用于统计所述开发应用分别在各个所述分发渠道中的累积下载次数。
在分发渠道所对应的应用市场发布应用安装包后,若检测到任一客户端对该应用安装包发出的下载请求,则触发渠道下载统计事件。渠道下载统计事件用于统计开发应用分别在各个分发渠道中的累积下载次数,即,确定已发布的开发应用在各个应用市场中分别被下载了多少次。
S302:获取预设的各个统计算法所对应的优先级,并确定出所述优先级最高的所述统计算法;其中,所述统计算法包括第一算法以及第二算法。
本发明实施例中,用于执行渠道下载统计事件的统计算法包括第一算法以及第二算法。根据开发人员或分发渠道管理人员所预先录入的设置参数,分别确定与第一算法对应的第一优先级以及与第二算法对应的第二优先级。
若第一优先级高于第二优先级,则确定当前所需调用的统计算法为第一算法;若第二优先级高于第一优先级,则确定当前所需调用的统计算法为第二算法。
S303:若确定出的所述统计算法为第一算法,则在已发布的所述应用安装包的所述信息描述文件中,读取所述渠道标志位的属性值。
若确定出的统计算法为第一算法,则表示需要基于渠道标志位的属性值来确定客户端请求下载的应用安装包所属的分发渠道。因此,本发明实施例中,加载客户端请求下载的应用安装包,并对该应用安装包进行解压处理,以获取与该应用安装包关联的多个数据文件。在上述多个数据文件中,查找出AndroidManifest.xml文件,并读取其包含的渠道标志位的属性值。
S304:根据所述属性值所对应的所述分发渠道,将与该分发渠道对应的所述累积下载次数加一。
根据记录有渠道标识以及分发渠道的对应关系的渠道列表文件,在该渠道列表文件中查找出与当前渠道标志位的属性值相同的渠道标识,由此可读取出与该渠道标识对应的分发渠道。此时,将与该分发渠道对应的累积下载次数加一。
特别地,作为本发明的又一个实施例,如图4所示,在上述S303之后,还包括:
S401:若读取到的所述渠道标志位的属性值为空值,则将所述统计算法切换为第二算法,以通过预设的对接接口,向渠道服务器发出渠道标识获取请求。
S402:接收所述渠道服务器根据所述渠道标识获取请求所返回的渠道标识。
由于应用安装包在发布过程中可能因参数错误而导致渠道标志位的属性值出现异常,因此,若在信息描述文件中所读取到的渠道标志位的属性值为空值,则无法根据其属性值来确定出当前应用安装包所属的分发渠道。本发明实施例中,若检测到渠道标志位的属性值为空值,则将当前所需使用的统计算法由第一算法切换为第二算法。
本发明实施例中,第二算法用于通过预设的对接接口来获取当前应用安装包所对应的渠道标识。具体地,通过渠道服务器所预留的对接接口,向该渠道服务器发出渠道标识获取请求。上述渠道标识获取请求用于请求返回当前客户端请求下载的应用安装包所对应的渠道标识。其中,渠道服务器为应用市场所匹配的后台服务器。
本发明实施例中,渠道服务器根据应用市场开发人员所预先输入的控制代码,读取包含于控制代码中且与渠道标识关联的参数信息,并将该项参数信息确定为与客户端请求下载的应用安装包相对应的渠道标识。因此,可接收渠道服务器根据渠道标识获取请求所返回的上述渠道标识。
S403:确定出所述渠道标识所对应的所述分发渠道,并将与该分发渠道对应的所述累积下载次数加一。
本发明实施例中未提到的步骤实现原理与上述实施例中的步骤实现原理相同,因此不再一一赘述。
本发明实施例中,在统计算法确定为第一算法的情况下,若读取到的信息描述文件中渠道标志位的属性值为空值,则自动将统计算法切换为第二算法,以通过接口代码的方式来请求获取渠道服务器所存储的渠道标识,避免了因属性值缺失而影响了对渠道下载次数的统计,因而提高了渠道下载数据的统计准确率。
作为本发明的再一实施例,图5示出了本发明实施例提供的应用安装包的发布方法的实现流程。如图5所示,在上述S105之后,还包括:
S501:获取当前发布的所述应用安装包的项目代码,并计算基于所述项目代码的校验值。
对发布完成后的任一应用安装包,获取与该应用安装包关联的项目代码。项目代码包括源代码以及需要关联调用的第三方平台代码。本发明实施例中,利用预设的一致性校验算法来对项目代码进行计算,以生成该项目代码对应的校验值。
其中,一致性校验算法是即使源数据只修改一个字节都会导致计算出来的结果产生巨大变化的算法,并且具有单向性、不可逆性,包括但不限于信息-摘要算法5(Message-Digest Algorithm 5,MD5)、安全散列算法(Secure Hash Algorithm,SHA)以及循环冗余校验(Cyclic Redundancy Check,CRC)等算法。
S502:构建关于所述渠道标识以及所述校验值的版本编号。
本发明实施例中,根据预设的编码规则,对应用安装包所对应的渠道标识以及校验值进行处理,以生成关于当前客户端所下载的应用安装包的版本编号。
在一具体实施示例中,上述根据预设的编码规则,对应用安装包所对应的渠道标识以及校验值进行处理,包括:通过预设连接符,将应用安装包所对应的渠道标识以及校验值进行拼接,以生成应用安装包的版本编号。
在另一具体实施示例中,上述根据预设的编码规则,对应用安装包所对应的渠道标识以及校验值进行处理,还可以包括:获取渠道标识所预设对应的编码值;将该编码值以及校验值进行拼接,以生成应用安装包的版本编号。例如,若编码值“W”用于表示渠道标识为“Wandoujia”的应用市场,且应用安装包所对应的校验值为“239”,则拼接得到的版本编号为“W239”。
S503:将所述版本编号所对应的所述应用安装包备份至版本信息库。
本发明实施例中,版本信息库用于存储历史发布的各版本应用安装包。因此,在每一个分发渠道中,在发布信息描述文件更新完成的应用安装包后,将该应用安装包备份至版本信息库,并以其对应的版本编号来对该应用安装包进行唯一标识。
本发明实施例中,通过使用一致性校验算法来对应用安装包的项目代码进行运算,使得应用安装包在发生项目代码变更时,其必然会对应有不同的校验值,故保证了应用安装包的版本编号的唯一性;通过构建关于应用安装包的渠道标识以及校验值的版本编号,进而将版本编号所对应的应用安装包备份至版本信息库,保证了开发人员能够灵活地从版本信息库中查找各应用安装包,便于对各应用安装包进行版本管理。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上文实施例所述的应用安装包的发布方法,图6示出了本发明实施例提供的应用安装包的发布装置的结构框图。为了便于说明,仅示出了与本发明实施例相关的部分。
参照图6,该装置包括:
获取单元61,用于获取开发应用的源代码,并对所述源代码进行编译,得到应用安装包。
解压单元62,用于解压所述应用安装包,并读取解压包中的信息描述文件。
加载单元63,用于加载渠道列表文件,依序遍历所述渠道列表文件中与分发渠道对应的渠道标识,并将当前遍历的所述渠道标识转换为满足预设格式的信息值。
定位单元64,用于定位所述信息描述文件中的渠道标志位,并将所述渠道标志位的属性值更新为所述信息值。
发布单元65,用于在对应所述信息值的所述分发渠道中,发布所述信息描述文件更新完成后的应用安装包。
可选地,所述发布单元65包括:
生成子单元,用于对于所述属性值更新完成后的所述信息描述文件,生成与该信息描述文件对应的签名信息。
存储子单元,用于将所述信息描述文件以及所述签名信息绑定并存储至所述解压包的预设目录。
发布子单元,用于在对应所述信息值的所述分发渠道中,发布所述信息描述文件更新完成后的应用安装包。
可选地,所述应用安装包的发布装置还包括:
触发单元,用于若检测到关于任一所述应用安装包的下载请求,则触发渠道下载统计事件,所述渠道下载统计事件用于统计所述开发应用分别在各个所述分发渠道中的累积下载次数。
确定单元,用于获取预设的各个统计算法所对应的优先级,并确定出所述优先级最高的所述统计算法;其中,所述统计算法包括第一算法以及第二算法。
读取单元,用于若确定出的所述统计算法为第一算法,则在已发布的所述应用安装包的所述信息描述文件中,读取所述渠道标志位的属性值。
第一统计单元,用于根据所述属性值所对应的所述分发渠道,将与该分发渠道对应的所述累积下载次数加一。
可选地,所述应用安装包的发布装置还包括:
切换单元,用于若读取到的所述渠道标志位的属性值为空值,则将所述统计算法切换为第二算法,以通过预设的对接接口,向渠道服务器发出渠道标识获取请求。
接收单元,用于接收所述渠道服务器根据所述渠道标识获取请求所返回的渠道标识。
第二统计单元,用于确定出所述渠道标识所对应的所述分发渠道,并将与该分发渠道对应的所述累积下载次数加一。
可选地,所述应用安装包的发布装置还包括:
计算单元,用于获取当前发布的所述应用安装包的项目代码,并计算基于所述项目代码的校验值。
构建单元,用于构建关于所述渠道标识以及所述校验值的版本编号。
备份单元,用于将所述版本编号所对应的所述应用安装包备份至版本信息库。
本发明实施例中,通过预先对开发应用的源代码进行直接编译来生成一应用安装包,使得该应用安装包能够作为各个渠道安装包的母包;通过对母包进行解压以及在解压后的信息描述文件中执行渠道标志位属性值的置换操作,能够快速创建得到渠道安装包,并在对应的分发渠道中进行发布。由于各分发渠道的应用安装包的发布过程中,仅需执行对开发应用源代码的一次编译操作,故避免了传统方式下每次发布都需要执行重复多次的编译打包的情况出现,因此,大大缩短了编译时长,从而提高了应用程序的多渠道打包效率以及提高了应用安装包的发布效率。
图7是本发明一实施例提供的终端设备的示意图。如图7所示,该实施例的终端设备7包括:处理器70、存储器71以及存储在所述存储器71中并可在所述处理器70上运行的计算机程序72,例如应用安装包的发布程序。所述处理器70执行所述计算机程序72时实现上述各个应用安装包的发布方法实施例中的步骤,例如图1所示的步骤101至105。或者,所述处理器70执行所述计算机程序72时实现上述各装置实施例中各模块/单元的功能,例如图6所示单元61至65的功能。
示例性的,所述计算机程序72可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器71中,并由所述处理器70执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序72在所述终端设备7中的执行过程。
所述终端设备7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是终端设备7的示例,并不构成对终端设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器70可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器71可以是所述终端设备7的内部存储单元,例如终端设备7的硬盘或内存。所述存储器71也可以是所述终端设备7的外部存储设备,例如所述终端设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器71还可以既包括所述终端设备7的内部存储单元也包括外部存储设备。所述存储器71用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种应用安装包的发布方法,其特征在于,包括:
获取开发应用的源代码,并对所述源代码进行编译,得到应用安装包;
解压所述应用安装包,并读取解压包中的信息描述文件;
加载渠道列表文件,依序遍历所述渠道列表文件中与分发渠道对应的渠道标识,并将当前遍历的所述渠道标识转换为满足预设格式的信息值;
定位所述信息描述文件中的渠道标志位,并将所述渠道标志位的属性值更新为所述信息值;
在对应所述信息值的所述分发渠道中,发布所述信息描述文件更新完成后的应用安装包。
2.如权利要求1所述的应用安装包的发布方法,其特征在于,所述在对应所述信息值的所述分发渠道中,发布所述信息描述文件更新完成后的应用安装包,包括:
对于所述属性值更新完成后的所述信息描述文件,生成与该信息描述文件对应的签名信息;
将所述信息描述文件以及所述签名信息绑定并存储至所述解压包的预设目录;
在对应所述信息值的所述分发渠道中,发布所述信息描述文件更新完成后的应用安装包。
3.如权利要求1所述的应用安装包的发布方法,其特征在于,在所述在对应所述信息值的所述分发渠道中,发布所述信息描述文件更新完成后的应用安装包之后,还包括:
若检测到关于任一所述应用安装包的下载请求,则触发渠道下载统计事件,所述渠道下载统计事件用于统计所述开发应用分别在各个所述分发渠道中的累积下载次数;
获取预设的各个统计算法所对应的优先级,并确定出所述优先级最高的所述统计算法;其中,所述统计算法包括第一算法以及第二算法;
若确定出的所述统计算法为第一算法,则在已发布的所述应用安装包的所述信息描述文件中,读取所述渠道标志位的属性值;
根据所述属性值所对应的所述分发渠道,将与该分发渠道对应的所述累积下载次数加一。
4.如权利要求3所述的应用安装包的发布方法,其特征在于,在所述若确定出的所述统计算法为第一算法,则在已发布的所述应用安装包的所述信息描述文件中,读取所述渠道标志位的属性值之后,还包括:
若读取到的所述渠道标志位的属性值为空值,则将所述统计算法切换为第二算法,以通过预设的对接接口,向渠道服务器发出渠道标识获取请求;
接收所述渠道服务器根据所述渠道标识获取请求所返回的渠道标识;
确定出所述渠道标识所对应的所述分发渠道,并将与该分发渠道对应的所述累积下载次数加一。
5.如权利要求1所述的应用安装包的发布方法,其特征在于,还包括:
获取当前发布的所述应用安装包的项目代码,并计算基于所述项目代码的校验值;
构建关于所述渠道标识以及所述校验值的版本编号;
将所述版本编号所对应的所述应用安装包备份至版本信息库。
6.一种终端设备,包括存储器以及处理器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如下步骤:
获取开发应用的源代码,并对所述源代码进行编译,得到应用安装包;
解压所述应用安装包,并读取解压包中的信息描述文件;
加载渠道列表文件,依序遍历所述渠道列表文件中与分发渠道对应的渠道标识,并将当前遍历的所述渠道标识转换为满足预设格式的信息值;
定位所述信息描述文件中的渠道标志位,并将所述渠道标志位的属性值更新为所述信息值;
在对应所述信息值的所述分发渠道中,发布所述信息描述文件更新完成后的应用安装包。
7.如权利要求6所述的终端设备,其特征在于,所述在对应所述信息值的所述分发渠道中,发布所述信息描述文件更新完成后的应用安装包,包括:
对于所述属性值更新完成后的所述信息描述文件,生成与该信息描述文件对应的签名信息;
将所述信息描述文件以及所述签名信息绑定并存储至所述解压包的预设目录;
在对应所述信息值的所述分发渠道中,发布所述信息描述文件更新完成后的应用安装包。
8.如权利要求6所述的终端设备,其特征在于,所述处理器执行所述计算机程序时还实现如下步骤:
若检测到关于任一所述应用安装包的下载请求,则触发渠道下载统计事件,所述渠道下载统计事件用于统计所述开发应用分别在各个所述分发渠道中的累积下载次数;
获取预设的各个统计算法所对应的优先级,并确定出所述优先级最高的所述统计算法;其中,所述统计算法包括第一算法以及第二算法;
若确定出的所述统计算法为第一算法,则在已发布的所述应用安装包的所述信息描述文件中,读取所述渠道标志位的属性值;
根据所述属性值所对应的所述分发渠道,将与该分发渠道对应的所述累积下载次数加一。
9.如权利要求8所述的终端设备,其特征在于,所述处理器执行所述计算机程序时还实现如下步骤:
若读取到的所述渠道标志位的属性值为空值,则将所述统计算法切换为第二算法,以通过预设的对接接口,向渠道服务器发出渠道标识获取请求;
接收所述渠道服务器根据所述渠道标识获取请求所返回的渠道标识;
确定出所述渠道标识所对应的所述分发渠道,并将与该分发渠道对应的所述累积下载次数加一。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811203760.7A CN109542461A (zh) | 2018-10-16 | 2018-10-16 | 应用安装包的发布方法、终端设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811203760.7A CN109542461A (zh) | 2018-10-16 | 2018-10-16 | 应用安装包的发布方法、终端设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109542461A true CN109542461A (zh) | 2019-03-29 |
Family
ID=65844013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811203760.7A Pending CN109542461A (zh) | 2018-10-16 | 2018-10-16 | 应用安装包的发布方法、终端设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109542461A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110377331A (zh) * | 2019-07-22 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 发布应用程序的监控方法、装置、设备及存储介质 |
CN111125725A (zh) * | 2019-11-22 | 2020-05-08 | 苏州浪潮智能科技有限公司 | 一种镜像校验的加解密方法、设备及介质 |
CN111290740A (zh) * | 2020-02-21 | 2020-06-16 | 武汉联影医疗科技有限公司 | 应用程序的开发方法、装置、计算机设备和存储介质 |
CN111399864A (zh) * | 2020-03-16 | 2020-07-10 | 北京五八信息技术有限公司 | 一种安卓系统应用程序基础包生成方法以及生成装置 |
CN111459511A (zh) * | 2020-03-31 | 2020-07-28 | 北京百度网讯科技有限公司 | 应用程序的下载方法、装置及电子设备 |
CN111552484A (zh) * | 2020-04-29 | 2020-08-18 | 腾讯科技(深圳)有限公司 | 一种应用程序包分发方法、装置、设备及存储介质 |
CN113127005A (zh) * | 2021-05-08 | 2021-07-16 | 北京字节跳动网络技术有限公司 | 一种可执行文件生成的方法、装置以及计算机存储介质 |
CN113282400A (zh) * | 2021-06-29 | 2021-08-20 | 中国平安人寿保险股份有限公司 | 基于接口路由的应用发布方法、装置、设备及存储介质 |
CN113407932A (zh) * | 2021-06-18 | 2021-09-17 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种渠道标识的上报方法、系统及存储介质 |
CN113467825A (zh) * | 2021-06-30 | 2021-10-01 | 完美世界(北京)软件科技发展有限公司 | Ipa数据展示系统及其方法、装置、设备及计算机可读介质 |
CN114268624A (zh) * | 2022-03-02 | 2022-04-01 | 上海豪承信息技术有限公司 | 版本文件传输方法、装置及服务器 |
CN114416165A (zh) * | 2021-12-29 | 2022-04-29 | 北京字节跳动网络技术有限公司 | 一种接口发布方法、系统、计算机设备及存储介质 |
CN114615316A (zh) * | 2020-12-07 | 2022-06-10 | 中国联合网络通信集团有限公司 | 内容发布的方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110209128A1 (en) * | 2010-02-24 | 2011-08-25 | Nokia Corporation | Systems, methods and apparatuses for facilitating targeted compilation of source code |
CN103729186A (zh) * | 2013-12-31 | 2014-04-16 | 上海网达软件股份有限公司 | 一种批量生成多渠道apk文件包的方法 |
CN104346184A (zh) * | 2013-08-01 | 2015-02-11 | 中兴通讯股份有限公司 | 应用打包装置及方法 |
CN105893008A (zh) * | 2015-11-16 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 一种定制多渠道安装包的方法及装置 |
CN106775824A (zh) * | 2016-11-22 | 2017-05-31 | 武汉斗鱼网络科技有限公司 | 一种带有渠道信息的应用文件打包系统及方法 |
CN107797808A (zh) * | 2016-08-31 | 2018-03-13 | 腾讯科技(深圳)有限公司 | 应用安装包处理方法及装置 |
-
2018
- 2018-10-16 CN CN201811203760.7A patent/CN109542461A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110209128A1 (en) * | 2010-02-24 | 2011-08-25 | Nokia Corporation | Systems, methods and apparatuses for facilitating targeted compilation of source code |
CN104346184A (zh) * | 2013-08-01 | 2015-02-11 | 中兴通讯股份有限公司 | 应用打包装置及方法 |
CN103729186A (zh) * | 2013-12-31 | 2014-04-16 | 上海网达软件股份有限公司 | 一种批量生成多渠道apk文件包的方法 |
CN105893008A (zh) * | 2015-11-16 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 一种定制多渠道安装包的方法及装置 |
CN107797808A (zh) * | 2016-08-31 | 2018-03-13 | 腾讯科技(深圳)有限公司 | 应用安装包处理方法及装置 |
CN106775824A (zh) * | 2016-11-22 | 2017-05-31 | 武汉斗鱼网络科技有限公司 | 一种带有渠道信息的应用文件打包系统及方法 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110377331A (zh) * | 2019-07-22 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 发布应用程序的监控方法、装置、设备及存储介质 |
CN110377331B (zh) * | 2019-07-22 | 2023-10-13 | 腾讯科技(深圳)有限公司 | 发布应用程序的监控方法、装置、设备及存储介质 |
CN111125725A (zh) * | 2019-11-22 | 2020-05-08 | 苏州浪潮智能科技有限公司 | 一种镜像校验的加解密方法、设备及介质 |
CN111290740A (zh) * | 2020-02-21 | 2020-06-16 | 武汉联影医疗科技有限公司 | 应用程序的开发方法、装置、计算机设备和存储介质 |
CN111399864A (zh) * | 2020-03-16 | 2020-07-10 | 北京五八信息技术有限公司 | 一种安卓系统应用程序基础包生成方法以及生成装置 |
CN111459511A (zh) * | 2020-03-31 | 2020-07-28 | 北京百度网讯科技有限公司 | 应用程序的下载方法、装置及电子设备 |
CN111552484A (zh) * | 2020-04-29 | 2020-08-18 | 腾讯科技(深圳)有限公司 | 一种应用程序包分发方法、装置、设备及存储介质 |
CN114615316A (zh) * | 2020-12-07 | 2022-06-10 | 中国联合网络通信集团有限公司 | 内容发布的方法和装置 |
CN113127005A (zh) * | 2021-05-08 | 2021-07-16 | 北京字节跳动网络技术有限公司 | 一种可执行文件生成的方法、装置以及计算机存储介质 |
CN113127005B (zh) * | 2021-05-08 | 2024-05-24 | 抖音视界有限公司 | 一种可执行文件生成的方法、装置以及计算机存储介质 |
CN113407932A (zh) * | 2021-06-18 | 2021-09-17 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种渠道标识的上报方法、系统及存储介质 |
CN113282400A (zh) * | 2021-06-29 | 2021-08-20 | 中国平安人寿保险股份有限公司 | 基于接口路由的应用发布方法、装置、设备及存储介质 |
WO2023273116A1 (zh) * | 2021-06-30 | 2023-01-05 | 完美世界(北京)软件科技发展有限公司 | Ipa数据展示系统及其方法、装置、设备及计算机可读介质 |
CN113467825A (zh) * | 2021-06-30 | 2021-10-01 | 完美世界(北京)软件科技发展有限公司 | Ipa数据展示系统及其方法、装置、设备及计算机可读介质 |
CN113467825B (zh) * | 2021-06-30 | 2024-08-30 | 完美世界(北京)软件科技发展有限公司 | Ipa数据展示系统及其方法、装置、设备及计算机可读介质 |
CN114416165A (zh) * | 2021-12-29 | 2022-04-29 | 北京字节跳动网络技术有限公司 | 一种接口发布方法、系统、计算机设备及存储介质 |
CN114268624B (zh) * | 2022-03-02 | 2022-06-03 | 上海豪承信息技术有限公司 | 版本文件传输方法、装置及服务器 |
CN114268624A (zh) * | 2022-03-02 | 2022-04-01 | 上海豪承信息技术有限公司 | 版本文件传输方法、装置及服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542461A (zh) | 应用安装包的发布方法、终端设备及介质 | |
US10055216B2 (en) | Minimizing image copying during partition updates | |
CN107632827B (zh) | 应用的安装包的生成方法及装置 | |
CN114600420A (zh) | 修剪防篡改数据存储装置中的条目 | |
JP2017146966A (ja) | パッケージファイルに対する機能拡張方法およびシステム | |
US12067122B2 (en) | Detecting added functionality in open source package | |
WO2021164462A1 (zh) | 一种数据加密方法、数据解密方法、计算机设备和介质 | |
US20220269504A1 (en) | Client-side enrichment and transformation via dynamic logic for analytics | |
CN111008034A (zh) | 一种补丁生成方法及装置 | |
KR102472345B1 (ko) | 계층화 문서를 관리하는 방법 및 이를 이용한 장치 | |
CN110806935B (zh) | 应用程序构建方法、装置和系统 | |
CN110826074A (zh) | 一种应用漏洞检测方法、装置和计算机可读存储介质 | |
CN114461217A (zh) | 代码编译方法、装置、电子设备及存储介质 | |
CN113961226A (zh) | 一种软件开发工具包修复方法、终端、服务器及设备 | |
CN112579138A (zh) | 页面展示方法、装置、电子设备及存储介质 | |
CN110955415A (zh) | 一种投影多平台服务适配的方法 | |
CN114721709A (zh) | 程序包生成方法、装置、存储介质及计算机设备 | |
CN115904387A (zh) | 程序模块编译方法、计算机设备和程序产品 | |
CN114153457A (zh) | 应用程序安装文件生成方法、装置及存储介质 | |
TWI682296B (zh) | 映像檔打包方法及映像檔打包系統 | |
CN112486555A (zh) | 软件增量升级方法、装置、设备及计算机可读存储介质 | |
CN112749152A (zh) | 智能合约的数据迁移方法、装置及存储介质 | |
CN110780881A (zh) | 一种软件包制作方法、装置和电子设备 | |
CN110347333A (zh) | 提高克隆镜像性能的方法、装置、计算机设备及存储介质 | |
CN115964075B (zh) | 应用导出导入方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190329 |