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安装包:有一个应用包,可以做到免安装,即点即用。为了保证用户以最快的速度能够使用到应用包,通常会做一些拆包方案,这样可以确保不用把整个应用包下载下去后才能使用,只需要加载应用包的一部分即可运行。现有的拆包方案是将应用包拆分出一个主包和多个分包,但是这种应用包是由开发者进行拆分,这样会增加开发者的开发成本。并且,开发者需要自己维护拆分出的分包,假如开发者拆分不合理,分包仍然会比较大,无法达到即点即用的用户预期。另外,现在服务器将应用包拆分出主包和多个分包后,客户端在进行下载时,先发送一个下载请求,然后客户端下载一个主包或分包,如果再下载一个分包,则再发送一个下载请求。也就是说如果要将整个应用包下载下来,则需要发送多次下载请求,这大大降低了客户端下载应用包的速度,严重影响用户的体验。
技术实现思路
为了克服上述问题,本申请的实施例提供了一种应用包拆分重组和运行的方法和装置。为了达到上述目的,本申请的实施例采用如下技术方案:第一方面,本申请提供一种应用包拆分和重组的方法,所述方法由服务器实施,包括:接收应用对应的第一应用包;将所述第一应用包拆分为主包和至少一个分包;所述主包和所述至少一个分包各自包括至少一个所述应用的页面;将所述主包和所述至少一个分包保存在第一文件中,并且确定所述主包和所述至少一个分包在所述第一文件中的偏移量和大小;生成所述应用对应的第二应用包 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。