多模块软件更新方法及系统与流程

文档序号:11154439阅读:441来源:国知局
多模块软件更新方法及系统与制造工艺

本发明涉及智能电视技术领域,尤其涉及一种多模块软件更新方法及系统。



背景技术:

随着智能电视的普及,在智能电视应用平台中,集成多个内容商提供的应用服务模块的平台类应用越来越多,但是目前平台类应用中,模块不能单独更新,只能进行整个平台类应用的全部更新。而往往每个模块的版本更新计划都不一样的,造成多模块的平台类应用由于单个模块的更新,而导致的更新频繁,同时每次更新也更新了用户不需要的模块,对于用户来说造成不必要的更新。



技术实现要素:

本发明的主要目的在于提供一种多模块软件更新方法及系统,旨在降低多模块的平台类应用的更新频率,同时减少对于用户来说不必要的更新。

为实现上述目的,本发明提供一种多模块软件更新方法,所述多模块软件更新方法包括以下步骤:

从服务器获取应用服务模块的发行版本号;

在收到开启所述应用服务模块指令后,判断所述应用服务模块是否是可更新模块,所述可更新模块为本地版本号和所述发行版本号不同的应用服务模块;

当所述应用服务模块是可更新模块时,更新所述应用服务模块至所述发行版本号对应的发行版本。

优选地,所述当所述应用服务模块是可更新模块时,更新所述应用服务模块至所述发行版本号对应的发行版本包括;

从所述服务器获取用于更新所述应用服务模块至所述发行版本的更新数据包;

使用所述更新数据包对所述应用服务模块进行热更新;

在热更新结束后,更新所述应用服务模块的本地版本号为所述发行版本号。

优选地,所述使用所述更新数据包对所述应用服务模块进行热更新包括:

获取所述更新数据包中的dex文件;

更换所述应用服务模块的dex文件加载顺序,使得从所述更新数据包中获取的dex文件在前加载,并更新所述应用服务模块的本地版本号为所述发行版本号。

优选地,所述从服务器获取模块的发行版本号包括:

从服务器获取包括所述应用服务模块的所有可用模块的接口信息,所述接口信息包括模块的唯一标识、模块的名称和模块的发行版本号,所述可用模块为能在用户设备上运行的应用服务模块;

生成可视化界面,用于展示每个应用服务模块的所述接口信息。

优选地,所述当所述应用服务模块是可更新模块时,更新所述应用服务模块至所述发行版本号对应的发行版本还包括:

判断所述应用服务模块是否存在本地版本号;

当所述应用服务模块不存在本地版本号时,下载并安装所述应用服务模块的所述发行版本,并在安装结束后,更新所述应用服务模块的本地版本号为所述发行版本号。

此外还提供一种多模块软件更新系统,所述多模块软件更新系统包括

获取模块,用于从服务器获取应用服务模块的发行版本号;

开启模块,用于在收到开启所述应用服务模块指令后,判断所述应用服务模块是否是可更新模块,所述可更新模块为本地版本号和所述发行版本号不同的应用服务模块;

更新模块,用于当所述应用服务模块是可更新模块时,更新所述应用服务模块至所述发行版本号对应的发行版本。

优选地,所述更新模块包括;

第一更新单元,用于从所述服务器获取用于更新所述应用服务模块至所述发行版本的更新数据包;

热更新模块,用于使用所述更新数据包对所述应用服务模块进行热更新;

第二更新单元,用于在热更新结束后,更新所述应用服务模块的本地版本号为所述发行版本号。

优选地,所述热更新模块包括:

第一获取单元,用于获取所述更新数据包中的dex文件;

更换单元,用于更换所述应用服务模块的dex文件加载顺序,使得从所述更新数据包中获取的dex文件在前加载,并更新所述应用服务模块的本地版本号为所述发行版本号。

优选地,所述获取模块包括:

第二获取单元,用于从服务器获取包括所述应用服务模块的所有可用模块的接口信息,所述接口信息包括模块的唯一标识、模块的名称和模块的发行版本号,所述可用模块为能在用户设备上运行的应用服务模块;

