一种升级软件版本的方法

文档序号:6443618阅读:165来源:国知局
专利名称:一种升级软件版本的方法
技术领域
本发明涉及软件升级技术,特别是指一种升级软件版本的方法。
背景技术
随着科学技术的发展,各种手持设备已逐渐成为人们生活、工作中不可缺少的一部分,如手机、个人数字助理(PDA)等。为了不断满足人们的需要,制造商也在不断开发和更新手持设备.而同时,由于制造商推出产品的周期也越来越短,当产品上市时,经常会有一些缺陷或者不尽人意之处.因此,随着技术的日趋完善,售出产品也需要不断的升级,其升级过程往往是一个软件版本升级过程.这里,软件版本是指软件每一次升级,所有功能都集合成一个文件,以二进制形式存在,配合相应硬件设备,共同实现相关功能。由于软件可能存在错误,在不修改硬件的前提下,经常会出现软件版本升级的情况.
对于软件来说,通常将整体软件根据功能的不同,存储在不同的只读存储器(ROM)空间,软件存储区的划分使得整体软件依赖物理存储而分开,从而实现了升级部分软件功能.以手持设备软件存储区为例,一般软件存储区的划分如图I所示,图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包括
bl、手持设备获取版本区别列表;
b2、手持设备中boot软件根据版本区别列表中的版本升级标识,确定该版本区别列表是否是自身需要的,如果是,则利用该版本区别列表更新自身flash中的第一版本软件实现,否则,跳出本流程。步骤1^2中所述修改包括
1^21、获取版本区别列表记录的版本区别位置和该位置需要修改成的内容,在第一版本软件中的所述版本区别位置处,按照获取到所述要修改成的内容d’ J新该位置的内容. 所述版本区别列表进一步包括第二版本数据的大小。步骤a中所述版本区别列表是将第一版本软件与第二版本软件按字节、比特位或区域比较得出的。当步骤a中所述版本区别列表保存在网络侧或PC机中时,步骤bl中所述手持设备是根据与网络侧或PC机通信获取到所述版本区别列表的。 所述通信为有线或无线通信方式。步骤a中所述版本区别列表保存在手机中,步骤bl中手持设备是通过直接读取自身保存的所述版本区别列表实现的。本发明时原软件版本与新软件版本进行比较,得出两个版本的版本区别列表,然后利用版本区别列表更新手机中的软件版本.该方法可以避免下载待升级文件,这对于变化不大的软件版本来说,是一种高效的软件版本升级方式。而且,该方法不需要改变任何现有软件流程和机制,只需要是在手机版本升级软件上稍做修改即可,因此实现简单。


