应用的渠道包的生成方法及装置与流程

文档序号:12664618阅读:155来源:国知局
应用的渠道包的生成方法及装置与流程

本发明涉及计算机软件技术领域,尤其涉及一种应用的渠道包的生成方法及装置。



背景技术:

随着计算机技术的发展,各种各样功能的计算机应用(Application;App)的出现,大大地方便了人们的生活。例如,地图App可以方便人们的出行;新闻类的App可以帮忙人们随时随地查看新闻资讯;各种娱乐类App可以随时帮助人们随时随地进行消遣。

为了便于用户通过各种渠道获取应用,现有技术中通过将应用打包成不同的渠道包,例如,可以在渠道包中增加标识该应用的渠道的唯一标识Channel ID;然后通过对应的渠道推送给用户。现有技术根据不同的渠道生成不同的渠道包,便于应用提供商统计该应用在各个渠道的推送效果。现有技术中,渠道包的生成过程中,需要根据生成的渠道包对应的渠道信息和该应用的源代码,编译生成对应的渠道包。如果需要生成同一应用的多个不同的渠道信息,均需要按照对应的渠道信息和应用的源代码,分别编译生成对应的渠道包。

由上述可知,现有技术中,同一应用的多个不同渠道的渠道包的生成过程,需要根据应用的源代码和每一个渠道的渠道信息分别进行编译生成;生成渠道包的过程比较复杂,且容易出错,导致渠道包的生成效率非常低。



技术实现要素:

本发明提供了一种应用的渠道包的生成方法及装置,用于提高渠道包的生成效率。

本发明提供一种应用的渠道包的生成方法,所述方法包括:

根据应用的渠道信息,在基础安装包中assets目录下配置所述渠道信息;

对配置了所述渠道信息的所述基础安装包进行签名,得到目标渠道包。

进一步可选地,如上所述的方法中,所述根据应用的渠道信息,在基础安装包中assets目录下配置所述渠道信息,具体包括:

判断所述基础安装包中所述assets目录下是否包括原渠道信息;

若包括,删除所述原渠道信息;

根据所述应用的渠道信息,在所述基础安装包中所述assets目录下写入所述渠道信息。

进一步可选地,如上所述的方法中,还包括:

若所述基础安装包中所述assets目录下未包括原渠道信息,根据所述应用的渠道信息,直接在所述基础安装包中所述assets目录下写入所述渠道信息。

进一步可选地,如上所述的方法中,所述对配置了所述渠道信息的所述基础安装包进行签名,得到目标渠道包,具体包括:

判断配置了所述渠道信息的所述基础安装包中是否包括签名信息,若包括,则删除所述签名信息,利用jarsigner对所述基础安装包进行重新签名,得到所述目标渠道包。

进一步可选地,如上所述的方法中,若所述基础安装包中不包括签名信息,还包括:

直接利用jarsigner对所述基础安装包进行签名,得到所述目标渠道包。

进一步可选地,如上所述的方法中,对配置了所述渠道信息的所述基础安装包进行签名,得到目标渠道包之后,还包括:

利用ZIPALIGN对生成的所述目标渠道包进行压缩对齐。

进一步可选地,如上所述的方法中,根据应用的渠道信息,在基础安装包中assets目录下配置所述渠道信息之前,还包括:

根据所述应用的源代码,生成所述应用的所述基础安装包。

本发明还提供一种应用的渠道包的生成装置,所述装置包括:

渠道信息配置模块,用于根据应用的渠道信息,在基础安装包中assets目录下配置所述渠道信息;

签名模块,用于对配置了所述渠道信息的所述基础安装包进行签名,得到目标渠道包。

进一步可选地,如上所述的装置中,所述渠道信息配置模块,具体用于:

判断所述基础安装包中所述assets目录下是否包括原渠道信息;

若包括,删除所述原渠道信息;

根据所述应用的渠道信息,在所述基础安装包中所述assets目录下写入所述渠道信息。

进一步可选地,如上所述的装置中,所述渠道信息配置模块,具体还用于若所述基础安装包中所述assets目录下未包括原渠道信息,根据所述应用的渠道信息,直接在所述基础安装包中所述assets目录下写入所述渠道信息。

