Messen, Layout und Zeichnen von Zeiten in Hierarchyviewer (besser) Explained

Ich versuche, die Hierarchieansicht zu verstehen.

Also las ich auf developer.android.com die Bedeutung der drei Punkte:

  • Konfigurieren von res srcDirs für androidTest sourceSet
  • Alibaba Android App verursacht Absturz, wenn Sie versuchen, eine URL zu öffnen
  • Spielen Sie vorbespielten Audio in einen Sprachanruf
  • Update sqlite Datenbank, wenn Server-Datenbank aktualisiert wird
  • Ändern der Standard-Download-Position
  • Gibt es eine Möglichkeit, den Fortschritt mit HttpUrlConncetion korrekt hochzuladen
  • Grün: Für diesen Teil der Renderzeit ist diese Ansicht in den schnelleren 50% aller View-Objekte im Baum. Zum Beispiel bedeutet ein grüner Punkt für die Messzeit, dass diese Ansicht eine schnellere Messzeit als 50% der Ansichtsobjekte im Baum hat.

    Gelb: Für diesen Teil der Renderzeit ist diese Ansicht in den langsameren 50% aller View-Objekte im Baum. Beispielsweise bedeutet ein gelber Punkt für die Layoutzeit, dass diese Ansicht eine langsamere Layoutzeit als 50% der View-Objekte im Baum hat.

    Rot: Für diesen Teil der Renderzeit ist diese Ansicht die langsamste im Baum. Zum Beispiel bedeutet ein roter Punkt für die Ziehzeit, dass diese Ansicht die meisten Zeit nimmt, um alle View-Objekte im Baum zu zeichnen.

    Wenn ich mich nicht irre, bedeutet das nicht, dass es immer höchstens 3 Ansichten mit roten Punkten geben sollte (die langsamsten Ansichten für jede Kategorie: Maß, Layout, Zeichnen) und dann die Hälfte der Ansichten gelb und halb grün.

    Zuerst sehe ich mehr als 3 Ansichten mit roten Punkten und ich verstehe nicht warum.

    Zweitens sehe ich nicht, wie diese Werte helfen können, die Leistung zu verbessern, wenn man bedenkt, dass es sich dabei um relative Werte handelt. Es wird immer die Hälfte der Ansichten schneller als die andere Hälfte.

    Und wenn ich die Baumansicht betrachte, sehe ich die Aussicht mit visibility gone , die eine kleine Zugzeit haben. Sollten die GANE-Ansichten nicht völlig ignoriert werden?

  • Kann keine Aktivität im Android Library Module starten
  • SimpleDateFormat 24h
  • Welches Paket für MultiDexTestRunner? Android.support.multidex oder com.android.test.runner
  • Android: Bitmap recycle () Wie funktioniert es?
  • Wie Pop-up der "? 123" Android-Tastatur
  • Etwas seltsames passiert beim Scrollen RecyclerView zu schnell
  • One Solution collect form web for “Messen, Layout und Zeichnen von Zeiten in Hierarchyviewer (besser) Explained”

    Wenn ich mich nicht irre, bedeutet das nicht, dass es immer höchstens 3 Ansichten mit roten Punkten geben sollte

    Ihre Logik ist gut, aber das Dokument darf nicht Baum sagen, sondern an einem Knoten. Die Tool4s-Funktion des Hierarchie-Viewers, den du benutzt, um diese 3 Punkte zu erhalten, ist der Profile Node , und das beginnt, den Baum vom ausgewählten Knoten (der willkürlichen Wurzel des Baumes) bis zum Ende des Baumes zu profilieren.

    Jede View , in eine ViewGroup ( Layouts basieren auf ViewGroup ), die mehr als eine View enthält, wird die Punkte haben. Im entgegengesetzten Fall gibt es keine Punkte.

    Also ist der Vergleich nur auf einer Knotenebene gemacht, nicht für den ganzen Baum, und darum kannst du mehr, dass drei rote Punkte (eine für Maß, eine für Layout, eine für die Auslosung) für den ganzen Baum, aber nicht für Ein Knoten.

    Zweitens sehe ich nicht, wie diese Werte helfen können, die Leistung zu verbessern, wenn man bedenkt, dass es sich dabei um relative Werte handelt. Es wird immer die Hälfte der Ansichten schneller als die andere Hälfte.

    Die Punkte helfen Ihnen zu wissen, welche Ansicht in einer Ansichtsgruppe am langsamsten zu Messen / Layout / Zeichnen ist. Um zu vermeiden, dass der Bildschirm einfriert, muss die Summe einer Operation unter 16,6 ms liegen (android sollte eine Bildrate von 60 Bildern pro Sekunde behalten).

    Der rote Punkt gibt dir nur einen Hinweis, über welche Ansicht du Profil profilieren solltest, aber das bedeutet nicht, dass eine Ansicht nicht optimiert ist, vor allem mit einer komplexen Hierarchie mit vielen Kindern.

    Auch wenn Sie eine benutzerdefinierte Ansicht erstellen müssen, kann der Hierarchie-Viewer Ihnen helfen zu wissen, ob Sie richtig ein schnelles Rendering machen.

    Ich sehe die Ansichten mit visibility gone , die eine kleine Zugzeit haben. Sollten die GANE-Ansichten nicht völlig ignoriert werden?

    Eine View die eine Sichtbarkeit auf GONE wird nicht onMeasure , onLayout und onDraw . Sie können es einfach ausprobieren, wenn Sie ein Widget wie ein TextView erweitern und diese Methoden mit einem Log.d überschreiben, um zu wissen, was passiert ist.

    Aber ich denke, die Zeit auf Unentschieden kommt, weil die Aussicht erstellt wird, dann an das Fenster anschließen und schließlich seine Sichtbarkeit ändern.

    Beispiel mit einem TextView. Erster Schritt wird das Objekt über den Java-Konstruktor public Text(Context context, AttributeSet attrs){...} , dann wird ein Aufruf zum Anhängen des Fensters mit protected void onAttachedToWindow() {...} und der Sichtbarkeit durchgeführt protected void onWindowVisibilityChanged(int visibility) {} mit protected void onWindowVisibilityChanged(int visibility) {}

    Nun, wenn du mehr deine Benutzeroberfläche debuggen möchtest, versuch es mit einem Telefon, das die Option Debug GPU Overdraw in die Entwickleroptionen (nicht alle das Telefon haben) oder mit dem Emulator. Sie können dann sehen, wo die App überzieht und dann Ihre Schnittstelle optimiert hat. Debug GPU Overdraw Komplettlösung

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.