Skip to content
xuld edited this page Oct 31, 2013 · 2 revisions

软件的版本号由以下4部分组成:

主要版本号.次要版本号.版本状态码[.修订号]

应根据下面的约定使用这些部分:

  • 主要版本:主要版本号不同,意味着本版本进行了大幅的本质修改,并且可能出现不同版本不兼容的问题。

  • 次要版本:次要版本号不同,意味着功能的显著增强,但考虑了向后兼容性。

  • 版本状态码:版本状态码包含了对当前版本的一些描述。它具体包含了以下信息:

    • 发布状态。

      • 0: 计划版(planned):计划开发,但开发没有开始。
      • 1: 开发版(developping):正在开发。
      • 2: 预览版(preview):开发初步完成,但可能有些功能未完成。
      • 3: 内部测试版(alpha):所有功能都开发完成,但可能包含了众多 bug,内部(团队)测试用。
      • 4: 外部测试版(beta):对外发布的测试版,同样有很多 bug 。
      • 5: 发布候选版(RC, release candidate): 可以认为基本没有 bug 的版本。
      • 6: 发布版(release):已经正式发布的版本。
      • 7: 稳定版(stable):发布一段时间后标志没有 bug 的版本。
    • 编译平台及相关信息 比如用于标识不同操作系统、处理器、平台环境、编译器或其它信息的编码。具体根据软件需求来定。 默认地可以使用如下设置:

      • 操作系统:
        • 0: unix
        • 1: windows
        • 2: mac
        • 3: linux
        • 4: freebsd
        • 5: andriod
        • 6: ios
        • 7: windowsCE
      • 处理器:
        • 0: x86
        • 1: x64
      • 环境:
        • 0: debug 版
        • 1: release 版
  • 修订号: 修订号不同,意味着本版本可能只修改了上一次版本的某个细节或 bug,但本质上它们是同一个版本。

版本号的数据存储

版本号使用 32 位数据存储。其中:

  • 0 - 7 位:存储主要版本号,范围是 0 - 255
  • 8 - 15 位:存储次要版本号,范围是 0 - 255
  • 16 - 20 位:存储编译平台及相关信息,范围是 0 - 32
  • 21 - 23 位:存储发布状态,范围是 0 - 7
  • 24 - 31 位:存储修订号号,范围是 0 - 255

由于版本号使用 32 位数据存储,因此版本号可以很方便地转为 int 读写。