一种快速生成多渠道安装包的方法与流程

文档序号:17924506发布日期:2019-06-15 00:19阅读:320来源:国知局

发明涉及互联网技术领域,涉及一种生成安装包的方法,尤其是指一种快速生成多渠道安装包的方法。



背景技术:

从android诞生的那天开始,开源模式就吸引了大量的品牌和用户,基于android的应用程序的发展趋势也屡创新高。目前互联网上存在非常多的应用程序下载市场,如googleplay,安智市场,91助手,豌豆荚等,每当应用程序发新版本时,android客户端需要将应用程序分发到各个应用市场。为了统计这些市场活跃数,下载量等市场效果,需要有一种方法来唯一标识它们。目前,应用程序通过渠道号(channel)来区分不同的市场。发布到各种市场的应用程序安装包中,包含一个channel变量记录该渠道号,比如,某一应用程序在豌豆荚市场中应用的渠道号是wandoujia,在360手机助手渠道号为360_zhushou。客户端访问api时会在请求参数中带上渠道号,以便后台接下来计算不同渠道的效果,例如统计哪些市场带来的用户量比较大或者可能有一些盈利需要和具体的渠道进行分成。

每次发版时,应用程序工程师会根据市场部提供的渠道列表生成等量的渠道包。随着渠道越来越多,互联网上一些火热的应用,甚至达到数百个渠道,高效快速的编译这些安装包,是版本发布速度抢占市场的一个关键因素。

现在普遍采用的打包方案,主要是在androidmainfest.xml文件中,添加渠道号记录变量,每个渠道的安装包中的主要区别就是这个变量。在给每个渠道编译安装包前修改该变量,再使用android原生的编译方法,编译生成安装包。这个方案需要大量的人工参与,需手工修改渠道号变量,并且根据应用程序规模大小每个安装包编译时间在2-30分钟不等。基于这个编译方案,例如编译一个包要2分钟,那么100包将是200分钟,非常费时。



技术实现要素:

发明的目的是针对上述问题,提供了一种快速打多渠道包的方法,用以解决原技术中需要一个一个打包的费时任务,实现一次打包,然后多次签入渠道号,以达到快速打包的目的。

为达到上述目的,发明采用了下列技术方案:一种快速生成多渠道安装包的方法:一、根据android编译方式生成一个不含渠道信息的基础安装包;二、读取渠道信息配置文件,并生成渠道信息文件;三、将生成渠道文件写入基础安装包生成一个对应渠道的安装包;四、将渠道包推送至对应渠道以供终端下载。

在上述的一种快速生成多渠道安装包的方法中,所述的基础安装包的方法为:第一步:打包资源文件,生成r.java文件;第二步:处理aidl文件,生成对应的.java文件;第三步:编译java文件,生成对应的.class文件;第四步:把.class文件转化成davikvm支持的.dex文件;第五步:打包生成未签名的.apk文件;第六步:使用jarsigner对未签名.apk文件进行签名,得到签名后的文件;第七步:用zipalign工具对签名后的.apk文件进行对齐处理,因通常情况下不进行对齐处理是不能发布到googlemarket的。

在上述的一种快速生成多渠道安装包的方法中,所述的基础安装包不带有任何的渠道信息,是应用程序的原始代码进行编译得到的原始安装包。

在上述的一种快速生成多渠道安装包的方法中,所述基础安装包通常以压缩文件的形式展现。

与现有技术相比较,发明的优点在于:本方案缩减了多渠道打包编译中大量的人工参与以及重复编译安装包的过程,极大提高了多渠道安装包的打包效率。

具体实施方式

下面对发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是发明一部分实施例,而不是全部的实施例。基于发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于发明保护的范围。

本领域技术人员熟知,所述“渠道”为用户能够下载应用程序的一些网络平台,例如应用商店、应用程序发布的官方网站、搜索平台提供的推广下载等等。每个“渠道号”标记一个相应的网络平台,并且通过所述“渠道号”可以唯一地识别一应用程序是通过何种网络平台进行发布的。所述“渠道包”就是将应用程序的安装包分不同的渠道进行打包。

打包方法包括如下的步骤:

安卓的原生编译方式主要经由一下几个过程完成:第一步:打包资源文件,生成r.java文件。这一过程是利用aapt工具将resource文件、androidmanifest.xml文件、android基础类库(android.jar文件)进行打包;第二步:处理aidl文件,生成对应的.java文件。此步骤利用aidl工具将源码文件、aidl文件、framework.aidl文件生成为对应的.java文件;第三步:编译java文件,生成对应的.class文件。此步骤中,利用javac工具将】源码文件(包括r.java和aidl生成的.java文件)、库文件(.jar文件)编译为.class文件;第四步:把.class文件转化成davikvm支持的.dex文件。此步骤中的.class文件包括aidl生成.class文件,r生成的.class文件,源文件生成的.class文件),库文件(.jar文件),最终转化为.dex文件;第五步:打包生成未签名的.apk文件。利用apkbuilder工具将打包后的资源文件、打包后类文件(.dex文件)、libs文件打包成未签名的.apk文件;第六步:使用jarsigner对未签名.apk文件进行签名,得到签名后的文件;第七步:用zipalign工具对签名后的.apk文件进行对齐处理,因通常情况下不进行对齐处理是不能发布到googlemarket的。

经由上述过程,应用程序的源代码即可生成一个基础安装包。本发明实施例中的所述基础安装包不带有任何的渠道信息,是应用程序的原始代码进行编译得到的原始安装包。所述基础安装包通常以压缩文件的形式展现。值得注意的是,本发明实施例中所述的“编译”是广义的编译,包括将源代码文件和配置文件进行处理生成安装文件的所有过程,例如包括对源代码文件编译生成可执行程序、解释性文件等,还包括生成支持应用程序自动安装的压缩包、安装程序等。本发明实施例中,将生成的所述基础安装包进行复制,得到若干临时安装包以便后续对所述临时安装包进行修改得到应用程序的不同发布渠道对应的渠道包。

本发明中,会先将渠道对应的信息配置在一个配置文件中。按行区分每一条配置。例name-code-defaultcode(360-360-1),分隔线分开的三个数据是对应渠道包所需的数据。其中code是渠道号,defaultcode是首发渠道号。当code和defaultcode相等时,app会显示相应的首发信息。按行读取应用程序的渠道配置文件,生成一个空文件,并根据获取的渠道信息对其进行命名。文件并用所述渠道信息对应的渠道号命名所述临时渠道文件。把所生成的空的渠道信息文件写入apk的meta-info目录下。将所生成的渠道包推送至推广渠道以供终端下载。每个渠道的apk被安装使用时,会解析出apk中所带的渠道信息,并上传给服务器。接收每个所述终端上报的推广渠道的推广结果。

以上所述仅为发明较佳实施例而已,并不用以限制发明,凡在发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1