2017-08-31 1 views
0

This erklärt VSYNC, aber das Tempo ist sehr schnell, und ich bin nicht in der Lage, eine andere gute Ressource zu diesem Thema zu finden.Was ist VSYNC in android

Was ich habe, ist dies;

VSYNC geschieht bei jeder 16ms, und alle der Rahmenkomponenten INPUTANIMATIONLAYOUTRECORD DRAW & RENDER passiert nur 1 in dieser Zeit so mit VSYNC der Rahmen Rendering synchronisiert ist, und es schränkt Rahmen aus in der angegebenen Zeit neu erstellt.

Bitte führen Sie mich, wenn dieses Verständnis korrekt ist oder nicht.

+1

Es kann helfen, dieses Google IO Video auf Project Butter zu sehen: https://youtu.be/Q8m9sHdyXnE –

+0

@MorrisonChang Danke !! – Kirmani88

Antwort

1

VSYNC ist eine vertikale Synchronisation. Es ist ein Begriff für Fernseher, Monitore, Displays, etc. Sie können es im Grunde als die Aktualisierungsrate, wie oft das Display tatsächlich aktualisiert wird. Die Anzeige kann nur auf dem VSYNC-Signal aktualisiert werden, so dass Änderungen an der Anzeige im Wesentlichen bis zum nächsten VSYNC zusammengefasst werden.

Der Begriff kommt von Oldschool-TVs, wo der VSYNC tatsächlich 1 Reihe von oben nach unten des Fernsehers wechseln würde. Deshalb sah man auf einigen alten Röhrenfernsehern eine Veränderung, die sich über den Bildschirm bewegte.

+0

und 'VSYNC' tritt nach jeder' 16ms' auf, und in einzelnen 'VSYNC' können mehrere Frames gerendert werden? Sagen wir mal, ich habe 8 Buttons in einer Ansicht, es gibt keine Animation, also werden sie in '16ms' zeichnen. In diesem Fall 'VSYNC' wird nur einmal, oder wenn es eine komplexe Ansicht' Facebook' App, dann wie 'VSYNC' Frames Rendern Position zu verteilen, und Danke für so eine nette Erklärung. – Kirmani88

+1

Im Grunde denken Sie von einer sehr hohen Ebene auf diese Weise - wenn Sie zeichnen, zeichnen Sie tatsächlich zu einer Bitmap im Speicher, ob Sie denken, dass Sie es sind oder nicht. Alle 16 ms nimmt Android diese Bitmap und speichert sie auf dem Gerät. Wenn Sie in diesen 16 ms 10 Bilder gezeichnet haben, wird nur das letzte Bild gezeichnet. Wo Sie auf dem Bildschirm zeichnen, spielt keine Rolle, alles ist gepuffert. (Wenn Sie auf einer Hardware-Ebene gearbeitet haben, ist das vielleicht nicht wahr. Aber auf einem modernen Betriebssystem muss das niemand über der Ebene des Gerätetreibers berücksichtigen). –

+0

Ich habe diesen Teil nicht verstanden, 'Wenn Sie in diesen 16ms 10 Bilder gezeichnet haben, wird nur das letzte gezeichnet 'nur das letzte Bild wird gezeichnet? – Kirmani88