一种应用包拆分重组和运行的方法和装置制造方法及图纸

技术编号:21224329 阅读:22 留言:0更新日期:2019-05-29 05:05
本申请提供了一种应用包拆分重组和运行的方法和装置,其中所述应用包拆分和重组的方法包括:将第一应用包拆分为主包和至少一个分包;将所述主包和所述至少一个分包保存在第一文件中,并且确定所述主包和所述至少一个分包在所述第一文件中的偏移量和大小;生成所述应用对应的第二应用包;其中所述第二应用包包括包头和所述第一文件。服务器接收到原应用包后,自动对原应用包进行拆分和重组,生成一个完整的新应用包,这样就不需要开发者进行分包和对分包后的分包进行维护,降低了开发者的开发成本。且在重组过程中,将拆分出的主包和多个分包组成一个文件,客户端在进行下载时,只需要发送一次下载请求,即可下载完整的应用包。

A Method and Device for Reorganization and Operation of Application Package Splitting

The present application provides a method and apparatus for application package splitting, reorganization and operation. The method of application package splitting and reorganization includes: splitting the first application package into main package and at least one subpackage; storing the main package and at least one subpackage in the first file, and determining the offset and large amount of the main package and at least one subpackage in the first file. The second application package includes a packet head and the first file. After the server receives the original application package, it automatically splits and reorganizes the original application package and generates a complete new application package, which does not require the developer to subcontract and maintain the subcontract after subcontract, and reduces the development cost of the developer. In the process of reorganization, the main package and several subpackages are divided into one file. When the client downloads, it only needs to send a download request once to download the complete application package.