进一步可选地,如上所述的装置中,所述签名模块,具体用于判断配置了所述渠道信息的所述基础安装包中是否包括签名信息,若包括,则删除所述签名信息,利用jarsigner对所述基础安装包进行重新签名,得到所述目标渠道包。

进一步可选地,如上所述的装置中,所述签名模块,还用于若所述基础安装包中不包括签名信息,直接利用jarsigner对所述基础安装包进行签名,得到所述目标渠道包。

进一步可选地,如上所述的装置中,还包括:

压缩对齐模块,用于利用ZIPALIGN对生成的所述目标渠道包进行压缩对齐。

进一步可选地,如上所述的装置中,还包括:

生成模块,用于根据所述应用的源代码,生成所述应用的所述基础安装包。

本发明的应用的渠道包的生成方法及装置,通过根据应用的渠道信息,在基础安装包中assets目录下配置渠道信息;对配置了渠道信息的基础安装包进行签名,得到目标渠道包。本发明的技术方案,根据一个基础安装包可以生成多个渠道包,而不用现有技术所述,针对每一个渠道包分别根据应用的源代码和每一个渠道的渠道信息分别进行编译生成,因此本发明的技术方案,可以大大简化渠道包的生成过程,渠道包的生成效率非常高;且本实施例的技术方案生成的渠道包,不容易出错,准确性较高。

【附图说明】

图1为本发明的应用的渠道包的生成方法实施例一的流程图。

图2为本发明的应用的渠道包的生成方法实施例二的流程图。

图3为本发明的应用的渠道包的生成装置实施例一的结构图。

图4为本发明的应用的渠道包的生成装置实施例二的结构图。

图5为本发明提供的一种电子设备实施例的结构图。

【具体实施方式】

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

图1为本发明的应用的渠道包的生成方法实施例一的流程图。如图1所示,本实施例的应用的渠道包的生成方法,具体可以包括如下步骤:

100、根据应用的渠道信息,在基础安装包中assets目录下配置渠道信息;

101、对配置了渠道信息的基础安装包进行签名,得到目标渠道包。

本实施例的应用的渠道信息可以包括应用的渠道的标识信息,用于唯一标识该渠道。例如渠道的标识信息可以包括渠道的来源,如百度、QQ、或者应用宝、豌豆夹等等中文或者汉语拼音作为渠道的标识;或者还可以采用自定义的渠道的标识例如channel ID来表示渠道的标识,例如通过百度提供的该应用对应的渠道标识为channel 01;通过QQ提供该应用对应的渠道标识为channel 02。本实施例中可以在基础安装包的assets目录下创建一个记录渠道号的文件,用于放置该渠道包的渠道信息。本实施例中通过在基础安装包的assets目录下放置渠道信息。由于该assets目录下的所有文件必须参与后续的签名处理,这样,可以充分保证渠道信息不能够被随意篡改。因此,本实施例中,通过在assets目录中创建存储渠道信息的文件,以保证渠道信息的安全,不易被篡改。

若在Android操作系统中,本实施例中的基础安装包可以为根据应用的源代码生成的格式为apk的文件。本实施例的基础安装包,可以为按照现有技术的方式生成的一个包括渠道信息且已进行签名的渠道包;此时该基础安装包能够被正常安装。或者本实施例的基础安装包也可以为一个不能进行安装的中间包,例如与上述可以正常安装的基础安装包相比,该方案的基础安装包可以为未写入渠道信息和/或未进行签名的中间包。由于正常发布的渠道包必须加入渠道信息,且进行签名,才能够推广发布。而本实施例的未写入渠道信息和/或未进行签名的基础安装包可以作为一个中间的基础安装包,便于后续生成其他的渠道包。当该基础安装包中未写入渠道信息时,此时需要在编译阶段,在assets目录下创建了一个记录渠道号的文件,但是该文件中未写入渠道信息,即仅仅建立了一个可以存储渠道信息的文件,便于后续在其中写入渠道信息。当该基础安装中包中未签名时,该基础安装包的安全性较差,不能被运行。而当该基础安装包只要被签名均可以被运行,如果该基础安装包签名了,且带有原渠道信息,此时运行时,可以读到原渠道信息,而且还可以根据读取到的原渠道信息和原渠道信息的位置即assets目录下、以及要写入的渠道信息配置该基础安装包。如果基础安装包未签名了,无论是否带有原渠道信息,此时均不适合运行,可以直接根据原渠道信息的位置即assets目录,检测是否带有原渠道信息,并根据要写入的渠道信息,配置该基础安装包。本实施例中,根据一个基础安装包可以生成多个渠道包。