生成单元,用于生成可视化界面,用于展示每个应用服务模块的所述接口信息。

优选地,所述更新模块还包括:

判断单元,用于判断所述应用服务模块是否存在本地版本号;

安装单元,用于当所述应用服务模块不存在本地版本号时,下载并安装所述应用服务模块的所述发行版本,并在安装结束后,更新所述应用服务模块的本地版本号为所述发行版本号。

本发明通过从服务器获取应用服务模块的发行版本号;在收到开启所述应用服务模块指令后,判断所述应用服务模块是否是可更新模块,所述可更新模块为本地版本号和所述发行版本号不同的应用服务模块;当所述应用服务模块是可更新模块时,更新所述应用服务模块至所述发行版本号对应的发行版本。本发明通过在用户开启模块时,才从服务器端更新所述模块,使得每次更新只需更新单个模块,避免了整个应用更新导致的全部模块的一起更新,用户只更新自己需要的模块,减少对于用户来说不必要的更新;又因为每次更新的是用户开启时触发更新,使得更新只在必要时才进行,降低了更新的频率。

附图说明

图1为本发明多模块软件更新方法第一实施例的流程示意图;

图2为本发明多模块软件更新方法第二实施例中当所述模块是可更新模块时,更新所述模块至所述发行版本号对应的发行版本步骤的细化流程示意图;

图3为本发明多模块软件更新方法第三实施例中使用所述更新数据包对所述模块进行热更新步骤的细化流程示意图;

图4为本发明多模块软件更新方法第四实施例中从服务器获取模块的发行版本号步骤的细化流程示意图;

图5为本发明多模块软件更新方法第五实施例中当所述模块是可更新模块时,更新所述模块至所述发行版本号对应的发行版本步骤的细化流程示意图;

图6为本发明多模块软件更新系统第一实施例的功能模块示意图;

图7为本发明多模块软件更新系统第二实施例中更新模块的细化功能模块示意图;

图8为本发明多模块软件更新系统第三实施例中热更新模块的细化功能模块示意图;

图9为本发明多模块软件更新系统第四实施例中获取模块的细化功能模块示意图;

图10为本发明多模块软件更新系统第五实施例中更新模块的细化功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种多模块软件更新方法,参照图1,在本发明多模块软件更新方法第一实施例中,所述多模块软件更新方法包括以下步骤:

步骤S10,从服务器获取应用服务模块的发行版本号;

在软件部署时,软件的所有者通过在服务器端发布最新版本的软件,用户端通过软件的本地版本号和所述服务器中的发行版本号对比,发现是否需要更新软件。在本实施例中所述软件为平台类应用,所述平台类应用内置多个功能模块,所述应用服务模块为内容商提供的模块。在本实施例中,用户打开所述应用服务模块的上级容器时,从服务器获取包括所述应用服务模块的所有模块的发行版本号。

步骤S20,在收到开启所述应用服务模块指令后,判断所述应用服务模块是否是可更新模块,所述可更新模块为本地版本号和所述发行版本号不同的应用服务模块;

在本实施例中,所述本地版本号存储于与应用服务模块模块解耦合的独立数据库中,应用服务模块模块在进行版本更改时,由应用服务模块模块的上层容器来操作所述独立数据库的更新。在有些实施例中,所述独立数据库为普通文件,用于持久化所有应用服务模块模块在本地的本地版本号,更具体地,在有些实例中是使用XML(可扩展标记语言)文件作为持久化使用的文件。在本实施例中只要本地版本号和所述发行版本号不同,所述应用服务模块模块即为可更新模块,在有些实施例中所述版本号为数字,当所述发行版本号大于所述本地版本号时,所述应用服务模块模块才为可更新模块。

步骤S30,当所述应用服务模块是可更新模块时,更新所述应用服务模块至所述发行版本号对应的发行版本。

