一种安卓实时多渠道打包方法

xiaoxiao2021-3-1  206

一种安卓实时多渠道打包方法
【技术领域】
[0001] 本发明涉及渠道包生成技术,尤其涉及一种基于安卓APK程序包的安卓实时多渠 道打包方法。
【背景技术】
[0002] 对于目前现有的渠道包生成技术,其每生成一个渠道包,都需要修改 AndroidManifest .xml里的渠道参数值,然后再进行编译后才能生成新的渠道包。然而,由 于每次都需要重新编译程序及对包体进行签名,因此无论是以手工还是程序的方式来进行 这个过程,其都是十分缓慢,工作效率十分低下的,从而大大降低分渠道打包的速度。

【发明内容】

[0003] 为了解决上述技术问题,本发明的目的是提供一种安卓实时多渠道打包方法,适 合在磁盘上生成不同渠道包时所使用的。
[0004] 为了解决上述技术问题,本发明的目的是提供一种安卓实时多渠道打包方法,适 合在HTTP服务器来实时动态生成不同渠道包时所使用的。
[0005] 本发明所采用一技术方案是:一种安卓实时多渠道打包方法,适合在磁盘上生成 不同渠道包时所使用的,其包括: A、 打开APK程序包; B、 获取渠道编号,然后根据获得的渠道编号从而生成注释数据; C、 将注释数据写入APK程序包中,然后关闭APK程序包。
[0006] 进一步,所述步骤B具体包括: B1、判断当前打开的APK程序包中是否存有注释字段,若有,则执行步骤B2;反之,则执 行步骤B3; B2、将注释字段中的长度置为零,并清除后续的注释数据,然后执行步骤B3; B3、获取渠道编号,然后根据获得的渠道编号从而生成注释数据。
[0007] 进一步,所述步骤B与步骤C之间设有对生成的注释数据进行加密的步骤。
[0008] 进一步,所述步骤C具体为:计算注释数据的字节长度,将字节长度写入注释字段 中,并将注释数据写在该字节长度后面。
[0009] 本发明所采用另一技术方案是:一种安卓实时多渠道打包方法,适合在HTTP服务 器来实时动态生成不同渠道包时所使用的,其包括: 51、 获取渠道包请求后触发渠道编号的获取; 52、 根据获得的渠道编号,从而判断是否存在与该渠道编号相对应的渠道注释文件,若 存在,则执行步骤S5;反之,则执行步骤S3; 53、 根据获得的渠道编号从而生成注释数据; 54、 获得注释数据的字节长度,然后以小端序将该字节长度写入文件中,并且在该字节 长度后写入注释数据,以生成渠道注释文件; 55、 发送原始的APK文件内容至客户端,保留最后两字节不发送; 56、 发送渠道注释文件至客户端,所述ΑΡΚ文件和渠道注释文件合并生成一个完整的 ΑΡΚ程序包; 57、 所述客户端收到一个完整的带渠道注释文件的ΑΡΚ程序包。
[0010] 进一步,所述步骤S3和步骤S4之间设有对生成的注释数据进行加密的步骤。
[0011] 本发明的有益效果是:本发明的安卓实时多渠道打包方法,适合在磁盘上生成不 同渠道包时所使用的,而通过采用本发明的这一打包方法,在生成渠道包时则无需进行重 新编译程序及对包体进行签名,仅需要对ΑΡΚ程序包的注释字段的内容进行相应的修改来 记录渠道编号便可。因此由此可得,通过使用本发明的方法,能够实现快速打包的效果。
[0012] 本发明的另一有益效果是:本发明的安卓实时多渠道打包方法,适合在HTTP服务 器来实时动态生成不同渠道包时所使用的。通过采用本发明的这一打包方法,在生成渠道 包时则无需进行重新编译程序及对包体进行签名,仅需要根据渠道编号来生成注释数据, 从而生成注释文件,然后将注释文件和原始的APK文件合并后便可生成一完整的带注释文 件的APK程序包,即一渠道包。由此可得,通过使用本发明的方法,能够实现快速打包的效 果,而且在HTTP服务器上仅需要保存一个母包及渠道注释文件便可,极大地节省了打包的 时间和存储空间。
【附图说明】
[0013] 下面结合附图对本发明的【具体实施方式】作进一步说明: 图1是本发明一种适合在磁盘上生成不同渠道包的安卓实时多渠道打包方法的一具体 实施例步骤流程图; 图2是本发明一种适合在HTTP服务器来实时动态生成不同渠道包的安卓实时多渠道打 包方法的一具体实施例步骤流程图; 图3是对APK程序包进行读取处理的步骤流程图。
【具体实施方式】
[0014] 对于现有的通过修改AndroidManifest. xml的打包方式,若要生成100个渠道包, 则需要重复编译及签名100次才可以获取100个渠道包,这样则极大浪费了打包时间,大大 降低打包处理的效率。因此,针对一技术问题,本发明提供一种利用APK程序包中的注释进 行渠道编号记录,从而实现快速打包的方法。
[0015] 对于所述的APK程序包,其实际为一个ZIP文件,而所述ZIP文件的格式分为三部 分,分别为压缩源文件数据区、压缩源文件目录区以及压缩源文件目录结束标志。
[0016] 对于上述的压缩源文件数据区、压缩源文件目录区以及压缩源文件目录结束标 志,具体描述如下所示: 1、压缩源文件数据区 在这个数据区中每一个压缩的源文件/目录都是一条记录,记录的格式为[文件头+文 件数据+数据描述符],其中,所述文件头的格式和数据描述符的格式如下所示: (1)、文件头的格式
(2)、数据描述符的格式
这个数据描述符仅在全局方式位标记的第3位设为1时才存在,紧接在压缩数据的最后 一个字节后。这个数据描述符仅用在不能对输出的ZIP文件进行检索时才使用(例如:在 一个不能检索的驱动器(如:磁带机上)上的ZIP文件中),若是磁盘上的ZIP文件一般没有 这个数据描述符; 2、压缩源文件目录区 在这个数据区中每一条纪录对应在压缩源文件数据区中的一条数据,而其格式如下所 示:
3、压缩源文件目录结束标志 所述压缩源文件目录结束标志的格式如下所示:
由上述可得,本发明具体是通过修改APK程序包中的注释长度和注释内容来实现快速 打包。所述注释长度和注释内容组成注释字段,所述注释内容中所包含的数据为注释数据。
[0017]如图1所示,一种安卓实时多渠道打包方法,适合在磁盘上生成不同渠道包的,其 步骤具体包括有: 3101、打开4?1(程序包; 5102、 判断当前打开的APK程序包中是否存有注释字段,若有,则执行步骤S103;反之, 则执行步骤S104; 5103、 将注释字段中的长度 置为零,并清除后续的注释数据,然后执行步骤S104; 5104、 获取渠道编号,然后根据获得的渠道编号从而生成注释数据; 对于所述的根据获得的渠道编号从而生成注释数据,其具体为:利用一定的标识规则, 从而根据渠道编号来生成一串注释文字,即注释数据,此文字可供程序读取并还原获得原 来的渠道编号; 5105、 为了防止第三方简单地修改注释内容进行渠道编号的篡改,因此,对生成的注释 数据进行加密; 5106、 将加密后的注释数据写入APK程序包中,然后关闭APK程序包; 具体地,计算加密后的注释数据的字节长度,将计算得到的字节长度写入注释字段的 注释长度区域中,并将加密后的注释数据写在该字节长度后面,即接入注释内容区域中,然 后关闭APK程序包。
[0018] 由上述可得,采用上述的打包方法,在磁盘上生成不同渠道包时,则无需进行重新 编译程序及对包体进行签名,仅需要对APK程序包的注释字段的内容进行相应的修改来记 录渠道编号便可。由此可得,通过使用本发明的方法,能够在磁盘上实现快速打包的效果, 而且本发明的方法还具有步骤简单、易于实现等优点。
[0019] 如图2所示,一种安卓实时多渠道打包方法,适合在HTTP服务器来实时动态生成不 同渠道包的,其具体包括: 5201、 HTTP服务器获取渠道包请求后触发渠道编号的获取,其中,所述的渠道包请求是 由客户端发出的; 5202、 根据获得的渠道编号,从而判断是否存在与该渠道编号相对应的渠道注释文件, 即判断是否已存在根据该渠道编号所生成的渠道注释文件,若存在,则执行步骤S206;反 之,则执行步骤S203; 5203、 根据获得的渠道编号从而生成注释数据; 所述步骤S203具体为,利用一定的标识规则,从而根据渠道编号来生成一串注释文字, 即注释数据,此文字可供程序读取并还原获得原来的渠道编号; 5204、 为了防止第三方简单地修改注释内容进行渠道编号的篡改,对生成的注释数据 进行加密; 5205、 获得加密后的注释数据的字节长度,然后以小端序将该字节长度写入文件中,并 且在该字节长度后写入加密后的注释数据,以生成渠道注释文件; 由上述可知,ZIP文件的注释字段的长度标识是小端序(little-endian)的,所以先把 加密后的注释数据的字节长度以小端序写入,并在其后写入加密后的注释数据,这样就可 以生成属于这个渠道的加密注释文件; 5206、 发送原始的APK文件内容至客户端,保留最后两字节不发送,即HTTP服务器把原 始的APK文件发送到客户端,由于最后两字节一般是注释长度0,所以最后两字节不发送; 5207、 发送渠道注释文件至客户端; 由于渠道注释文件头两个字节就是注释内容的长度,所以所述APK文件和渠道注释文 件合并后便生成一个完整的APK程序包; 5208、 所述客户端收到一个完整的带渠道注释文件的APK程序包,然后客户端便能根据 接收到的APK程序包从而进行各项后续工作。
[0020] 而对于上述作为渠道包的APK程序包,如图3所示,对其进行读取处理的步骤具体 包括有: 5301、 获取APK程序包; 5302、 判断APK程序包中是否存有注释,若是,则执行步骤S303;反之,则结束; 5303、 读取该APK程序包中的注释,并且对该注释的数据进行解密; 5304、 当解密成功后,根据解密后的注释的数据从而还原渠道编号; 5305、 根据获得的渠道编号进行相应的操作处理,如把渠道编号发给统计服务器之类 的操作。
[0021]以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施 例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替 换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
【主权项】
1. 一种安卓实时多渠道打包方法,其特征在于:其包括: A、 打开APK程序包; B、 获取渠道编号,然后根据获得的渠道编号从而生成注释数据; C、 将注释数据写入APK程序包中,然后关闭APK程序包。2. 根据权利要求1所述一种安卓实时多渠道打包方法,其特征在于:所述步骤B具体包 括: B1、判断当前打开的APK程序包中是否存有注释字段,若有,则执行步骤B2;反之,则执 行步骤B3; B2、将注释字段中的长度置为零,并清除后续的注释数据,然后执行步骤B3; B3、获取渠道编号,然后根据获得的渠道编号从而生成注释数据。3. 根据权利要求1或2所述一种安卓实时多渠道打包方法,其特征在于:所述步骤B与步 骤C之间设有对生成的注释数据进行加密的步骤。4. 根据权利要求1或2所述一种安卓实时多渠道打包方法,其特征在于:所述步骤C具体 为:计算注释数据的字节长度,将字节长度写入注释字段中,并将注释数据写在该字节长度 后面。5. -种安卓实时多渠道打包方法,其特征在于:其包括: 51、 获取渠道包请求后触发渠道编号的获取; 52、 根据获得的渠道编号,从而判断是否存在与该渠道编号相对应的渠道注释文件,若 存在,则执行步骤S5;反之,则执行步骤S3; 53、 根据获得的渠道编号从而生成注释数据; 54、 获得注释数据的字节长度,然后以小端序将该字节长度写入文件中,并且在该字节 长度后写入注释数据,以生成渠道注释文件; 55、 发送原始的APK文件内容至客户端,保留最后两字节不发送; 56、 发送渠道注释文件至客户端,所述APK文件和渠道注释文件合并生成一个完整的 APK程序包; 57、 所述客户端收到一个完整的带渠道注释文件的APK程序包。6. 根据权利要求5所述一种安卓实时多渠道打包方法,其特征在于:所述步骤S3和步骤 S4之间设有对生成的注释数据进行加密的步骤。
【专利摘要】本发明公开了一种安卓实时多渠道打包方法,其通过修改APK程序包中的注释长度和注释内容,从而实现渠道编号的记录,这样则无需进行重新编译程序及对包体进行签名,仅需要对APK程序包的注释进行修改便可,这样能大大提高打包的效率,而且还能节省存储空间,具有步骤简单、易于实现等优点。本发明作为一种安卓实时多渠道打包方法可广泛应用于多渠道打包领域中。
【IPC分类】G06F9/44
【公开号】CN105487876
【申请号】CN201511027952
【发明人】曾新乾
【申请人】武汉手盟网络科技有限公司
【公开日】2016年4月13日
【申请日】2015年12月30日

最新回复(0)