一种apk文件的存储及输出方法

文档序号:6397558阅读:197来源:国知局
专利名称:一种apk文件的存储及输出方法
技术领域
本发明涉及Android平台下的文件处理技术领域,尤其涉及一种APK文件的存储及输出方法。
背景技术
Android平台的应用都被打包为APK格式,APK是Android Package的缩写。有时根据业务需求,需要对原有版本Android应用软件的APK文件进行微小修改生成该Android应用软件的不同版本以满足不同用户的需求。目前已知技术在处理这样的业务需求时,都是在原完整APK文件上进行修改并对整个修改后的APK文件重新签名,然后把完成签名的新的APK文件完整存储在服务器上,对整个APK文件进行重新签名的运算时间非常长,长达数十秒甚至超过一分钟。同时,新APK文件与原APK文件差异有时仅仅数十KB,却要对整个新APK文件完整的存储(平均一个APK有5MB),该Android应用软件的多个不同版本完整存储在服务器上,存储成本将会变得非常大。中国专利公开号CN102346697,
公开日2012年2月8日,发明的名称为一种安卓安装包的备份与恢复的方法、系统及移动终端,该申请案公开了一种安卓安装包的备份与恢复的方法、系统及移动终端,它包括以下步骤:在终端备份已安装的安卓安装包APK时,查询所述APK在使用的过程中的关联数据;将原始APK文件和所述APK在使用的过程中的关联数据一起备份至服务器或外部存储设备。其不足之处是,该方法对存在微小差异的Android应用软件的不同版本备份时,需对每个版本Android应用软件完整的存储,不能差异化存储,占用了大量存储空间。

发明内容
本发明的目的是克服现有APK文件完整存储在服务器上,当根据业务需求对APK文件进行微小修改后,需对整个新APK文件重新签名,消耗服务器大量运算时间,且签名后的新APK文件完整存储在服务器上,占用大量服务器空间的技术问题,提供了一种APK文件的存储及输出方法,其将APK文件分为固定APK文件包和可变APK文件包分开存储在服务器上,当根据业务需求对APK文件进行微小修改时,只对可变APK文件包进行修改并签名,减少服务器运算时间,且将签名后的新可变APK文件包单独存储,节省了存储空间。为了解决上述问题,本发明采用以下技术方案予以实现:
一种APK文件的存储及输出方法,包括以下步骤:
A.将一个Android应用软件的APK文件拆分成由不能改动的内容组成的固定APK文件包和由可以根据需要改动的内容组成的可变APK文件包;
B.对固定APK文件包和可变APK文件包分别进行签名处理,并将完成签名处理的固定APK文件包和可变APK文件包分别存储在服务器上;
C.当需要对原有版本Android应用软件的APK文件进行修改生成该Android应用软件的不同版本以满足不同用户的需求时,对原有版本Android应用软件的可变APK文件包的内容进行修改,对修改完成后生成的新可变APK文件包进行签名处理,接着将完成签名处理的新可变APK文件包存储在服务器上,同时在服务器上保留原有可变APK文件包;
D.服务器监控用户发送的请求信息,当接收到请求信息时,服务器将固定APK文件包以及与该请求信息相对应的可变APK文件包按APK文件格式组合成一个APK文件输出到用户终端。在本技术方案中,将一个Android应用软件的APK文件拆分成不能改动的固定APK文件包和可以改动的可变APK文件包,固定APK文件包内的内容为该Android应用软件的不能修改的部分,可变APK文件包内的内容为该Android应用软件的可以根据用户要求进行修改的部分。接着,将固定APK文件包和可变APK文件包分别进行签名处理后分开存储在服务器上。有时由于业务需求需要对该Android应用软件进行若干种不同的修改生成该Android应用软件的若干个版本,由于该Android应用软件的所有版本都必须具有同样的固定APK文件包,所以只需对原有可变APK文件包进行若干种修改即可。为了生成该Android应用软件的一个版本而对原有可变APK文件包进行修改时,先将原有可变APK文件包复制,再对复制的可变APK文件包进行相应修改,最后将修改后生成的新可变APK文件包签名并单独存储在服务器上。该Android应用软件的一个版本可由固定APK文件包和一个修改后生成的新可变APK文件包组合而成。这样每次生成该Android应用软件的一个版本时只需对生成的新可变APK文件包签名,避免了原先对整个该版本Andro i d应用软件(包括固定APK文件包内容和对应新可变APK文件包内容)进行签名,减少服务器运算时间。最后服务器上只存有固定APK文件包和若干个可变APK文件包,每个固定APK文件包和一个可变APK文件包可以组成该Android应用软件的一个版本,避免了原先在服务器上将该Android应用软件的不同版本分别完整存储,节省了存储空间。作为优选,所述步骤C中对原有可变APK文件包进行修改包括以下步骤:
51.复制原有可变APK文件包,并将复制的可变APK文件包解压缩;
52.对可变APK文件包解压缩后的文件内容进行修改操作;
53.将完成修改的文件内容压缩打包成新可变APK文件包。作为优选,所述固定APK文件包在服务器上只存储有一个,每个版本Android应用软件都只有一个对应的可变APK文件包存储在服务器上。节省服务器存储空间。 作为优选,所述服务器上设有反应每种请求信息与其对应的可变APK文件包之间关系的映射表,当用户发送请求信息时,服务器在映射表中查出该请求信息对应的可变APK文件包,将该可变APK文件包和固定APK文件包组合成一个APK文件输出到用户终端。便于服务器对可变APK文件包的管理。作为优选,所述每种请求信息包含有唯一的识别符ID。服务器根据识别符ID判断请求信息的种类。本发明的实质性效果是:将APK文件分为固定APK文件包和可变APK文件包分开存储在服务器上,当根据业务需求对APK文件进行微小修改时,只对可变APK文件包进行修改并签名,减少服务器运算时间,且将签名后的新可变APK文件包单独存储,节省了存储空间。