本实施例的应用的渠道包的生成方法,根据应用的渠道信息,在基础安装包中assets目录下配置渠道信息;对配置了渠道信息的基础安装包进行签名,得到目标渠道包。本实施例的技术方案,根据一个基础安装包可以生成多个渠道包,而不用现有技术所述,针对每一个渠道包分别根据应用的源代码和每一个渠道的渠道信息分别进行编译生成,因此本实施例的技术方案,可以大大简化渠道包的生成过程,渠道包的生成效率非常高;且本实施例的技术方案生成的渠道包,不容易出错,准确性较高。

图2为本发明的应用的渠道包的生成方法实施例二的流程图。本实施例的应用的渠道包的生成方法在上述图1所示实施例的技术方案的基础上,进一步更加详细地介绍本发明的技术方案。如图2所示,本实施例的应用的渠道包的生成方法,具体可以包括如下步骤:

200、根据应用的源代码,生成应用的基础安装包;

本实施例中在根据应用的源代码,生成应用的基础安装包的过程中,需要在android工程的assets目录下创建一个记录渠道信息的文件,以便后续在该文件中记录渠道信息。具体地,在生成的基础安装中可以记录有渠道信息;也可以不记录渠道信息,仅保留一个空的用于记录渠道信息的文件。该渠道信息具体可以为渠道号,该渠道信息具体可以记录在该文件的名称中,或者记录在该文件内部。本实施例的基础安装包的生成可以包括如下过程:在android工程的assets目录下创建一个记录渠道信息的文件;此处如果正在生成一个需要运行的基础安装包,可以在该渠道信息的文件中写入渠道信息;否则若此处正在生成的为一个用于便于生成其他渠道包的中间包,此时也可以暂时不在记录渠道信息的文件中写入渠道信息。然后利用安卓组件打包工具(Android Asset Packaging Tool;AAPT)将Resource文件、AndroidManifest.xml文件、Android基础类库(Android.jar文件)等资源文件进行打包,生成R.java文件。利用Android接口定义语言(Android Interface Definition Language;AIDL)将源码文件、aidl文件、framework.aidl文件生成对应的.java文件。利用javac工具将源代码文件(包括R.java和AIDL生成的.java文件)、库文件(.jar文件)编译为.class文件;把.class文件转化成Davik VM支持的.dex文件。利用apkbuilder工具将打包后的资源文件、打包后类文件(.dex文件)、libs文件打包成未签名的.apk文件;最后可以根据需求,如果生成的基础安装包需要运行,则此处需要使用jarsigner对未签名.apk文件进行签名,得到签名后的.apk文件;否则若生成的基础安装包为一个用于便于生成其他渠道包的中间包,此时也可以不进行签名。即本实施例生成的基础安装可以包括如下四种情况:1)包括渠道信息,包括签名信息;2)未包括渠道信息,包括签名信息;3)包括渠道信息,未包括签名信息;4)未包括渠道信息,未包括签名信息。

201、判断基础安装包中assets目录下是否包括原渠道信息;若包括,执行步骤202;否则,若未包括,执行步骤203;

202、删除原渠道信息;执行步骤203;

203、根据应用的渠道信息,在基础安装包中assets目录下写入渠道信息;执行步骤204;

该步骤中的应用的渠道信息为将要生成的渠道包中的渠道信息。

本实施例的步骤201-203为上述图1所示实施例的步骤100的一种具体实现方式。

204、判断配置了渠道信息的基础安装包中是否包括签名信息,若包括,执行步骤205;否则,若未包括,执行步骤206;

