渠道包的输出方法及装置的制造方法

文档序号:9349788阅读:161来源:国知局
渠道包的输出方法及装置的制造方法
【技术领域】
[0001]本发明涉及通信领域,具体而言,涉及一种渠道包的输出方法及装置。
【背景技术】
[0002]目前,Android应用软件在发布时输出渠道包的方案如下上述:
[0003]使用Android Gradle插件构建Android应用程序,通过在build, gradle脚本文件中编写多渠道出包配置脚本代码,并执行该脚本文件来调用Android编译器分别编译不同渠道包。
[0004]首先在AndroidManifest.xml文件中定义一个渠道的Meta Tag (元数据),并将其值使用一个占位变量来占位;其次在build, gradle文件中的productFlavors下分别定义每个渠道名或渠道号,除此之外,还可以根据定义的渠道名或渠道号在不同的功能的配置块中针对该渠道进行定制;最后告诉编译器在编译时将渠道的占位符自动替换为productFlavors下定义的渠道名或渠道号,同时根据该渠道的定制配置进行程序编译。如此循环,最终可以输出若干个渠道包。
[0005]程序执行时,通过操作系统提供的API读取AndroidManifest.xml文件中的MetaTag,便可以获取到该包的渠道号。
[0006]然而,上述方案虽然很灵活,可以根据不同的渠道进行定制、配置,但是最大的缺点就是输出所有的渠道包很慢。因为每输出一个渠道包,需要重新完整编译一次,编译时间与项目的大小成反比,项目越大编译则越慢(完整重新编译一次语玩项目需要6-7分钟)。而大多数渠道包的内容都一样,仅仅是渠道号有区别。

【发明内容】

