一种升级包管理方法及服务器的制造方法

文档序号:9826100阅读:820来源:国知局
一种升级包管理方法及服务器的制造方法
【技术领域】
[0001]本发明涉及软件升级技术领域,具体涉及一种升级包管理方法及服务器。
【背景技术】
[0002]空中固件升级(FOTA, Firmware Over The Air)是智能终端系统(例如Android系统)目前主流的升级方式,智能终端和服务器通过网络交互传递升级包,完成智能终端系统的升级。
[0003]如图1所示为典型的FOTA模型,主机将升级包源代码编译成升级包后上传到服务器,智能终端通过和服务器建立连接,下载需要的升级包进行升级。
[0004]目前,升级包根据内容可以分为全量升级包和增量升级包,其中,全量升级包是针对所有文件的升级,相当于将智能终端系统全部删除再重新升级,增量升级包需要针对指定历史版本来升级,只升级差异部分,不对无差异部分做修改。采用增量升级的FOTA方式,每次新版本发布都会包含一个全量升级包和多个增量升级包,而由上述方案可见,主机每次都需要将编译得到的升级包上传到服务器,由服务器对升级包进行管理,因此,当发布的版本较多时,升级包的总数量将会非常庞大,而数量庞大的升级包必然会给服务器带来不小的压力(例如存储压力、管理压力等)。

【发明内容】

[0005]本发明提供一种升级包管理方法及服务器,用于减小服务器的压力。
[0006]本发明第一方面提供一种升级包管理方法,包括:
[0007]服务器从主机获取中间包,其中,所述中间包为所述主机根据升级包源代码编译输出的中间文件;
[0008]根据获取的中间包生成全量升级包和预设数量的增量升级包;
[0009]存储所述获取的中间包、所述全量升级包和所述预设数量的增量升级包;
[0010]删除历史存储的全量升级包和所有增量升级包。
[0011]本发明第二方面提供一种服务器,包括:
[0012]第一获取单元,用于从主机获取中间包,其中,所述中间包为所述主机根据升级包源代码编译输出的中间文件;
[0013]生成单元,用于根据所述第一获取单元获取的中间包生成全量升级包和预设数量的增量升级包;
[0014]存储单元,用于存储所述第一获取单元获取的中间包、所述生成单元生成的全量升级包和预设数量的增量升级包;
[0015]清理单元,用于删除所述存储单元历史存储的全量升级包和所有增量升级包。
[0016]由上可见,本发明中主机根据升级包源代码编译出中间包后,只将中间包上传到服务器,由服务器完成升级包的制作,且服务器在新的升级包制作完成后,自动删除历史存储的升级包,服务器只需要保留和管理中间包和新制作的全量升级包和增量升级包,因此有效节省了服务器的存储空间,减小了服务器的压力(例如存储压力、管理压力等),进而提高了服务器的运行效率。
【附图说明】
[0017]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0018]图1为现有技术一种典型的FOTA模型示意图;
[0019]图2-a为本发明提供的一种升级包管理方法一个实施例流程示意图;
[0020]图2_b为本发明提供的一种增量升级包生成方法实施例流程示意图;
[0021]图2-c为本发明提供的一种主机和服务器的实施例架构示意图;
[0022]图3为本发明提供的一种升级包管理方法另一个实施例流程示意图;
[0023]图4为本发明提供的一种服务器一个实施例结构示意图。
【具体实施方式】
[0024]为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0025]下面对本发明实施例中的升级包管理方法进行描述,如图2_a所示,本发明实施例中的升级包管理方法包括:
[0026]步骤201、服务器从主机获取中间包;
[0027]其中,上述中间包为上述主机根据升级包源代码编译输出的中间文件。
[0028]本发明实施例中,上述中间包的原型为主机根据升级包源代码进行时产生的一个临时文件,包含了所有需要升级的内容和一些升级工具(例如升级脚本),主机在编译过程中,将中间包由中间文件改为输出文件。具体的,主机根据升级包源代码编译得到中间包的过程可参照现有技术实现,此处不再赘述。
[0029]可选的,服务器周期性向主机请求获取中间包,如果主机有新的中间包,则主机将新的中间包发送给服务器;或者,也可以由主机在输出新的中间包后,主动将新的中间包发送给服务器。具体地,服务器和主机之间可以通过有线方式或无线方式进行通讯。本发明实施例中不对服务器从主机获取中间包的方式进行限定。
[0030]步骤202、根据获取的中间包生成全量升级包和预设数量的增量升级包;
[0031]本发明实施例中,全量升级包是针对所有文件的升级,相当于将智能终端系统全部删除再重新升级,增量升级包需要针对指定历史版本来升级,只升级差异部分,不对无差异部分做修改。
[0032]具体的,上述根据获取的中间包生成全量升级包和预设数量的增量升级包的过程可以由配置在服务器的升级包制作脚本实现。需要说明的是,原生的升级包制作脚本是和升级包源代码在一块的,需要依赖于源码环境运行,相对于原生的升级包制作脚本,本发明实施例将升级包制作脚本及依赖的库、工具和签名文件等独立出来,使得配置在服务器的升级包制作脚本能够脱离源代码环境运行。可选的,对主机的编译规则做如下规范:1、分区升级文件以文件夹形式存储在中间包的根目录,分区升级文件以相应分区的名称(例如分区名称的大写字母)命名;2、仅将需要烧录的分区升级文件打包到中间包中。这在步骤202的执行过程中,服务器即可根据步骤201获取的中间包中根目录下的文件夹名称确定需要升级的分区,并将需要升级的分区的分区升级文件烧录到指定的全量升级包和/或增量升级包中。
[0033]由于增量升级包是针对历史版本的升级,因此,增量升级包的生成需要结合新的中间包和相应历史版本的中间包。可选的,本发明实施例中增量升级包的生成流程如图2-b所示:
[0034]S1、根据上述预设数量和获取的中间包的软件版本号计算最低版本号;
[0035]其中,需要生成的增量升级包的数量可在步骤201获取的中间包中指定。中间包也会指示当前中间包的软件版本号,该软件版本号与通过该中间包生成的全量升级包的软件版本号一致。
[0036]举例说明,假设步骤201获取的中间包的软件版本号为v40,需要生成的增量升级包的数量为10,则可以将软件版本号V40往前退10个版本,得到最低版本号V30。
[0037]S2、将当前软件版本号减一后作为目标软件版本号;
[0038]以步骤SI中的举例进一步说明,当服务器首次执行步骤S2时,将软件版本号为v40减I (即退I个版本)后得到的v39作为目标软件版本号。
[0039]S3、判断上述目标软件版本号是否小于上述最低版本号;
[0040]当服务器判断上述目标软件版本号小于最低版本号,则进入步骤S7,当服务器判断上述目标软件版本号不小于上述最低版本号,则进入步骤S4。
[0041]S4、判断是否存储有与上述目标软件版本号一致的中间包;
[0042]当服务器判断存储有与上述目标软件版本号一致的中间包时,执行步骤S5,当服务器判断未存储有与上述目标
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1