具体地,在本实施例中。当有内容提供商提供的应用模块更新时,会更新服务器端的发行版本号。用户在本地端,从服务器获取所有可用应用服务模块的发行版本号,所述发行版本号对应的发行版本可以理解为所述内容提供商提供的应用服务模块模块的最新版本。当在本地端用户选择开启所述内容提供商提供的应用服务模块时,且所述应用服务模块的本地版本号和所述发行版本号不同时,才从所述服务器端下载更新,把所述应用服务模块模块更新至最新版本。

通过在用户开启应用服务模块模块时,才从服务器端更新所述应用服务模块模块,使得每次更新只更新单个应用服务模块模块,避免了像现有软件更新一样需要全部应用服务模块模块一起更新,本实施例减少了对于用户来说,不必要的更新;同时又因为每次更新,是用户开启时触发更新,使得更新是在必要时进行,降低了更新的频率。

请参照图2,基于本发明多模块软件更新方法第一实施例,在本发明多模块软件更新方法第二实施例中,所述步骤S30包括;

步骤S31,从所述服务器获取用于更新所述应用服务模块至所述发行版本的更新数据包;

步骤S32,使用所述更新数据包对所述应用服务模块进行热更新;

步骤S33,在热更新结束后,更新所述应用服务模块的本地版本号为所述发行版本号。

通过使用热更新,所述热更新使得在不影响用户使用所述应用服务模块的前提下完成更新操作,提升用户体验。具体地在本实施例中,在用户开启模块后,通过对比发现所述应用服务模块的本地版本号和所述发行版本号不同时,再开启应用服务模块模块的同时,从服务器端获取所要的更新程序,下载完成后对所述应用服务模块进行热更新,不影响用户的使用的情况下对所述应用服务模块进行更新,更新完成后更新所述应用服务模块的本地版本号为所述发行版本号。

请参照图3,基于本发明多模块软件更新方法第二实施例,在本发明多模块软件更新方法第三实施例中,所述步骤S32包括:

步骤S321,获取所述更新数据包中的dex文件;

步骤S322,更换所述应用服务模块的dex文件加载顺序,使得从所述更新数据包中获取的dex文件在前加载,并更新所述应用服务模块的本地版本号为所述发行版本号。

在本实施例中,更具体地,所述平台类应用为一个安卓平台应用,在热更新时,采用改变所述dex文件加载顺序来实现所述热更新操作,提升了操作速度,进一步提升了用户体验;同时在用户本地端数据库中更新所述应用服务模块的本地版本号为所述发行版本号,避免在热更新时,不能改变应用服务模块模块内部的版本,造成的更新后版本不明的问题,方便了各应用服务模块模块的版本管理。

更具体地,使用了虚拟机获取PATH.MF文件,所述PATH.MF为程序描述文件,获取所述应用服务模块的类名。根据类名从更新数据包加载dex文件,获取所述应用服务模块目前的dexElements列表,通过反射机制使得PathClassLoader.pathList.dexElements使得先加载所述从更新数据包加载dex文件,从而实现热更新。

请参照图4,基于本发明多模块软件更新方法第一实施例,在本发明多模块软件更新方法第四实施例中,所述步骤S10包括:

步骤S11,从服务器获取包括所述应用服务模块的所有可用模块的接口信息,所述接口信息包括模块的唯一标识、模块的名称和模块的发行版本号,所述可用模块为能在用户设备上运行的应用服务模块;

在服务器端存储了大量的应用服务模块,适配于不同的设备,在获取模块接口信息时,只获取能在用户设备上运行的可用应用服务模块的信息。

步骤S12,生成可视化界面,用于展示每个应用服务模块的所述接口信息。

在本实施例中,通过为用户提供可视化界面,展示从服务器端获取的所有可用模块的接口信息,使用所述接口信息填充数据展示界面,方便用户根据最新的版本信息进行选择自己所要开启的应用服务模块,方便了用户的选择,提升了用户体验。

请参照图5,基于本发明多模块软件更新方法第四实施例,在本发明多模块软件更新方法第五实施例中,所述步骤S30还包括:

步骤S34,判断所述应用服务模块是否存在本地版本号;

