2015-03-27 2 views
0

Я понимаю, что UUID.randomUUID в основном хорошо: how good is java's UUID.randomUUID?UUID.randomUUID столкновения в Android

Кто-нибудь испытал проблемы на Android с UUID.randomUUID. Поскольку Android использует Dalvik VM.

Я не могу воспроизвести столкновение. Однако следующий код является подозрительным (на основе отчетов моего производства) и может привести к столкновению при работе на двух разных процессах (два приложения с одним и тем же кодом и разными пакетами, например, бесплатное приложение vs pro)?

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

Любые мысли/опыт были бы полезны!

ответ

1

Как я могу видеть, 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();

Таким образом, вы уменьшите свой шанс столкновения.

Смежные вопросы