图I为手机存储区间的划分示意图; 图2为实现本发明方法的流程示意图; 图3为本发明生成软件版本的示意图4为本发明利用版本区别列表完成版本软件升级的示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。由于软件版本的编译、连接过程是在整个软件大工程的基础上进行,一般而言,软件的工程会保留不变,即上一个版本与下一个版本之间,使用同一个工程,因此对于成熟的软件而言,软件版本之间的差异会很小,这些较小的差异不仅表现在源代码上,同时也表现在编译连接生成后的bin文件上。因此,本发明的核心思想是比较两个软件版本之间的区别得到软件版本区别列表,手持设备通过软件版本区别列表中软件二进制文件的区别,直接修改自身的原软件版
4本中需要改变的部分.这里,软件版本区另怀.]表主要是一种特殊定义的文件格式,该文件格式以某一个软件版本文件为参照物,通过直接比较两个软件版本的方式,以特定的格式来记录两个软件版本之间的差异。参见图2所示,实现本发明方法包括以下步骤 步骤201:将第一版本软件与第二版本软件进行比较,得出版本区别列表。本发明中的版本区别列表至少包括版本升级标识、版本区别位置、需要修改的内容以及结束标识。其中,版本升级标识,用于描述本版本区别列表用于何种版本软件到何种版本软件的升级,如从版本A到版本B的升级。版本区别位置,用于表示第二版本与第一版本之间的二进制代码内容改变的位置.结束标识,用于表示该版本区别列表结束。具体生成版本区别列表的过程是这样实现的首先,记录先后两个版本标识,描述出自身是从何种版本升级到何种版本的区别列表,然后按照字节、位或块比较两个版本升级软件的不同,记录内容不同的位置标识以及该位置需要更新的内容,在记录完成后,设笠结束标识,此时生成了版本区别列表.而且,具体按哪种方式进行比较,可以根据手机设备中保存需要更新软件的具体的flash类型选择,如NAND型flash,必须按block进行读写或擦除操作。举例说明,在图3中,版本A为手机flash中保存的原软件版本的一部分,版本B为新软件版本的一部分,在版本A和版本B中都是以Oxxxxx为首地址,其分别有96 个byte的数据块。图3所示的版本区别列表包括三部分,其中,第一部分为版本升级描述,表示版本升级标识,即from版本A to版本B;第二部分表示两个版本的有区别的位置以及欣版本中该位置的内容,如版本A和版本Bif el在Oxxxxx+27. 0xxxxx+28. Oxxxxx+29. Oxxxxx+30. Oxxxxx+93. Oxxxxx+94, 0xxxxx+95 不同,其后,在版本区另丨洌表中分别记录版本B中这些位置的内容,即要更新的内容ff,ff, ff, ff.89. 89. 89。步骤 202:手持设备获取版本区别列表,并判断该版本区别列表是否为自身需要的,如果是,则执行步骤203,否则,升级失败,跳出本流程。这里,手持设备获取版本区别列表文件的方式不限,可以直接将版本区别列表下载到手机本地文件系统中,也可以将版本区别列表保存在网络上或在PC上,然后手机通过某种通信方式,与网络侧或PC机连接后获取。而且,手持设备中的Boot区需要通过版本升级标识所描述的信息,确定判断该版本区别列表是自身需要的,这需要手持设备具有自识别功能.比如,手持设备中当前版本为A版本,如果版本区别列表中的版本升级标识表示是从版本A到版本B的升级,那么,手持设备是可以利用该版本升级列表进行升级的,如果版本区别列表中的版本升级标识表示是从版本B到版本C的升级,则此时手持设备是不能利用该版本升级列表来升级的,否则会出现升级错误。步骤203:具有第一软件版本的手持设备,利用所述该版本区别列表更新第一版本软件.这里,第一软件版本即为原软件版本,第二软件版本即为新软件版本。在实际应用中,需要开发一种PC端的工具软件,该工具软件将先后的两个版本软件,即最终的bin文件,作为榆入,然后对这两个bin文件按bit. byte或block进行比较, 对比较不同之处在版本区别列表文件中列出。以下结合图3以可直接读写字节(byte)的NOR型Bash为例,来说明PC机端工具软件的工作原理。
按照byte,比较图3所示的版本A和版本B,确定两个版本软件共有7个byte不同,在版本区别列表文件中,将内容不同的地址和要修改成的内容,都一一记录。而对于版本A或版本B增加或减少的说明,可采用下面方式=Oxyyyy delOxyyyy XX表示版本B比版本A少此空间;表示版本B比版本A多此空间,XX表示具体内容。当然,版本区别列表文件中,也可以适当增加一些其他部分必要信息,如版本B的数据大小等.而且版本区别列表文件并不局限于某一种具体的文件格式,简单的文本文件格式即可满足要求。版本升级过程是建立版本区别列表文件的逆过程,其具体如下手机获取版本区别列表文件,手机中的boot软件识别版本区别列表文件,获取版本区别列表记录的版本区别位置和该位置需要修改成的内容,然后按照该版本区别列表文件中描述的相对位置,重新改写flash的相关部分。如,在图4中,版本区别列表已记录版本A和版本B之间在Oxxxxx+27. 0xxxxx+28、 Oxxxxx+29、Oxxxxx+30、0xxxxx+93、Oxxxxx+94、0xxxxx+95 不同,而且分另Ij 记录版本 B 中这些位五的内容,即ff,ff, ff, ff, 89,89.89.因此,在升级的过程中,需要在 Oxxxxx+27, Oxxxxx+28, Oxxxxx+29,0xxxxx+30. 0xxxxx+93, Oxxxxx+94, 0xxxxx+95 的位置处,分别将其原来的内容更新为ff,ff, ff. ff, 89,89. 89。本发明不局限于某种具体设备中的软件更新,比如手机、PDA等各种手持设备.而且,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种升级软件版本的方法,其特征在于,该方法包括以下步骤a.将第一版本软件与第二版本软件进行比较,得出版本区别列表;b.具有第一软件版本的设备,矛.!用所述版本区别列表更新第一版本软件,获得第二版本软件。
2.根据权利要求1述的方法,其特征在于,所述版本区别列表至少包括版本升级标识、 版本区别位置、需要修改的内容以及结束标识。
3.根据权利要求2所述的方法,其特征在于,步骤b包括bl手持设备获取版本区别列表;b2、手持设备中boot软件根据版本区别列表中的版本升级标识,识别该版本区别列表是否是自身需要的,如果是,则利用该版本区别列表更新自身的第一版本软件,否则,跳出本流程。
4.根据权利要求3所述的方法,其特征在于,步骤1^2中所述更新包括1^21、获取版本区别列表记录的版本区别位置和该位置需要修改成的内容,在第一版本软件中的所述版本区别位置处,按照获取到所述要修改成的内容刷新该位置的内容。
5.根据权利要求2所述的方法,其特征在于,所述版本区别列表进一步包括第二版本数据的大小。
6.根据权利要求1所述的方法,其特征在于,步骤a中所述版本区别列表是将第一版本软件与第二版本软件按字节、比特位或区域比较得出的。
7.根据权利要求3所述的方法,其特征在于,当步骤a中所述版本区别列表保存在网络侧或PC机中时,步骤bl中所述手持设备是根据与网络侧或PC机通信获取到所述版本区别列表的。
8.根据权利要求7所述的方法,其特征在于,所述通信为有线或无线通信方式。
9.根据权利要求3所述的方法,其特征在于,步骤a中所述版本区别列表保存在手持设备中,步骤bl手持设备是通过直接读取自身保存的所述版本区别列表实现的。
全文摘要
本发明公开了一种升级软件版本的方法,该方法包括:a、将第一版本软件与第二版本软件进行比较,得出版本区别列表,所述版本区别列表至少包括版本升级标识、版本区别位置、需要修改的内容以及结束标识;b、具有第一软件版本的设备,利用所述版本区别列表更新第一版本软件,获得第二版本软件。该方法可以避免下载待升级文件,这对于变化不大的软件版本来说,是一种高效的软件版本升级方式。而且,不需要改变任何现有软件流程和机制,只需要是在手机版本升级软件上稍做修改即可,因此实现简单。
文档编号G06F9/445GK102521004SQ20111044619
公开日2012年6月27日 申请日期2011年12月28日 优先权日2011年12月28日
发明者任平 申请人:苏州铭星科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1