一种混合应用的更新方法和装置的制造方法
【技术领域】
[0001]本发明涉及数据处理领域,具体涉及一种混合应用的更新方法和装置。
【背景技术】
[0002]目前,应用存在三种类型,包括原生应用、Web应用、混合应用。所谓的原生应用指的是用平台特定的开发语言所开发的应用;Web应用主要是采用统一标准的HTMUHyperText Mark-up Language,超文本标记语言)、JavaScript( Java脚本)、CSS(CascadingStyle Sheet,层叠样式)等网页程序语言开发的应用,可以通过终端浏览器访问该类应用,且该类应用可以跨平台;而混合应用是指融合原生应用和Web应用的一种应用类型。
[0003]现有的混合应用的开发方式中最小粒度为应用整体,基于现有的这种开发方式,一旦混合应用中某一个功能存在更新需求时,则需要下载整个应用的安装包,才能完成对针对一个功能的更新,可见,对上述方式开发的混合应用进行更新的效率很低。
【发明内容】
[0004]有鉴于此,本发明提供了一种混合应用的更新方法和装置。
[0005]本发明提供了一种混合应用的更新方法,所述混合应用包括基于功能划分的组件,各个组件分别由不同的容器封装,
[0006]所述混合应用的更新方法包括:
[0007]在所述混合应用运行的过程中,当触发所述混合应用中的任一当前未运行的组件触发更新操作时,从服务器获取所述组件的最新版本号;
[0008]当所述最新版本号高于所述组件的当前版本号时,将所述组件的当前版本号发送至所述服务器,以便所述服务器确定所述组件的当前版本号对应的更新包;
[0009]从所述服务器获取所述更新包后,将所述更新包与所述组件的当前版本的安装包进行组装,得到所述组件的最新版本的安装包;
[0010]将所述组件的最新版本的安装包安装至封装所述组件的容器,实现所述组件的更新。
[0011 ]优选地,所述方法还包括:
[0012]在所述混合应用运行的过程中,当启动任一完成更新的组件时,判断所述组件是否已完成安装;
[0013]如果所述组件已完成安装,则从封装所述组件的容器中加载所述组件的配置文件,所述配置文件中包括所述组件的启动路径;
[0014]根据所述组件的启动路径,调用WebView控件完成所述组件的展现。
[0015]优选地,所述方法还包括:
[0016]如果所述组件未完成安装,则从所述服务器下载所述组件的最新版本的安装包;
[0017]将所述组件的最新版本的安装包安装至封装所述组件的容器。
[0018]优选地,所述方法还包括:
[0019]更新所述混合应用的引擎管理信息中所述组件的信息。
[0020]优选地,所述更新包是采用最小增量法生成的。
[0021]本发明还提供了一种混合应用的更新装置,所述混合应用包括基于功能划分的组件,各个组件分别由不同的容器封装,所述装置包括:
[0022]获取模块,用于在所述混合应用运行的过程中,当触发所述混合应用中的任一当前未运行的组件触发更新操作时,从服务器获取所述组件的最新版本号;
[0023]发送模块,用于当所述最新版本号高于所述组件的当前版本号时,将所述组件的当前版本号发送至所述服务器,以便所述服务器确定所述组件的当前版本号对应的更新包;
[0024]组装模块,用于从所述服务器获取所述更新包后,将所述更新包与所述组件的当前版本的安装包进行组装,得到所述组件的最新版本的安装包;
[0025]第一安装模块,用于将所述组件的最新版本的安装包安装至封装所述组件的容器,实现所述组件的更新。
[0026]优选地,所述装置还包括:
[0027]判断模块,用于在所述混合应用运行的过程中,当启动任一完成更新的组件时,判断所述组件是否已完成安装;
[0028]加载模块,用于如果所述组件已完成安装,则从封装所述组件的容器中加载所述组件的配置文件,所述配置文件中包括所述组件的启动路径;
[0029]展现模块,用于根据所述组件的启动路径,调用WebView控件完成所述组件的展现。
[0030]优选地,所述装置还包括:
[0031]下载模块,用于如果所述组件未完成安装,则从所述服务器下载所述组件的最新版本的安装包;
[0032]第二安装模块,用于将所述组件的最新版本的安装包安装至封装所述组件的容器。
[0033]优选地,所述装置还包括:
[0034]更新模块,用于更新所述混合应用的引擎管理信息中所述组件的信息。
[0035]优选地,所述更新包是采用最小增量法生成的。
[0036]本发明提供了一种混合应用的更新方法,所述混合应用包括基于功能划分的组件,各个组件分别由不同的容器封装,所述混合应用的更新方法包括:在所述混合应用运行的过程中,当触发所述混合应用中的任一当前未运行的组件的更新操作时,从服务器获取所述组件的最新版本号;当所述最新版本号高于所述组件的当前版本号时,将所述组件的当前版本号发送至所述服务器,以便所述服务器确定所述组件的当前版本号对应的更新包,所述更新包采用最小增量法生成;从所述服务器获取所述更新包后,将所述更新包与所述组件的当前版本的安装包进行组装,得到所述组件的最新版本的安装包;将所述组件的最新版本的安装包安装至封装所述组件的容器,实现所述组件的更新。由于本发明实施例提供的混合应用的最小粒度是组件,所以在对所述混合应用更新时,可以基于组件对所述混合应用进行动态更新。在所述混合应用运行的过程中,能够对当前未运行的组件进行单独更新,不影响整个混合应用的正常运行。
【附图说明】
[0037]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0038]图1为本发明提供的一种混合应用的更新方法的流程图;
[0039]图2为本发明提供的一种混合应用加载的方法流程图;
[0040]图3为本发明提供的一种混合应用的更新装置结构示意图;
[0041]图4为本发明提供的一种混合应用加载的装置结构示意图;
[0042]图5为本发明提供的另一种混合应用的更新装置结构示意图。
【具体实施方式】
[0043]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0044]本发明实施例提供的混合应用是通过实现不同子功能的组件共同实现的,且各个组件由单独的容器封装,所述容器采用单独的沙盒隔离机制,以保证各个组件之间的数据没有侵占性,提高组件的安全性。本发明实施例中的组件作为混合应用的最小粒度,具有可复用性,从而降低了混合应用的开发难度,提高了混合应用的开发效率。
[0045]由于每个容器封装的组件都是以单独的空间存在的,所以,在对所述混合应用进
行更新时,以组件为最小更新粒度进行混合应用的更新,具体的从服务器下载需要更新的组件的更新包,实现对所述混合应用中用于实现子功能的组件的单独更新。实际应用中,在所述混合应用运行过程中,本发明实施例可以实现对某个组件的动态更新,且在所述组件更新的过程中不影响所述混合应用中其他组件的正常运行。
[0046]本发明实施例提供了一种混合应用的更新方法,参考图1,为本发明实施例提供的一种混合应用的更新方法的流程图,其中,所述混合应用包括基于功能划分的组件,各个组件分别由不同的容器封装。具体的,所述混合应用的更新方法包括:
[0047]S101:在所述混合应用运行的过程中,当触发所述混合应用中的任一当前未运行的组件的更新操作时,从服务器获取所述组件的最新版本号。
[0048]由于所述混合应用的最小粒度为用于实现子功能的组件,所以,本发明实施例中在混合应用运行的过程中能够对当前未运行的组件进行动态更新。由于各个组件之间的数据没有侵占性,所以,当前更新的组件不会影响其他组件的正常运行。
[0049]本发明实施例中,当任一当前未运行的组件存在更新需求时,触发所述组件的更新操作,从服务器获取所述组件的最新版本号。实际应用中,所述混合应用中的各个组件预先在所述服务器中完成注册,将各个组件的最新版本的安装包预先上传至所述服务器中存储。也就是说,所述服务器中存储的所述混合应用的安装包的形式是以组件为最小粒度的。另外,所述服务器采用最小增量法生成各个组件的不同版本对应的更新包,并将其存储于本地以供用户下载更新。
[0050]S102:当所述最新版本号高于所述组件的当前版本号时,将所述组件的当前版本号发送至所述服务器,以便所述服务器确定所述组件的当前版本号对应的更新包。
[0051]其中,所述更新包可以是所述服务器采用最小增量法生成的,所述更新包也可以是组件的完整安装包,具体形式本实施例不做限制。
[0052]本发明实施例中,当用户客户端接收到来自所述服务器的所述组件的最新版本号后,将所述组件的最新版本号与本地当前版本号比较,如果所述组件的最新版本号高于本地当前版本号,则确定所述组件需要更新。这种情况下,所述用户客户端将所述组件的当前版本号发送至所述服务器,所述服务器根据所述组件的当前版本号查询将所述组件更新为最新版本的更新包。
[0053]S103:从所述服务器获取所述更新包后,将所述更新包与所述组件的当前版本的安装包进行组装,得到所述组件的最新版本的安装包。
[0054]本发明实施例中,用户客户端接收来自所述服务器的更新包,并实现所述更新包的安装。具体的,首先将所述更新包与所述组件在本地的当前版本的安装包进行组装,以便得到所述组件的最新版本的安装包。具体的,将更新包与当前版本的安装包进行组装的方式为现有技术,在此不再赘述。
[0055]S104:将所述组件的最新版本的安装包安装至封装所述组件的容器,实现所述组件的更新。
[0056]本发明实施例中,在得到所述组件的最新版本的安装包之后,将所述最新版本的安装包安装至封装所述组件的容器,实现所述组件的更新。依照上述方式能够实现所述混合应用中各个组件的更新,最终完成所述混合应用的更新。
[0057]另外,由于所述混合应用的引擎管理信息中存储了各个组件的信息,所以,本发明实施例在完成组件的更新后,将所述引擎管理信息中所述组件的信息进行更新。
[0058]本发明实施例提供的混合应用包括基于功能划分的组件,且各个组件分别由不同的容器封装。而本发明实施例提供的混合应用的更新方法,利用混合应用的上述开发特点,在所述混合应用运行的过程中,能够对当前未运行的组件进行单独更新,不影响整个混合应用的正常运行。
[0059]基于本发明实施例提供的混合应用的更新方法,由于所述混合应用的最小粒度是组件,所以本发明实施例在对所述混合应用进行加载时,也可以基于组件对所述混合应用进行动态加载。参考图2,为本发明实施例提供的一种混合应用加载的方法流程图,具体的,所述混合应用的加载方法包括:
[0060]S201:在所述混合应用运行的过程中,当启动任一完成更新的组件时,判断所述组件是否已完成安装。
[0061]S202:如果所述组件未完成安装,则从所述服务器下载所述组件的最新版本的安装包。
[0062]S203:将所述组件的最新版本的安装包安装至封装所述组件的容器。
[0063]S204:如果所述组件已完成安装,则从封装所述组件的容器中加载所述组件的配置文件,所述配置文件中包括所述组件的启动路径。
[0064]S205:根据所述组件的启动路径,调用WebView控件完成所述组件的展现。
[0065]本发明实施例中,在启动混合应用并对其进行加载时,以实现所述混合应用的子功能的组件为加载的最小粒度,实现所述混合应用的动态加载。
[0066]具体的,在所述混合应用运行的过程中,当启动任一组件时,判断所述组件是否安装至封装所述组件的容器中。如果所述组件已经完成安装,则从封装所述组件的容器中加载所述组件的配置文件,其中所述配置文件包括所述组件的启动路径。所述启动路径用于指示所述组件的加载过程。系统根据所述配置文件中的启动路径调用WebView控件完成所述组件的展现。如果启动的所述组件未完成安装,则首先从服务器下载所述组件的最新版本的安装包,将所述安装包安装至封装所述组件的容器后,再对所述组件进行加载。
[0067]本发明实施例以实现所述混合应用的子功能的组件为加载的最小粒度,实现所述混合应用的动态加载,避免了因同时将整个应用进行加载所带来的系统性能差的问题。
[0068]另外,由于本发明实施例提供的混合应用中最小粒度为用于实现子功能的组件,所以,在安装所述混合应用时能够将用户不需要的组件删除,以减小所述混合应用的体积,节约用户的内存资源。
[0069]本发明实施例提供了一种混合应用更新的装置,参考图3,为本发明实施例提供的一种混合应用更新的装置结构示意图,其中,所述混合应用包括基于功能划分的组件,各个组件分别由不同的容器封装,所述装置包括:
[0070]获取模块301,用于在所述混合应用运行的过程中,当触发所述混合应用中的任一当前未运行的组件触发更新操作时,从服务器获取所述组件的最新版本号;
[0071]发送模块302,用于当所述最新版本号高于所述组件的当前版本号时,将所述组件的当前版本号发送至所述服务器,以便所述服务器确定所述组件的当前版本号对应的更新包;
[0072]其中,所述更新包可以是采用最小增量法生成的;
[0073]组装模块303,用于从所述服务器获取所述更新包后,将所述更新包与所述组件的当前版本的安装包进行组装,得到所述组件的最新版本的安装包;
[0074]第一安装模块304,用于将所述组件的最新版本的安装包安装至封装所述组件的容器,实现所述组件的更新。
[0075]基于本发明实施例提供的混合应用的更新装置,由于所述混合应用的最小粒度是组件,所以本发明实施例在对所述混合应用进行加载时,也可以基于组件对所述混合应用进行动态加载。
[0076]参考图4,为本发明实施例提供的一种混合应用加载的装置结构示意图,所述装置包括:
[0077]判断模块401,用于在所述混合应用运行的过程中,当启动任一完成更新的组件时,判断所述
组件是否已完成安装;
[0078]加载模块402,用于如果所述组件已完成安装,则从封装所述组件的容器中加载所述组件的配置文件,所述配置文件中包括所述组件的启动路径;
[0079]展现模块403,用于根据所述组件的启动路径,调用WebView控件完成所述组件的展现。
[0080]所述装置还包括:
[0081]下载模块404,用于如果所述组件未完成安装,则从所述服务器下载所述组件的最新版本的安装包;
[0082]第二安装模块405,用于将所述组件的最新版本的安装包安装至封装所述组件的容器。
[0083]另外,由于所述混合应用的引擎管理信息中存储了各个组件的信息,所以,本发明实施例在完成组件的更新后,将所述引擎管理信息中所述组件的信息进行更新。参考图5,为本发明实施例提供的另一种混合应用的更新装置结构示意图,所述装置不仅包括图3中的各个模块,还可以包括:
[0084]更新模块501,用于更新所述混合应用的引擎管理信息中所述组件的信息。
[0085]综上,本发明实施例提供的混合应用包括基于功能划分的组件,各个组件分别由不同的容器封装。本发明实施例提供的混合应用更新装置能够实现以下功能:在所述混合应用运行的过程中,当触发所述混合应用中的任一当前未运行的组件触发更新操作时,从服务器获取所述组件的最新版本号;当所述最新版本号高于所述组件的当前版本号时,将所述组件的当前版本号发送至所述服务器,以便所述服务器确定所述组件的当前版本号对应的更新包,所述更新包采用最小增量法生成;从所述服务器获取所述更新包后,将所述更新包与所述组件的当前版本的安装包进行组装,得到所述组件的最新版本的安装包;将所述组件的最新版本的安装包安装至封装所述组件的容器,实现所述组件的更新。由于本发明实施例提供的混合应用的最小粒度是组件,所以在对所述混合应用更新时,可以基于组件对所述混合应用进行动态更新。在所述混合应用运行的过程中,能够对当前未运行的组件进行单独更新,不影响整个混合应用的正常运行。
[0086]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0087]以上对本发明实施例所提供的一种混合应用的更新方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【主权项】
1.一种混合应用的更新方法,其特征在于,所述混合应用包括基于功能划分的组件,各个组件分别由不同的容器封装, 所述混合应用的更新方法包括: 在所述混合应用运行的过程中,当触发所述混合应用中的任一当前未运行的组件的更新操作时,从服务器获取所述组件的最新版本号; 当所述最新版本号高于所述组件的当前版本号时,将所述组件的当前版本号发送至所述服务器,以便所述服务器确定所述组件的当前版本号对应的更新包; 从所述服务器获取所述更新包后,将所述更新包与所述组件的当前版本的安装包进行组装,得到所述组件的最新版本的安装包; 将所述组件的最新版本的安装包安装至封装所述组件的容器,实现所述组件的更新。2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 在所述混合应用运行的过程中,当启动任一完成更新的组件时,判断所述组件是否已完成安装; 如果所述组件已完成安装,则从封装所述组件的容器中加载所述组件的配置文件,所述配置文件中包括所述组件的启动路径; 根据所述组件的启动路径,调用WebVi ew控件完成所述组件的展现。3.根据权利要求2所述的方法,其特征在于,所述方法还包括: 如果所述组件未完成安装,则从所述服务器下载所述组件的最新版本的安装包; 将所述组件的最新版本的安装包安装至封装所述组件的容器。4.根据权利要求1所述的方法,其特征在于,所述方法还包括: 更新所述混合应用的引擎管理信息中所述组件的信息。5.根据权利要求1所述的方法,其特征在于,所述更新包是采用最小增量法生成的。6.—种混合应用的更新装置,其特征在于,所述混合应用包括基于功能划分的组件,各个组件分别由不同的容器封装,所述装置包括: 获取模块,用于在所述混合应用运行的过程中,当触发所述混合应用中的任一当前未运行的组件触发更新操作时,从服务器获取所述组件的最新版本号; 发送模块,用于当所述最新版本号高于所述组件的当前版本号时,将所述组件的当前版本号发送至所述服务器,以便所述服务器确定所述组件的当前版本号对应的更新包; 组装模块,用于从所述服务器获取所述更新包后,将所述更新包与所述组件的当前版本的安装包进行组装,得到所述组件的最新版本的安装包; 第一安装模块,用于将所述组件的最新版本的安装包安装至封装所述组件的容器,实现所述组件的更新。7.根据权利要求6所述装置,其特征在于,所述装置还包括: 判断模块,用于在所述混合应用运行的过程中,当启动任一完成更新的组件时,判断所述组件是否已完成安装; 加载模块,用于如果所述组件已完成安装,则从封装所述组件的容器中加载所述组件的配置文件,所述配置文件中包括所述组件的启动路径; 展现模块,用于根据所述组件的启动路径,调用WebView控件完成所述组件的展现。8.根据权利要求7所述的装置,其特征在于,所述装置还包括: 下载模块,用于如果所述组件未完成安装,则从所述服务器下载所述组件的最新版本的安装包; 第二安装模块,用于将所述组件的最新版本的安装包安装至封装所述组件的容器。9.根据权利要求6所述的装置,其特征在于,所述装置还包括: 更新模块,用于更新所述混合应用的引擎管理信息中所述组件的信息。10.根据权利要求6所述的装置,其特征在于,所述更新包是采用最小增量法生成的。
【专利摘要】本发明公开一种混合应用的更新方法,所述混合应用包括基于功能划分的组件,各个组件分别由不同的容器封装,所述方法包括:在混合应用运行的过程中,当触发任一当前未运行的组件的更新操作时,从服务器获取所述组件的最新版本号;当最新版本号高于当前版本号时,将当前版本号发送至服务器,以便服务器确定所述组件的当前版本号对应的更新包,更新包采用最小增量法生成;从服务器获取更新包后,将更新包与所述组件的当前版本的安装包进行组装,得到所述组件的最新版本的安装包;将最新版本的安装包安装至封装所述组件的容器,实现组件的更新。混合应用的最小粒度是组件,对混合应用的更新是基于组件的动态更新,不影响整个混合应用的正常运行。
【IPC分类】G06F9/445
【公开号】CN105487905
【申请号】CN201510894013
【发明人】张鑫, 王宇
【申请人】东软集团股份有限公司
【公开日】2016年4月13日
【申请日】2015年11月27日