AndroidManifest.xml 文件 <manifest> versionCode 属性

Posted

技术标签:

【中文标题】AndroidManifest.xml 文件 <manifest> versionCode 属性【英文标题】:AndroidManifest.xml file <manifest> versionCode attribute 【发布时间】:2010-11-04 11:31:14 【问题描述】:

android 开发者网站上的Versioning Your Applications:

你会发布第一个版本的 您的应用程序设置了 versionCode 为 1,然后单调增加 每次发布的价值,无论 该释放是否构成 主要或次要版本。

这一切都很好,但是如何处理这个序列?:

1 1.0 2 1.1 3 1.2 4 1.3 5 1.4 6 2.0 ? 1.5

【问题讨论】:

【参考方案1】:

我猜你是真的想说“如果我们想要发布下一代技术 2.0 但仍然针对 1.0 系列技术发布 1.5 补丁版本怎么办?”

您的选择是:

    不要那样做——一旦切换到 2.0,就继续使用 2.0 系列 将 2.0 技术系列作为单独的应用程序发布,可能从 1 开始其序列 嗯……没有#3

我猜你会想要#2。毕竟,根据定义,您是说应用程序有两个当前版本(1.5 和 2.0),因此实际上有两个不同的应用程序。

【讨论】:

他是对的。如果您希望有些人使用 1.5,有些人使用 2.0,那么这是两个不同的受支持应用程序。在 Google Play 应用商店中,每个应用一次只能发布一个版本供下载。【参考方案2】:

为了允许多行开发和发布,我们回到过去的基本行号。下面的顺序是按发布日期:

10000 1.0-0 10001 1.0-1 10002 1.0-2 10100 1.1-0 10103 1.1-3 10200 1.2-0 20000 2.0-0 10201 1.2-1

上述限制在每个级别(2 位数字)释放 1 到 100 个点和 100 个破折号。每个级别可以使用 10 个(1 位数字),但我从未使用过符合该限制的“真实”软件。鉴于当今的持续集成方法,在某些情况下,每个级别甚至需要 1000(3 位数)。

使用 2 位数字为带符号的 16 位整数提供 31 个主要版本,或为无符号提供 63 个主要版本。如果需要,这应该/可能会给 Android 世界足够的时间去 64 位。

该方法提供了多个分支,可以被程序检查,较高的versionCode数字意味着从较低的数字升级。

Versioning Your Applications 状态:

其他应用...需要查询 应用程序的系统 版本,以确定兼容性 并识别依赖关系

android:versionCode — 一个整数值 代表版本 应用程序代码,相对于其他 版本

该值是一个整数,因此其他 应用程序可以以编程方式 评估它,例如检查一个 升级或降级关系。您可以将值设置为您想要的任何整数, 但是,您应该确保应用程序的每个后续版本都使用更大的值。

剩下的问题是关于“每个连续的版本”。这是否旨在将一个限制为日期,以便您不能同时让 1.2-1 和 2.0-0 成功 1.2-0,除非发布日期按该顺序排列。 versionCode 值:10200、10201 和 20000 提供“升级或降级关系”。还是使用整数值是为了将一个限制为没有分支的单行?

【讨论】:

"然后在每次发布时单调增加值" 请记住,您的解决方案违反了上述原则,只要有 10200 的人会被提示升级到 20000,而移动到 20000 的人将永远不会接收 10201 作为选项。如果你想拥有多个并发产品,让它们成为多个并发产品,并为 2.x 系列和 1.x 系列创建单独的应用程序。

以上是关于AndroidManifest.xml 文件 <manifest> versionCode 属性的主要内容,如果未能解决你的问题,请参考以下文章

如何从 APK 文件中查看 AndroidManifest.xml?

SourceTree提交AndroidManifest.xml文件

AndroidManifest.xml文件详解

查看xxx.apk文件的AndroidManifest.xml操作步骤:

验证 AndroidManifest.xml 文件

学习Android之-----------------------AndroidManifest.xml