【技术实现步骤摘要】
一种应用包拆分重组和运行的方法和装置
本专利技术涉及移动应用下载
,尤其涉及一种应用包拆分重组和运行的方法和装置。
技术介绍
目前以微信小程序为代表出现了一种新的应用形态,这类应用形态类似于Android安装包:有一个应用包,可以做到免安装,即点即用。为了保证用户以最快的速度能够使用到应用包,通常会做一些拆包方案,这样可以确保不用把整个应用包下载下去后才能使用,只需要加载应用包的一部分即可运行。现有的拆包方案是将应用包拆分出一个主包和多个分包,但是这种应用包是由开发者进行拆分,这样会增加开发者的开发成本。并且,开发者需要自己维护拆分出的分包,假如开发者拆分不合理,分包仍然会比较大,无法达到即点即用的用户预期。另外,现在服务器将应用包拆分出主包和多个分包后,客户端在进行下载时,先发送一个下载请求,然后客户端下载一个主包或分包,如果再下载一个分包,则再发送一个下载请求。也就是说如果要将整个应用包下载下来,则需要发送多次下载请求,这大大降低了客户端下载应用包的速度,严重影响用户的体验。
技术实现思路
为了克服上述问题,本申请的实施例提供了一种应用包拆分重组和运行的方法和装置。为了达到上述目的,本申请的实施例采用如下技术方案:第一方面,本申请提供一种应用包拆分和重组的方法,所述方法由服务器实施,包括:接收应用对应的第一应用包;将所述第一应用包拆分为主包和至少一个分包;所述主包和所述至少一个分包各自包括至少一个所述应用的页面;将所述主包和所述至少一个分包保存在第一文件中,并且确定所述主包和所述至少一个分包在所述第一文件中的偏移量和大小;生成所述应用对应的第二应用包;其中所述第二应用包包括包头和所述第一文件,所述包头包括所述主包与所述主包中的至少一个所述应用的页面的映射关系、所述至少一个分包与所述至少一个分包中的至少一个所述应用的页面的映射关系、以及所述主包和所述至少一个分包在所述第一文件中的偏移量和大小。服务器接收到原应用包后,自动对原应用包进行拆分和重组,生成一个完整的新应用包,这样就不需要开发者进行分包和对分包后的分包进行维护,降低了开发者的开发成本。且在重组过程中,将拆分出的主包和多个分包组成一个文件,客户端在进行下载时,只需要发送一次下载请求,即可下载完整的应用包。在另一个可能的实现中,所述方法包括:对所述主包和所述至少一个分包分别生成所述主包的摘要列表和所述至少一个分包的摘要列表;其中,所述主包的摘要列表和所述至少一个分包的摘要列表分别用于对与之对应的主包或分包进行校验;所述生成所述应用对应的第二应用包包括:在所述包头写入所述主包的摘要列表、所述至少一个分包的摘要列表。以便于在客户端下载主包或分包后,依据这些摘要列表对下载的主包或分包进行校验,判断其是否被第三方篡改。在另一个可能的实现中,所述对所述主包和所述至少一个分包分别生成所述主包摘要列表和所述至少一个分包摘要列表包括:运用hash算法对所述主包和所述至少一个分包分别生成所述主包摘要列表和所述至少一个分包摘要列表。在另一个可能的实现中,所述方法包括:对所述包头进行签名得到签名信息,所述签名信息用于对所述包头进行校验;在所述第二应用包中写入所述签名信息。以便在客户端下载完包头后,对包头进行校验,判断其是否被第三方篡改。在另一个可能的实现中,所述主包包括元信息文件,用于运行所述主包和所述至少一个分包。在另一个可能的实现中,所述至少一个分包中的第一分包包括配置属性,用于声明所述第一分包是否依赖于所述主包运行。在另一个可能的实现中,所述主包包括能力开放集,用于所述依赖于所述主包的分包获取元信息文件。在另一个可能的实现中,所述方法包括:将由所述主包与所述主包中的至少一个所述应用的页面的映射关系、所述至少一个分包与所述至少一个分包中的至少一个所述应用的页面的映射关系、以及所述主包和所述至少一个分包在所述第一文件中的偏移量和大小信息构成包信息和所述第二应用包的下载地址同步到发送端口,用于客户端对所述第二应用包进行查询和下载。以便于客户端查询和下载新应用包。第二方面,本申请提供一种应用包拆分和重组的装置,包括:收发器、处理器和存储器;所述存储器存储有一个或多个程序,所述一个或多个程序包括指令,当所述指令被所述装置执行时,使得所述装置执行第一方面中涉及的方法。第三方面,本申请提供一种运行应用包的方法,所述方法由客户端实施,包括:向服务器发送下载请求,所述下载请求用于请求下载应用对应的第二应用包;其中,所述第二应用包包括包头和第一文件;所述第一文件中保存有主包和至少一个分包,所述包头包括所述主包与所述主包中的至少一个所述应用的页面的映射关系、所述至少一个分包与所述至少一个分包中的至少一个所述应用的页面的映射关系、以及所述主包和所述至少一个分包在所述第一文件中的偏移量和大小;下载所述包头;下载所述第一文件中的所述主包;根据所述包头中所述主包在所述第一文件中的偏移量和大小确定所述主包下载完成后,运行所述主包,并根据所述包头中的所述主包与所述主包的至少一个所述应用的页面的映射关系加载所述主包的至少一个所述应用的页面。在新应用包下载过程中,进行一次网络连接,客户端下载包头和主包后,运行主包,由于服务器将拆分的主包和多个分包组成一个文件,所以在主包下载完成后,后续分包的下载不需要与服务器再进行网络连接,即可进行下载,从而实现客户端只需要一次网络连接就可以下载完成整个新应用包,有效的减少下载时间。在另一个可能的实现中,还包括:下载所述第一文件中的所述第一分包;其中,所述第一分包包括配置属性,声明所述第一分包依赖于所述主包运行;根据所述包头中的所述至少一个分包在所述第一文件中的偏移量和大小,确定所述第一分包下载完成后,根据所述配置属性,通过所述主包中能力开放集获取元信息文件;根据所述元信息文件,运行所述第一分包,并且根据所述第一分包与所述第一分包的至少一个所述应用的页面的映射关系加载所述第一分包的至少一个所述应用的页面。在另一个可能的实现中,还包括:下载所述第一文件中的所述第二分包;其中,所述第二分包包括配置属性,声明所述第二分包不依赖于所述主包运行;根据所述包头中的所述至少一个分包在所述第一文件中的偏移量和大小,确定所述第二分包下载完成后,运行所述第二分包,并且根据所述第二分包与所述第二分包的至少一个所述应用的页面的映射关系加载所述第二分包的至少一个所述应用的页面。在另一个可能的实现中,包括根据所述至少一个分包与所述至少一个分包中的至少一个所述应用的页面的映射关系,确定当前访问页面对应的第三分包,并且在所述第三分包不在本地文件中时,启动另一个线程下载所述第三分包。通过增加线程优先下载第三分包,并在下载完成后启动加载和运行,可以缩减用户等待时间,提高用户体验。在另一个可能的实现中,所述包头还包括所述主包的摘要列表和所述至少一个分包的摘要列表;所述方法包括,获取所述主包摘要列表和所述至少一个分包摘要列表;利用所述主包摘要列表和所述至少一个分包摘要列表对所述主包或所述至少一个分包进行校验。客户端需要对主包和分包进行验证,以验证主包和分包是否被篡改,保证客户端下载的主包和分包是合法的。在另一个可能的实现中,下载签名信息,所述签名信息是对所述包头签名而得到的;所述方法包括,利本文档来自技高网...

【技术保护点】
1.一种应用包拆分和重组的方法,所述方法由服务器实施,其特征在于,包括:接收应用对应的第一应用包;将所述第一应用包拆分为主包和至少一个分包;所述主包和所述至少一个分包各自包括至少一个所述应用的页面;将所述主包和所述至少一个分包保存在第一文件中,并且确定所述主包和所述至少一个分包在所述第一文件中的偏移量和大小;生成所述应用对应的第二应用包;其中所述第二应用包包括包头和所述第一文件,所述包头包括所述主包与所述主包中的至少一个所述应用的页面的映射关系、所述至少一个分包与所述至少一个分包中的至少一个所述应用的页面的映射关系、以及所述主包和所述至少一个分包在所述第一文件中的偏移量和大小。

