Android的应用版本代码如下:http://developer.android.com/tools/publishing/versioning.html
一个整数值,表示相对于其他版本的应用程序代码版本。
他们继续建议从 1 开始并递增。
我不想管理撞一个数字并跟踪所有这些。我可以只使用 UTC 日期时间吗? 版本代码=20141106201953?
似乎这将满足谷歌的要求。 为什么这是一个坏主意?
编辑:几乎是 https://stackoverflow.com/a/24246191/670023 的欺骗
No. versionCode
是一个int
.Java的Integer
最大值是2147483647。
问题是允许的最大版本号是 2100000000。请参阅:https://developer.android.com/studio/publish/versioning
但是,您可以获取日期/时间戳并以永远不会达到此数字的方式对其进行修改。例如,您可以将时间戳除以 10。该计划将一直有效到2635年。看到这篇文章的原始想法:https://medium.com/@esplo/using-an-unusual-timestamp-as-an-auto-generated-version-code-for-android-apps-f231b026edbd
正如其他答案提到的,versionCode
int
,它不够大,无法存储日期(您需要使用 long
(。但是,为了获得当前日期作为 int
,您需要将从new Date().getTime()
获得的long
除以 1000,这意味着您可以每秒有一个新的versionCode
;这对我来说已经足够了。
def date= new Date()
println ((int) (date.getTime() / 1000))
这种方法的缺点是,这将工作到18 Jan 2038
,因为在该日期之后,这将不在int
范围内