可视化界面为用户展示了全部可用模块,但是有些模块本地端并没有安装,用户开启所述应用服务模块时,所述应用服务模块的本地版本号为空,所述应用服务模块的服务器端的发行版本号为任一版本号,所以当本地没有安装某接口时,所述应用服务模块的本地版本号和所述服务器端的发行版本号不同,当所述应用服务模块没有本地版本号时,代表用户本地未安装所述应用服务模块。

步骤S35,当所述应用服务模块不存在本地版本号时,下载并安装所述应用服务模块的所述发行版本,并在安装结束后,更新所述应用服务模块的本地版本号为所述发行版本号。

具体在本实施例中,当所述应用服务模块的本地版本号为空是时,从服务器下载所述应用服务模块的安装包,并在安装结束后,在本地的数据库中为所述版本添加所述发行版本号为所述应用服务模块的本地版本号,为以后更新所述应用服务模块提供方便。使得能为用户在没有安装某应用服务模块时,可以快捷的进行安装,为用户提供方便。

本发明提供一种多模块软件更新系统,参照图6,在本发明多模块软件更新系统第一实施例中,所述多模块软件更新系统包括:

获取模块10,用于从服务器获取应用服务模块的发行版本号;

在软件部署时,软件的所有者通过在服务器端发布最新版本的软件,用户端通过软件的本地版本号和所述服务器中的发行版本号做对比,发现是否需要更新软件。在本实施例中所述软件为平台类应用,所述平台类应用内置多个功能模块,所述应用服务模块为内容商提供的应用服务模块模块。在本实施例中,用户打开应用服务模块的上级容器时,从服务器获取包括所述应用服务模块的所有应用服务模块模块的发行版本号。

开启模块20,用于在收到开启所述应用服务模块指令后,判断所述应用服务模块是否是可更新模块,所述可更新模块为本地版本号和所述发行版本号不同的应用服务模块;

在本实施例中,所述本地版本号存储于与应用服务模块模块解耦合的独立数据库中,应用服务模块模块在进行版本更改时,由应用服务模块模块的上层容器来操作所述独立数据库的更新。在有些实施例中,所述独立数据库为普通文件,用于持久化所有应用服务模块模块在本地的本地版本号,更具体地,在有些实例中是使用XML(可扩展标记语言)文件作为持久化使用的文件。在本实施例中只要本地版本号和所述发行版本号不同,所述应用服务模块模块即为可更新模块,在有些实施例中所述版本号为数字,当所述发行版本号大于所述本地版本号时,所述应用服务模块模块才为可更新模块。

更新模块30,用于当所述应用服务模块是可更新模块时,更新所述应用服务模块至所述发行版本号对应的发行版本。

具体地,在本实施例中。当有内容提供商提供的应用模块更新时,会更新服务器端的发行版本号。用户在本地端,获取模块10从服务器获取所有可用应用服务模块的发行版本号,所述发行版本号对应的发行版本可以理解为所述内容提供商提供的应用服务模块模块的最新版本。当在本地端用户选择开启所述内容提供商提供的应用服务模块时,开启模块20通过判断所述应用服务模块的本地版本号和所述发行版本号不同时,更新模块30才从所述服务器端下载更新,把所述模块更新至最新版本。

通过在用户开启应用服务模块模块时,才从服务器端更新所述应用服务模块模块,使得每次更新只需要更新单个模块,避免了像现有软件更新一样需要全部应用服务模块模块的一起更新,本实施例减少对于用户来说不必要的更新;同时因为每次更新的是用户开启时触发更新,使得更新实在必要时才进行,降低了更新的频率。

请参照图7,基于本发明多模块软件更新方法第一实施例,在本发明多模块软件更新方法第二实施例中,所述更新模块30包括;

第一更新单元31,用于从所述服务器获取用于更新所述应用服务模块至所述发行版本的更新数据包;

热更新模块32,用于使用所述更新数据包对所述应用服务模块进行热更新;

第二更新单元33,用于在热更新结束后,更新所述应用服务模块的本地版本号为所述发行版本号。

