本发明涉及计算机程序技术,具体涉及应用程序的升级技术。
背景技术:
安装包制作工具是专业用于制作安装程序的打包类软件,单纯的使用脚本来编写安装程序对于大多数人来说不仅困难而且容易出错,而使用安装包制作工具具备初学者上手容易、制作的安装程序功能完善等优点。innosetup是一个免费的安装制作软件,小巧、简便、精美是其最大特点,支持pascal脚本,能快速制作出标准windows风格的安装界面,足以完成一般安装任务。
使用innosetup创建应用程序安装包或者升级包,每一个应用程序需要对应一个唯一的标识id(即appid),在进行版本升级时,一般一个升级包只能对应一个应用程序,而在某些情况下,需要使用一个通用更新包来对多个应用程序进行版本升级。
一般情况下,用innosetup工具创建的升级包,必须指定一个常量作为appid,而不同的应用程序对应的appid不同,这样就造成每升级一个应用程序,必须创建一个对应的升级包,升级包与应用程序唯一对应。
技术实现要素:
为了克服现有技术的不足,本发明的目的之一在于提供一种应用程序的升级方法,其能解决每升级一个应用程序,必须创建一个对应的升级包的问题。
本发明的目的之二在于提供一种终端,其能解决每升级一个应用程序,必须创建一个对应的升级包的问题。
为了实现上述目的之一,本发明所采用的技术方案如下:
一种应用程序的升级方法,其包括以下步骤:
从服务端下载升级包;
运行所述升级包,并将所述应用程序的appid值赋值给所述升级包的appid参数,以使所述升级包根据所述appid参数识别出对应的应用程序并完成升级操作。
优选的,所述升级操作包括以下步骤:
退出所述应用程序;
安装所述升级包,并完成注册表信息的更新,从而更新所述应用程序在注册表中的版本号;
重启所述应用程序,完成升级操作。
优选的,所述从服务端下载升级包具体包括以下步骤:当检查到服务端存在所述应用程序的版本更新信息,则从服务端下载升级包至本地临时目录。
优选的,在运行所述升级包时,判断所述应用程序是否有在本地安装,若有,则将所述应用程序的appid值赋值给所述升级包的appid参数,否则退出升级操作。
为了实现上述目的之二,本发明所采用的技术方案如下:
一种终端,其包括存储器和处理器;
所述存储器,用于存储程序指令;
所述处理器,用于运行所述程序指令,以执行以下步骤:
从服务端下载升级包;
运行所述升级包,并将所述应用程序的appid值赋值给所述升级包的appid参数,以使所述升级包根据所述appid参数识别出对应的应用程序并完成升级操作。
优选的,所述升级操作包括以下步骤:
退出所述应用程序;
安装所述升级包,并完成注册表信息的更新,从而更新所述应用程序在注册表中的版本号;
重启所述应用程序,完成升级操作。
优选的,所述从服务端下载升级包具体包括以下步骤:当检查到服务端存在所述应用程序的版本更新信息,则从服务端下载升级包至本地临时目录。
优选的,在运行所述升级包时,判断所述应用程序是否有在本地安装,若有,则将所述应用程序的appid值赋值给所述升级包的appid参数,否则退出升级操作。
相比现有技术,本发明的有益效果在于:
在多个不同应用程序更新内容相同的情况下,本发明可以减少创建升级包时的工作量以及杜绝因升级配置不正确造成的升级包和应用程序不匹配的情况。
附图说明
图1为本发明较佳实施例的升级方法的流程图;
图2为本发明较佳实施例的终端的结构示意图。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述:
本实施例提出了一种应用程序的升级方法。在实施该升级方法前,先创建升级包。创建升级包的流程如下:
步骤1:打开innosetup软件,新建一个innosetup模板脚本,在模板脚本的起始处手动输入本次升级后的版本号、升级包中的发布信息以及升级包包含的更新文件等信息。
步骤2:在[code]段中手动输入获取命令行参数appid的函数方法getappid相关代码。
步骤3:在[setup]段中手动修改appid参数值的获取方式,改为由函数getappid获取。这样升级包的appid值将由命令行参数指定。
代码示例:
appid={code:getappid}
步骤4:在initializesetup函数中,添加判断应用程序是否安装的相关代码。通过appid在注册表的指定位置进行查找,判断系统中是否安装过应用程序。如果没有安装过对应应用程序,则在弹出错误提示信息后退出升级操作。
步骤5:在curstepchanged函数中,添加更新注册表中关于应用版本号的相关代码。通过更新注册表信息,可以更新应用程序在系统中的版本号等信息显示。
步骤6:使用前一个步骤创建的模板脚本和相关文件,通过innosetup工具编译生成此次的升级包。
步骤7:在服务端配置应用程序的升级信息,这样应用程序在进行版本检查时将从远程服务端上收到版本更新相关数据。
在升级包创建后,应用程序启动后,执行如图1所示的升级方法流程。
步骤s1、从服务端下载升级包。
具体为:当检查到服务端存在所述应用程序的版本更新信息,则从服务端下载升级包至本地临时目录,然后通过命令行参数运行所述升级包。
步骤s2、运行所述升级包,判断所述应用程序是否有在本地安装(由步骤4相关代码实现),若有,则将所述应用程序的appid值赋值给所述升级包的appid参数,即将应用程序的唯一appid传给升级包(由步骤2、3的相关代码实现),以使所述升级包根据所述appid参数识别出对应的应用程序并完成升级操作,否则退出升级操作。
也就是说,本实施例的升级包的appid参数是由应用程序动态传入的,从而实现同一升级包对不同应用程序的升级操作,即本实施例的升级包是通用升级包。需要说明的是,现有技术中,普通升级包的appid是一个常量,无法升级不同的应用程序。
具体的,所述升级操作包括以下步骤:
退出所述应用程序;
安装所述升级包,并完成注册表信息的更新,从而更新所述应用程序在注册表中的版本号(由步骤5相关代码实现);
重启所述应用程序,完成升级操作。
如图2所示,与上述方法对应提出一种一种终端,其包括存储器和处理器;
所述存储器,用于存储程序指令;
所述处理器,用于运行所述程序指令,以执行以下步骤:
从服务端下载升级包;
运行所述升级包,并将所述应用程序的appid值赋值给所述升级包的appid参数,以使所述升级包根据所述appid参数识别出对应的应用程序并完成升级操作。
优选的,所述升级操作包括以下步骤:
退出所述应用程序;
安装所述升级包,并完成注册表信息的更新,从而更新所述应用程序在注册表中的版本号;
重启所述应用程序,完成升级操作。
优选的,所述从服务端下载升级包具体包括以下步骤:当检查到服务端存在所述应用程序的版本更新信息,则从服务端下载升级包至本地临时目录。
优选的,在运行所述升级包时,判断所述应用程序是否有在本地安装,若有,则将所述应用程序的appid值赋值给所述升级包的appid参数,否则退出升级操作。
对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。