205、删除签名信息;执行步骤206;

206、利用jarsigner对基础安装包进行签名,得到目标渠道包;执行步骤207;

本实施例中最终得到的目标渠道包的格式为.apk格式。

本实施例的步骤204-206为上述图1所示实施例的步骤101的一种具体实现方式。

207、利用ZIPALIGN对生成的目标渠道包进行压缩对齐。

本实施例的生成的渠道包在发布之前,务必需要进行压缩对齐处理,才能发布到应用市场中。

本实施例的应用的渠道包的生成方法,通过采用上述技术方案,根据一个基础安装包可以生成多个渠道包,而不用现有技术所述,针对每一个渠道包分别根据应用的源代码和每一个渠道的渠道信息分别进行编译生成,可以大大简化渠道包的生成过程,渠道包的生成效率非常高;且本实施例的技术方案生成的渠道包,不容易出错,准确性较高。

图3为本发明的应用的渠道包的生成装置实施例一的结构图。如图3所示,本实施例的应用的渠道包的生成装置,具体可以包括:渠道信息配置模块10和签名模块11。

其中渠道信息配置模块10用于根据应用的渠道信息,在基础安装包中assets目录下配置渠道信息;签名模块11用于对渠道信息配置模块10处理后的配置了渠道信息的基础安装包进行签名,得到目标渠道包。

本实施例的应用的渠道包的生成装置,通过采用上述模块实现应用的渠道包的生成的实现原理以及技术效果与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。

图4为本发明的应用的渠道包的生成装置实施例二的结构图。如图4所示,本实施例的应用的渠道包的生成装置,在上述图3所示实施例的技术方案的基础上,进一步更加详细地介绍本发明的技术方案。

本实施例的应用的渠道包的生成装置中,渠道信息配置模块10具体可以用于:

判断基础安装包中assets目录下是否包括原渠道信息;

若包括,删除原渠道信息;

根据应用的渠道信息,在基础安装包中assets目录下写入渠道信息。

进一步可选地,本实施例的应用的渠道包的生成装置中,渠道信息配置模块10具体还可以用于若基础安装包中assets目录下未包括原渠道信息,根据应用的渠道信息,直接在基础安装包中assets目录下写入渠道信息。

进一步可选地,本实施例的应用的渠道包的生成装置中,签名模块11具体用于判断配置了渠道信息的基础安装包中是否包括签名信息,若包括,则删除签名信息,利用jarsigner对基础安装包进行重新签名,得到目标渠道包。

进一步可选地,本实施例的应用的渠道包的生成装置中,签名模块11具体还用于若基础安装包中不包括签名信息,直接利用jarsigner对基础安装包进行签名,得到目标渠道包。

进一步可选地,如图4所示,本实施例的应用的渠道包的生成装置中还包括压缩对齐模块12。具体地,压缩对齐模块12用于利用ZIPALIGN对签名模块11签名之后生成的目标渠道包进行压缩对齐。

进一步可选地,如图4所示,本实施例的应用的渠道包的生成装置中还包括生成模块13。其中该生成模块13用于根据应用的源代码,生成应用的基础安装包。对应地,渠道信息配置模块10用于根据应用的渠道信息,在生成模块13生成的基础安装包中assets目录下配置渠道信息。

本实施例的应用的渠道包的生成装置,通过采用上述模块实现应用的渠道包的生成的实现原理以及技术效果与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。

本发明实施例提供的上述方法和装置可以以设置并运行于电子设备中的计算机程序体现。如图5中所示,为本发明提供的一种电子设备实施例的结构图。该电子设备可以包括一个或多个处理器800,还包括存储器801和一个或多个程序,图5所示实施例一包括一个处理器800为例来描述本发明的技术方案。其中该一个或多个程序存储于存储器801中,被上述一个或多个处理器800执行以实现本发明上述实施例中所示的方法流程和/或装置操作。例如,被上述一个或多个处理器800执行的方法流程,可以包括:

根据应用的渠道信息,在基础安装包中assets目录下配置所述渠道信息;

对配置了所述渠道信息的所述基础安装包进行签名,得到目标渠道包。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

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

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