一种升级软件版本的方法技术

技术编号:2854184 阅读:133 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种升级软件版本的方法,该方法包括:a、将第一版本软件与第二版本软件进行比较,得出版本区别列表,所述版本区别列表至少包括版本升级标识、版本区别位置、需要修改的内容以及结束标识;b、具有第一软件版本的设备,利用所述版本区别列表更新第一版本软件,获得第二版本软件。该方法可以避免下载待升级文件,这对于变化不大的软件版本来说,是一种高效的软件版本升级方式。而且,不需要改变任何现有软件流程和机制,只需要是在手机版本升级软件上稍做修改即可,因此实现简单。

【技术实现步骤摘要】

本专利技术涉及软件升级技术,特别是指。
技术介绍
随着科学技术的发展,各种手持设备已逐渐成为人们生活、工作中不可缺少的一部分,如手机、个人数字助理(PDA)等。为了不断满足人们的需要,制造商也在不断开发和更新手持设备。而同时,由于制造商推出产品的周期也越来越短,当产品上市时,经常会有一些缺陷或者不尽人意之处。因此,随着技术的日趋完善,售出产品也需要不断的升级,其升级过程往往是一个软件版本升级过程。这里,软件版本是指软件每一次升级,所有功能都集合成一个文件,以二进制形式存在,配合相应硬件设备,共同实现相关功能。由于软件可能存在错误,在不修改硬件的前提下,经常会出现软件版本升级的情况。对于软件来说,通常将整体软件根据功能的不同,存储在不同的只读存储器(ROM)空间,软件存储区的划分使得整体软件依赖物理存储而分开,从而实现了升级部分软件功能。以手持设备软件存储区为例,一般软件存储区的划分如图1所示,图1中的软件存储区分为四个部分Boot存储区、App可执行文件区、文件系统区和保留的专用数据存储区。各个部分的功能如下Boot存储区存储的是Boot软件,Boot软件是整个软件的引导,有三个功能1、软件启动时,引导软件的启动过程;2、软件升级时,通过计算机(PC)端的相关软件与PC建立通信,并把PC上的App代码下载到手持设备中;3、在App软件损坏时,引导重新加载App的可执行二进制文件到“App可执行文件区”。App可执行文件区,用于存储软件运行程序。文件系统区,用于存储文件,如摄像头获取的图片文件、通过网络获取的MP3文件等。保留的专用数据存储区,用于保留一些关键参数,包括某些参数的备份。通常所说的软件升级,主要是指升级App可执行文件区中的软件,升级方法为Boot软件通过和PC端的相关软件与PC建立通信,并把PC中的App软件下载到手持设备中。由于app软件较大,这种app软件升级,需要将app待加载软件下载到本地空间,此时需要大量占据本地空间,而如果本地flash空间较小,将无法进行升级操作。而且,在升级过程中,需要将全部的app软件都升级一次,对于大的软件而言,要花很长的时间。
技术实现思路
有鉴于此,本专利技术的目的在于提供,该方法可以不需要将全部应用软件下载到本地进行软件版本升级,进而节省升级时间,减少占用存储空间。为了达到上述目的,本专利技术提供了,该方法包含a.将第一版本软件与第二版本软件进行比较,得出版本区别列表;b.具有第一软件版本的设备,利用所述版本区别列表更新第一版本软件,获得第二版本软件。所述版本区别列表至少包括版本升级标识、版本区别位置、需要修改的内容以及结束标识。步骤b包括b1、手持设备获取版本区别列表;b2、手持设备中boot软件根据版本区别列表中的版本升级标识,确定该版本区别列表是否是自身需要的,如果是,则利用该版本区别列表更新自身flash中的第一版本软件实现,否则,跳出本流程。步骤b2中所述修改包括b21、获取版本区别列表记录的版本区别位置和该位置需要修改成的内容,在第一版本软件中的所述版本区别位置处,按照获取到所述要修改成的内容刷新该位置的内容。所述版本区别列表进一步包括第二版本数据的大小。步骤a中所述版本区别列表是将第一版本软件与第二版本软件按字节、比特位或区域比较得出的。当步骤a中所述版本区别列表保存在网络侧或PC机中时,步骤b1中所述手持设备是根据与网络侧或PC机通信获取到所述版本区别列表的。所述通信为有线或无线通信方式。步骤a中所述版本区别列表保存在手机中,步骤b1中手持设备是通过直接读取自身保存的所述版本区别列表实现的。本专利技术对原软件版本与新软件版本进行比较,得出两个版本的版本区别列表,然后利用版本区别列表更新手机中的软件版本。该方法可以避免下载待升级文件,这对于变化不大的软件版本来说,是一种高效的软件版本升级方式。而且,该方法不需要改变任何现有软件流程和机制,只需要是在手机版本升级软件上稍做修改即可,因此实现简单。附图说明图1为手机存储区间的划分示意图;图2为实现本专利技术方法的流程示意图;图3为本专利技术生成软件版本的示意图;图4为本专利技术利用版本区别列表完成版本软件升级的示意图。具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚,下面结合附图对本专利技术作进一步的详细描述。由于软件版本的编译、连接过程是在整个软件大工程的基础上进行,一般而言,软件的工程会保留不变,即上一个版本与下一个版本之间,使用同一个工程,因此对于成熟的软件而言,软件版本之间的差异会很小,这些较小的差异不仅表现在源代码上,同时也表现在编译连接生成后的bin文件上。因此,本专利技术的核心思想是比较两个软件版本之间的区别得到软件版本区别列表,手持设备通过软件版本区别列表中软件二进制文件的区别,直接修改自身的原软件版本中需要改变的部分。这里,软件版本区别列表主要是一种特殊定义的文件格式,该文件格式以某一个软件版本文件为参照物,通过直接比较两个软件版本的方式,以特定的格式来记录两个软件版本之间的差异。参见图2所示,实现本专利技术方法包括以下步骤步骤201将第一版本软件与第二版本软件进行比较,得出版本区别列表。本专利技术中的版本区别列表至少包括版本升级标识、版本区别位置、需要修改的内容以及结束标识。其中,版本升级标识,用于描述本版本区别列表用于何种版本软件到何种版本软件的升级,如从版本A到版本B的升级。版本区别位置,用于表示第二版本与第一版本之间的二进制代码内容改变的位置。结束标识,用于表示该版本区别列表结束。具体生成版本区别列表的过程是这样实现的首先,记录先后两个版本标识,描述出自身是从何种版本升级到何种版本的区别列表,然后按照字节、位或块比较两个版本升级软件的不同,记录内容不同的位置标识以及该位置需要更新的内容,在记录完成后,设置结束标识,此时生成了版本区别列表。而且,具体按哪种方式进行比较,可以根据手机设备中保存需要更新软件的具体的flash类型选择,如NAND型flash,必须按block进行读写或擦除操作。举例说明,在图3中,版本A为手机flash中保存的原软件版本的一部分,版本B为新软件版本的一部分,在版本A和版本B中都是以0xxxxx为首地址,其分别有96个byte的数据块。图3所示的版本区别列表包括三部分,其中,第一部分为版本升级描述,表示版本升级标识,即from版本A to版本B;第二部分表示两个版本的有区别的位置以及欣版本中该位置的内容,如版本A和版本B之间在0xxxxx+27、0xxxxx+28、0xxxxx+29、0xxxxx+30、0xxxxx+93、0xxxxx+94、0xxxxx+95不同,其后,在版本区别列表中分别记录版本B中这些位置的内容,即要更新的内容ff、ff、ff、ff、89、89、89。步骤202手持设备获取版本区别列表,并判断该版本区别列表是否为自身需要的,如果是,则执行步骤203,否则,升级失败,跳出本流程。这里,手持设备获取版本区别列表文件的方式不限,可以直接将版本区别列表下载到手机本地文件系统中,也可以将版本区别列表保存在网络上或在PC上,然后手机通过某种通信方式,与网络侧或PC机连接后获取。而且,手持设备中的Boot区需要通过版本升级标识所描述的信息,确定判断该版本文档来自技高网
...

【技术保护点】
一种升级软件版本的方法,其特征在于,该方法包括以下步骤:a.将第一版本软件与第二版本软件进行比较,得出版本区别列表;b.具有第一软件版本的设备,利用所述版本区别列表更新第一版本软件,获得第二版本软件。

【技术特征摘要】
1.一种升级软件版本的方法,其特征在于,该方法包括以下步骤a.将第一版本软件与第二版本软件进行比较,得出版本区别列表;b.具有第一软件版本的设备,利用所述版本区别列表更新第一版本软件,获得第二版本软件。2.根据权利要求1所述的方法,其特征在于,所述版本区别列表至少包括版本升级标识、版本区别位置、需要修改的内容以及结束标识。3.根据权利要求2所述的方法,其特征在于,步骤b包括b1、手持设备获取版本区别列表;b2、手持设备中boot软件根据版本区别列表中的版本升级标识,识别该版本区别列表是否是自身需要的,如果是,则利用该版本区别列表更新自身的第一版本软件,否则,跳出本流程。4.根据权利要求3所述的方法,其特征在于,步骤b2中所述更新包括b21、获取版本区别列表记录的版本区别位置和该位置需要修改...

【专利技术属性】
技术研发人员:杨鹏亮
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1