【技术特征摘要】
1.一种应用包拆分和重组的方法,所述方法由服务器实施,其特征在于,包括:接收应用对应的第一应用包;将所述第一应用包拆分为主包和至少一个分包;所述主包和所述至少一个分包各自包括至少一个所述应用的页面;将所述主包和所述至少一个分包保存在第一文件中,并且确定所述主包和所述至少一个分包在所述第一文件中的偏移量和大小;生成所述应用对应的第二应用包;其中所述第二应用包包括包头和所述第一文件,所述包头包括所述主包与所述主包中的至少一个所述应用的页面的映射关系、所述至少一个分包与所述至少一个分包中的至少一个所述应用的页面的映射关系、以及所述主包和所述至少一个分包在所述第一文件中的偏移量和大小。2.根据权利要求1所述的方法,其特征在于,所述方法包括:对所述主包和所述至少一个分包分别生成所述主包的摘要列表和所述至少一个分包的摘要列表;其中,所述主包的摘要列表和所述至少一个分包的摘要列表分别用于对与之对应的主包或分包进行校验;所述生成所述应用对应的第二应用包包括:在所述包头写入所述主包的摘要列表、所述至少一个分包的摘要列表。3.根据权利要求2所述的方法,其特征在于,所述对所述主包和所述至少一个分包分别生成所述主包摘要列表和所述至少一个分包摘要列表包括:运用hash算法对所述主包和所述至少一个分包分别生成所述主包摘要列表和所述至少一个分包摘要列表。4.根据权利要求1所述的方法,其特征在于,所述方法包括:对所述包头进行签名得到签名信息,所述签名信息用于对所述包头进行校验;在所述第二应用包中写入所述签名信息。5.根据权利要求1所述的方法,其特征在于,所述主包包括元信息文件,用于运行所述主包和所述至少一个分包。6.根据权利要求1所述的方法,其特征在于,所述至少一个分包中的第一分包包括配置属性,用于声明所述第一分包是否依赖于所述主包运行。7.根据权利要求6所述的方法,其特征在于,所述主包包括能力开放集,用于所述依赖于所述主包的分包获取元信息文件。8.根据权利要求1所述的方法,其特征在于,所述方法包括:将由所述主包与所述主包中的至少一个所述应用的页面的映射关系、所述至少一个分包与所述至少一个分包中的至少一个所述应用的页面的映射关系、以及所述主包和所述至少一个分包在所述第一文件中的偏移量和大小信息构成包信息和所述第二应用包的下载地址同步到发送端口,用于客户端对所述第二应用包进行查询和下载。9.一种应用包拆分和重组的装置,其特征在于,包括:收发器、处理器和存储器;所述存储器存储有一个或多个程序,所述一个或多个程序包括指令,当所述指令被所述装置执行时,使得所述装置执行根据权利要求1-8中的任意项所述的方法。10.一种运行应用包的方法,所述方法由客户端实施,其特征在于,包括:向服务器发送下载请求,所述下载请求用于请求下载应用对应的第二应用包;其中,所述第二应用包包括包头和第一文件;所述第一文件中保存有主包和至少一个分包,所述包头包括所述主包与所述主包中的至少一个所述应用的页面的映射关系、所述至少一个分包与所述至少一个分包中的至少一个所述应用的页面的映射关系、以及所述主包和所述至少一个分包在所述第一文件中的偏移量和大小;下载所述包头;下载所述第一文件中的所述主包;根据所述包头中所述主包在所述第一文件中的偏移量和大小确定所述主包下载完成后,运行所述主包,并根据所述包头中的所述主包与所述主包的至少一个所述应用的页面的映射关系加载所述主包的至少一个所述应用的页面。11.根据权利要求10所述的方法,其特征在于,还包括:下载所述第一文件中的所述第一分包;其中,所述第一分包包括配置属性,声明所述第一分包依赖于所述主包运行;根据所述包头中的所述至少一个分包在所述第一文件中的偏移量和大小,确定所述第一分包下载完成后,根据所述配置属性,通过所述主包中能力开放集获取元信息文件;根据所述元信息文件,运行所述第一分包,并且根据所述第一分包与所述第一分包的至少一个所述应用的页面的映射关系加载所述第一分包的至少一个所述应用的页面。12.根据权利要求10所述的方法,其特征在于,还包括:下载所述第一文件中的所述第二分包;其中,所述第二分包包括配置属性,声明所述第二分包不依赖于所述主包运行;根据所述包头中的所述至少一个分包在所述第一文件中的偏移量和大小,确定所述第二分包下载完成后,运行所...

【专利技术属性】
技术研发人员:邹现军王兴楠
申请(专利权)人:华为终端有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1