Küçük bir uygulama oluşturdum (bir proje olarak, onu serbest bırakma planları olmadan). Kodun bir kısmı, rasgele sayılar içeren bir ızgara oluşturur ve söz konusu numaraya sahip bir listeden hareketli grafiği kullanarak bir ızgara görüntüler. En azından Kindle Fire'ımda (ve denediğim başka bir cihazda) beklendiği gibi davrandı.Emülatör neden cihazımdan daha az rastgele?
Ancak, emülatör farklı bir hikaye. Bence taklit edilen cihaz genel bir Samsung (4, belki de). Aynı kod, emülatörde çalıştırıldığında, bir sprite ile yaklaşık yarısı ve farklı bir hareketli grafiğin yarısını doldurur.
ızgara emülatörünüzde bu gibi görünebilir:
yerine gerçek cihazlarda bu11177
11177
11777
11777
11777
:
64251
26253
87635
38415
28167
benim kod ilgili kısmı (evet, ben gerektiği hareket new Random()
başka yerlerde):
import java.util.Random;
// ... ... ...
for (int i = 0; i < GRID; i++) {
for (int j = 0; j < GRID; j++) {
paint.setColor(Color.parseColor("#FBB117"));
Random rand=new Random();
int num=rand.nextInt(8);
canvas.drawBitmap(bmp,frames[num],calcGridSpot(i,j),
paint);
//... Eventually closing braces:
}
}
I Geçmişte, Java'da, daha az rastgele olmaya karar veren Random
ile ilgili sorunlar yaşadım (optimizasyondan kaynaklanabileceğine inanıyorum).
Emülatör neden daha az rastlantısal davranıyor? (Ve bunu nasıl düzeltebilirim?)
Android, _own_ java.util.Random ??? – Laurel
@Laurel bu yapıcı, jeneratörü uygulama değil. – pjs
Şu anda 'N' sürümünün kaynaklarının bulunduğu "ana" dalın çok farklı bir uygulaması var: https://android.googlesource.com/platform/libcore/+/master/ojluni/src/main/ java/java/util/Random.java – fadden