[0007]本发明的主要目的在于公开了一种渠道包的输出方法及装置,以至少解决相关技术中输出渠道包很慢的问题。
[0008]根据本发明的一个方面,提供了一种渠道包的输出方法。
[0009]根据本发明的渠道包的输出方法包括:对渠道包进行分类,设置为多种类别的版本;执行编译指令,输出与各种上述版本对应的程序原始包;编写用于写入渠道号的第一脚本文件,其中,在上述第一脚本文件中为各个渠道包指定需要使用的程序原始包;执行上述第一脚本文件,其中,对于每个渠道包,将该渠道包指定需要使用的程序原始包进行复制,并在复制后的程序原始包中写入渠道号。
[0010]根据本发明的另一方面,提供了一种渠道包的输出装置。
[0011]根据本发明的渠道包的输出装置包括:分类设置模块,用于对渠道包进行分类,设置为多种类别的版本;第一执行模块,用于执行编译指令,输出与各种上述版本对应的程序原始包;第一编写模块,用于编写用于写入渠道号的第一脚本文件,其中,在上述第一脚本文件中为各个渠道包指定需要使用的程序原始包;第二执行模块,用于执行上述第一脚本文件,其中,对于每个渠道包,将该渠道包指定需要使用的程序原始包进行复制,并在复制后的程序原始包中写入渠道号。
[0012]通过本发明,将对渠道包进行分类,将必须的几种原始包(未签名)编译出来,随后通过脚本文件批量复制并写入渠道号,可以灵活定制、高效输出渠道包。
【附图说明】
[0013]图1是根据本发明实施例的渠道包的输出方法的流程图;
[0014]图2是根据本发明优选实施例的渠道包的输出方法的流程图;
[0015]图3是根据本发明实施例的渠道包的输出装置的结构框图;以及
[0016]图4是根据本发明优选实施例的渠道包的输出装置的结构框图。
【具体实施方式】
[0017]下面结合说明书附图对本发明的具体实现方式做一详细描述。
[0018]图1是根据本发明实施例的渠道包的输出方法的流程图。如图1所示,该渠道包的输出方法包括:
[0019]步骤SlOl:对渠道包进行分类,设置为多种类别的版本;
[0020]步骤S103:执行编译指令,输出与各种上述版本对应的程序原始包;
[0021]步骤S105:编写用于写入渠道号的第一脚本文件,其中,在上述第一脚本文件中为各个渠道包指定需要使用的程序原始包;
[0022]步骤S107:执行上述第一脚本文件,其中,对于每个渠道包,将该渠道包指定需要使用的程序原始包进行复制,并在复制后的程序原始包中写入渠道号。
[0023]通过图1所示的渠道包的输出方法,将必须的几种原始包(未签名)编译出来。随后通过脚本文件批量复制并写入渠道号,因而无需每输出一个渠道包,都重新完整编译一次,大大节省了项目出包时间,提高了效率。
[0024]优选地,步骤SlOl中,对渠道包进行分类,设置为多种类别的版本可以进一步包括以下处理:在build, gradle脚本文件中的productFlavors中定义所有渠道包的多种类别的版本名,其中,上述多种类别的版本名包括:完整版、精简版、中国移动渠道版、中国联通渠道版。
[0025]优选实施过程中,可以基于Android Gradle插件进行构建,在build, gradle脚本文件中的productFlavors中定义所有渠道中会出现的几种类别的版本名,例如:Full (完整版),Lite (精简版)XMCC (中国移动渠道版,屏蔽了联通支付)XUCC (中国联通渠道版,屏蔽了移动支付)等。
[0026]优选地,在执行步骤SlOl之后,还可以包括:对于每种上述版本,分别在各个功能配置单元中进行配置以完成对上述版本的定制。
[0027]优选地,在执行步骤S107之后,还可以包括以下处理:编写用于签名的第二脚本文件,其中,在上述第二脚本文件中指定需要签名的渠道包和无需签名的渠道包。执行上述第二脚本文件,将上述需要签名的渠道包进行签名。
[0028]签名的本质就是为了防止包被第三方恶意修改,因为在包签名过后对包进行了修改,如果向包中添加一个文件,会破坏包的签名,导致安装失败。由于本发明实施例中,签名是执行上述SlOl至S107之后,所以不存在破坏包的问题,渠道文件在随后的签名过程中也会被签名,成为一个合法的文件。
[0029]优选地,在执行上述第二脚本文件,将上述需要签名的渠道包进行签名之后,还可以包括以下处理:安装并执行上述签名后的渠道包,通过系统应用程序接口(Applicat1nProgramming Interface,简称为API)读取assets目录下的渠道文件获取渠道号。
[0030]优选地,在执行上述第二脚本文件,将上述需要签名的渠道包进行签名之后,还可以包括以下处理:安装并执行上述签名后的渠道包,通过系统API读取assets目录下的渠道文件获取渠道号。
[0031]在优选实施过程中,可以编写用于签名的脚本文件(即上述第二脚本文件),在脚本中指定哪些渠道包需要签名,哪些渠道包不需要签名(需由第三方检测并代签,如中国移动)。执行用于签名的脚本文件,被指定签名的渠道包将会被签名,未被指定签名的文件将不做处理。安装并执行由自己签名或第三方代签的渠道包,通过读取assets目录下的渠道文件,便可以获得渠道号。因为渠道号是在未签名的时候写入的,所以不会存在破坏签名的问题。
[0032]以下结合图2进一步描述上述优选实施方式。
[0033]图2是根据本发明优选实施例的渠道包的输出方法的流程图。如图2所示,该渠道包的输出方法包括:
[0034]步骤S201:项目基于Android Gradle插件进行构建,在build, gradle脚本文件中的productFlavors中定义所有渠道中会出现的几种类别的版本名,如:Full(完整版)、Lite(精简版)、CMCC(中国移动渠道版,屏蔽了联通支付)、CUCC(中国联通渠道版,屏蔽了移动支付)等。
[0035]步骤S203:针对步骤S201中定义的几种类别的版本,分别在其它功能的配置块中编写相应配置以完成对这几种
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1