通过使用热更新,所述热更新使得在不影响用户使用所述应用服务模块的前提下完成更新操作,提升用户体验。具体地在本实施例中,在用户开启应用服务模块模块后,通过对比发现所述应用服务模块的本地版本号和所述发行版本号不同时,再开启应用服务模块模块的同时,第一更新单元31从服务器端获取所要的更新程序,下载完成后热更新模块32对所述应用服务模块进行热更新,不影响用户的使用的情况下,对所述应用服务模块进行更新,更新完成后,第二更新单元33更新所述应用服务模块的本地版本号为所述发行版本号。

请参照图8,基于本发明多模块软件更新方法第二实施例,在本发明多模块软件更新方法第三实施例中,所述热更新模块32包括:

第一获取单元321,用于获取所述更新数据包中的dex文件;

更换单元322,用于更换所述应用服务模块的dex文件加载顺序,使得从所述更新数据包中获取的dex文件在前加载,并更新所述应用服务模块的本地版本号为所述发行版本号。

在本实施例中,更具体地,所述平台类应用为一个安卓平台应用,在热更新时,采用改变所述dex文件加载顺序来实现所述热更新操作,提升了操作速度,进一步提升了用户体验;同时在用户本地端数据库中更新所述应用服务模块的本地版本号为所述发行版本号,避免在热更新时,不能改变应用服务模块模块内部的版本,造成的更新后版本不明的问题,方便了各模块的版本管理。

更具体地,使用了虚拟机获取PATH.MF文件,所述PATH.MF为程序描述文件,获取所述应用服务模块的类名。第一获取单元321根据类名从更新数据包加载dex文件,更换单元322获取所述应用服务模块目前的dexElements列表,通过反射机制使得PathClassLoader.pathList.dexElements使得先加载所述从更新数据包加载dex文件,从而实现热更新。

请参照图9,基于本发明多模块软件更新方法第一实施例,在本发明多模块软件更新方法第四实施例中,所述获取模块10包括:

第二获取单元11,用于从服务器获取包括所述应用服务模块的所有可用模块的接口信息,所述接口信息包括模块的唯一标识、模块的名称和模块的发行版本号,所述可用模块为能在用户设备上运行的应用服务模块;

在服务器端存储了大量的应用服务模块,适配于不同的设备,在获取模块接口信息时,只获取能在用户设备上运行的可用模块的信息。

生成单元12,用于生成可视化界面,用于展示每个应用服务模块的所述接口信息。

在本实施例中,生成单元12通过为用户提供可视化界面,展示第二获取单元11从服务器端获取的所有可用模块的接口信息,使用所述接口信息填充数据展示界面,方便用户根据最新的版本信息进行选择自己所要开启的应用服务模块,方便了用户的选择,提升了用户体验。

请参照图10,基于本发明多模块软件更新方法第四实施例,在本发明多模块软件更新方法第五实施例中,所述更新模块30还包括:

判断单元34,用于判断所述应用服务模块是否存在本地版本号;

可视化界面为用户展示了全部可用模块,但是有些可用模块中,并没有全部安装到本地端,用户开启所述应用服务模块时,所述应用服务模块的本地版本号为空,所述应用服务模块的服务器端的发行版本号为任一版本号,所以当本地没有安装某接口时,所述应用服务模块的本地版本号和所述服务器端的发行版本号不同,当所述应用服务模块没有本地版本号时,代表用户本地未安装所述模块。

安装单元35,用于当所述应用服务模块不存在本地版本号时,下载并安装所述应用服务模块的所述发行版本,并在安装结束后,更新所述应用服务模块的本地版本号为所述发行版本号。

具体在本实施例中,当判断单元34判断所述应用服务模块的本地版本号为空是时,安装单元35从服务器下载所述应用服务模块的安装包,并在安装结束后,在本地的数据库中为所述版本添加所述发行版本号为所述应用服务模块的本地版本号,为以后更新所述应用服务模块提供方便。使得能为用户在没有安装某应用服务模块时,可以快捷的进行安装,为用户提供方便。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1