图1是本发明的一种流程图。
具体实施例方式下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。实施例:本实施例的一种APK文件的存储及输出方法,如图1所示,包括以下步骤:
A.将一个Android应用软件的APK文件拆分成由不能改动的内容组成的固定APK文件包和由可以根据需要改动的内容组成的可变APK文件包;
B.对固定APK文件包和可变APK文件包分别进行签名处理,并将完成签名处理的固定APK文件包和可变APK文件包分别存储在服务器上;
C.当需要对原有版本Android应用软件的APK文件进行修改生成该Android应用软件的不同版本以满足不同用户的需求时,复制原有版本Android应用软件的可变APK文件包,并将复制的可变APK文件包解压缩,对可变APK文件包解压缩后的文件内容进行修改操作,将完成修改的文件内容压缩打包成新可变APK文件包,对新可变APK文件包进行签名处理,接着将完成签名处理的新可变APK文件包存储在服务器上,同时在服务器上保留原有可变APK文件包;
D.服务器监控用户发送的请求信息,当接收到请求信息时,服务器将固定APK文件包以及与该请求信息相对应的可变APK文件包按APK文件格式组合成一个APK文件输出到用户终端。将一个Android应用软件的APK文件拆分成不能改动的固定APK文件包和可以改动的可变APK文件包,固定APK文件包内的内容为该Android应用软件的不能修改的部分,可变APK文件包内的内容为该Android应用软件的可以根据用户要求进行修改的部分。接着,将固定APK文件包和可变APK文件包分别进行签名处理后分开存储在服务器上。有时由于业务需求需要对该Android应用软件进行多种不同的微小修改(如对界面、业务逻辑等修改)生成该Android应用软件的多个版本,以满足不同用户的需求。由于该Android应用软件的所有版本都必须具有同样的固定APK文件包,所以只需对原有可变APK文件包进行修改即可。为了生成该Android应用软件的一个版本而对原有可变APK文件包进行修改时,将修改后生成的新可变APK文件包签名并单独存储在服务器上。该Android应用软件的一个版本可由固定APK文件包和一个修改后生成的新可变APK文件包组合而成。这样每次生成该Android应用软件的一个版本时只需对生成的新可变APK文件包签名,避免了原先对整个该版本Andro i d应用软件(包括固定APK文件包内容和对应新可变APK文件包内容)进行签名,减少服务器运算时间。最后,固定APK文件包在服务器上只存储有一个,每个版本Android应用软件都只有一个对应的可变APK文件包存储在服务器上,每个固定APK文件包和一个可变APK文件包可以组成该Android应用软件的一个版本,避免了原先在服务器上将该Android应用软件的不同版本分别完整存储,节省了存储空间。每种请求信息包含有唯一的识别符ID,服务器根据识别符ID判断请求信息的种类。服务器上设有反应每种请求信息与其对应的可变APK文件包之间关系的映射表,当用户发送请求信息时,服务器在映射表中查出该请求信息对应的可变APK文件包,将该可变APK文件包和固定APK文件包组合成一个APK文件输出到用户终端,便于服务器对可变APK文件包的管理。
权利要求
1.一种APK文件的存储及输出方法,其特征在于,包括以下步骤: A将一个Android应用软件的APK文件拆分成由不能改动的内容组成的固定APK文件包和由可以根据需要改动的内容组成的可变APK文件包; B对固定APK文件包和可变APK文件包分别进行签名处理,并将完成签名处理的固定APK文件包和可变APK文件包分别存储在服务器上; C当需要对原有版本Android应用软件的APK文件进行修改生成该Android应用软件的不同版本以满足不同用户的需求时,对原有版本Android应用软件的可变APK文件包的内容进行修改,对修改完成后生成的新可变APK文件包进行签名处理,接着将完成签名处理的新可变APK文件包存储在服务器上,同时在服务器上保留原有可变APK文件包; D服务器监控用户发送的请求信息,当接收到请求信息时,服务器将固定APK文件包以及与该请求信息相对应的可变APK文件包按APK文件格式组合成一个APK文件输出到用户终端。
2.根据权利要求1所述的一种APK文件的存储及输出方法,其特征在于,所述步骤C中对原有可变APK文件包进行修改包括以下步骤: 51.复制原有可变APK文件包,并将复制的可变APK文件包解压缩; 52.对可变APK文件包解压缩后的文件内容进行修改操作; 53.将完成修改的文件内容压缩打包成新可变APK文件包。
3.根据权利要求1或2所述的一种APK文件的存储及输出方法,其特征在于:所述固定APK文件包在服务器上只存储有一个,每个版本Android应用软件都只有一个对应的可变APK文件包存储在服务器上。
4.根据权利要求1或2所述的一种APK文件的存储及输出方法,其特征在于:所述服务器上设有反应每种请求信息与其对应的可变APK文件包之间关系的映射表,当用户发送请求信息时,服务器在映射表中查出该请求信息对应的可变APK文件包,将该可变APK文件包和固定APK文件包组合成一个APK文件输出到用户终端。
5.根据权利要求4所述的一种APK文件的存储及输出方法,其特征在于:所述每种请求信息包含有唯一的识别符ID。
全文摘要
本发明公开了一种APK文件的存储及输出方法。它包括以下步骤A.将一个APK文件拆分成固定APK文件包和可变APK文件包;B.对固定APK文件包和可变APK文件包进行签名处理并存储在服务器上;C.根据用户需求对可变APK文件包的内容进行修改,将修改后生成的新可变APK文件包进行签名并存储在服务器上,在服务器上保留原有可变APK文件包;D.根据用户请求将固定APK文件包和相应的可变APK文件包按APK文件格式组合成一个APK文件输出到用户终端。本发明对一个APK文件进行微小修改时,只对可变APK文件包进行修改并签名,减少服务器运算时间,且将签名后的新可变APK文件包单独存储,节省存储空间。
文档编号G06F17/30GK103177077SQ20131000590
公开日2013年6月26日 申请日期2013年1月8日 优先权日2013年1月8日
发明者陆向东 申请人:杭州米加科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1