我了解UUID.randomUUID主要是很好的:how good is java's UUID.randomUUID?

有没有人在Android上遇到过UUID.randomUUID问题。由于Android使用Dalvik VM。

我无法重现碰撞。但是,以下代码可疑(基于我的生产报告),并且在两个不同的进程(两个具有相同代码和不同软件包的应用程序,例如免费应用程序与专业应用程序)上运行时可能会导致冲突?

private static final String PREFIX = Long.toString(UUID.randomUUID().getLeastSignificantBits());


任何想法/经验都将有所帮助!

最佳答案

如我所见,http://docs.oracle.com/javase/7/docs/api/java/util/UUID.html最低有效数字包括三个字段:

 0xC000000000000000 variant
 0x3FFF000000000000 clock_seq
 0x0000FFFFFFFFFFFF node


通过不使用所有UUID,您将增加发生碰撞的机会。如何将其全部处理为:private static final String PREFIX = UUID.randomUUID().toString();

这样,您将减少碰撞的机会。

10-07 12:46