2017-01-13 4 views
5

Ich beobachte wie in der folgenden Abbildung gelegentlich seltsame Grafikartefakte in meiner App. Dies ist ein Bildschirmgrab aus einem Samsung Galaxy S3. Ich habe es nur an diesem bestimmten Telefon beobachtet. Ich habe die App auf einem Samsung Galaxy Tab S4 und einem HTC One laufen lassen, und dieses Problem nie beobachtet - obwohl ich zugegebenermaßen hauptsächlich das S3 für die Entwicklung verwende.Seltsame Grafikartefakte in der Android-App

Ich dachte, dass das Problem eine Art Concurrency-Konflikt bei der Zeichnung auf Canvas sein könnte (ich verwende die grundlegenden Android-Rendermethoden, keine OpenGL oder irgendetwas), da ich die Wiederholungseinheiten anderer UI-Elemente klar erkennen kann , also synchronisierte ich den ganzen Code, der zu Canvas zieht oder mit ihm interagiert und ich bin immer noch beobachtend es geschieht.

Es reinigt sich nach etwa 30-90 Sekunden, was möglicherweise auf eine regelmäßige geplante Speicherbereinigung zurückzuführen ist - also vielleicht eine Manifestation von niedrigen verfügbaren Mem?

Wenn ich genügend rep hätte, würde ich eine ziemlich große Kopfgeld auf diese. Jede Hilfe wird geschätzt. Hoffentlich erkennt jemand dieses spezielle Problem.

Strange graphics artefacts

+0

Haben Sie versucht, mit Hardware-Schicht auszuführen Zeichnung auf [ 'View # setLayerType (View.LAYER_TYPE_HARDWARE, null)'] (https: // Entwickler. android.com/reference/android/view/View.html#LAYER_TYPE_HARDWARE)? – azizbekian

+0

Entschuldigung für die späte Antwort. Ich werde es versuchen. Es kann eine Weile dauern, zu beweisen, dass die Grafikfehler nicht mehr passieren, aber wenn es Dinge repariert, werde ich sicherstellen, dass Sie das Kopfgeld an Sie vergeben. – HomerPlata

+0

Wird als Antwort posten. – azizbekian

Antwort

2

Hardware-Schichten Nehmen:

setLayerType(View.LAYER_TYPE_HARDWARE, null); 
+0

Hallo Aziz, ich bekomme immer noch ein paar Grafikprobleme mit dem vorgeschlagenen Fix - obwohl ich denke, dass es das Display ein bisschen schöner gemacht hat, also werde ich immer noch deine Antwort abstimmen. Vielen Dank. – HomerPlata

+0

Ich habe das Kopfgeld vergeben, da ich gerade erst gemerkt habe, dass es in den Äther verschwunden wäre, wenn ich es nicht getan hätte, aber ich bin immer noch auf der Suche nach einer Antwort. – HomerPlata