Hoe u lokaal een systeemtrace kunt vastleggen op Android Pie

systrace is een krachtige tool die timinginformatie verzamelt van processen die op Android draaien. Hier leest u hoe u een systeemtracering op Android Pie vastlegt.

Tracing is een hulpmiddel van onschatbare waarde waarmee ontwikkelaars inzicht kunnen krijgen in de impact die verschillende wijzigingen op een systeem hebben en dat aanwijzingen kan geven om de hoofdoorzaak van problemen te identificeren.

systeem is zo'n krachtig traceringshulpmiddel dat timinginformatie uit processen verzamelt draait op een Android-apparaat. systeem werd veelvuldig gebruikt door de Android-prestatieteam bij Google om de prestaties op de Google Pixel-telefoons te optimaliseren. ik heb gebruikt systeem om bijvoorbeeld de impact van veranderingen in de kernelplanner op taakplaatsingen op CPU's te inspecteren, en om mogelijke oorzaken van janks te identificeren. systeem kan een grote verscheidenheid aan gegevens vastleggen, waaronder CPU-planning, CPU-frequentie, schijf-I/O, grafische afbeeldingen, Binder-activiteit en nog veel meer. De informatie wordt gecombineerd tot een rapport dat kan worden geanalyseerd in Google Chrome.

Vóór Android Pie was dit de enige manier om sporen vast te leggen systeem was om een ​​Android-apparaat op een computer aan te sluiten en van daaruit systrace uit te voeren, meestal vanaf een terminal. Niet iedereen heeft echter voortdurend toegang tot een computer, of de kennis en het vertrouwen om systrace uit te voeren.

Met de release van Android Pie werd dit ongemak verholpen met de introductie van de Traceur-pakket, een tool die onbewerkte traceergegevens vastlegt rechtstreeks op een Android-telefoon. Traceur is beschikbaar als de optie “Systeemtracing” in de ontwikkelaarsopties van de app Instellingen, en de onbewerkte traceergegevens die door Traceur op het apparaat zijn vastgelegd, kunnen op een later tijdstip worden geconverteerd door systeem naar een HTML-rapport voor analyse.

Met de nieuwe optie “Systeemtracing” kunnen gebruikers eenvoudig traceringen vastleggen en delen met ontwikkelaars, zonder dat ze daadwerkelijk hoeven te weten hoe ze moeten werken systeem op een computer. Ontwikkelaars profiteren van de mogelijkheid om zonder computer sporen vast te leggen en later op hun gemak te analyseren. De volledige onbewerkte traceergegevens verzameld door “System Tracing” zijn ook aanzienlijk kleiner in omvang dan het HTML-rapport dat wordt gegenereerd door systeem, waardoor de onbewerkte traceergegevens beter geschikt zijn om op te slaan en te delen met anderen.

Gids: Systeemsporen verzamelen en analyseren

Zorg er eerst voor dat je een apparaat hebt waarop Android Pie draait en een computer waarop Python 2 is geïnstalleerd. De volgende instructies zijn uitgevoerd op een OnePlus 6 met de nieuwste OxygenOS Android Pie-bèta.

  1. Schakel ontwikkelaarsopties in de app Instellingen in en open vervolgens de optie "Systeemtracing". in het gedeelte 'Foutopsporing' van Opties voor ontwikkelaars.
  2. Wanneer u Systeemtracing opent, krijgt u een schakelaar te zien om Systeemtracing in te schakelen, en de mogelijkheid om de traceringscategorieën en de buffergrootte van de traceringen aan te passen. Voor deze demonstratie worden de standaardcategorieën gebruikt, wat in de meeste gevallen voldoende is. Met de schakelaar “Tegel snelle instellingen tonen” kan het traceren worden gestart/gestopt via Snelle instellingen. Ik heb dit voor deze handleiding ingeschakeld.
  3. Om te beginnen met het vastleggen van een trace, tikt u op de onlangs toegevoegde tegel voor snelle instellingen ‘Trace opnemen’.
  4. Wanneer u klaar bent met het traceren van een testgeval, kunt u het traceren stoppen via het meldingenpaneel.
  5. Geweldig! U hebt met succes een onbewerkt spoor vastgelegd. Er verschijnt een melding waarin u wordt gevraagd het onbewerkte traceerbestand te delen. U zou het op uw apparaat moeten kunnen opslaan, naar online opslag kunnen uploaden, naar iemand kunnen e-mailen, enz. Als alternatief kunt u ADB gebruiken om de tracering rechtstreeks van uw apparaat naar uw computer te halen (adb pull /data/local/traces/). Ga je gang en sla het tracebestand op je computer op.
  6. Het onbewerkte traceerbestand bevat het opgemaakte .ctrace-formaat. Het kan niet in zijn ruwe vorm worden geïnterpreteerd. We kunnen gebruiken systeem om een ​​nuttiger en begrijpelijker interactief HTML-rapport te genereren op basis van ons onbewerkte traceerbestand.
  7. Wij gebruiken de nieuwste versie van systeem van de katapult projectrepo. In een terminaltoepassing kloon je de repository (zorg ervoor dat git is geïnstalleerd):
    git clone https://github.com/catapult-project/catapult.git
  8. Om het HTML-rapport te genereren op basis van ons onbewerkte traceerbestand met behulp van systeem, voer de volgende opdrachten in:
    python2 catapult/systrace/bin/systrace --from-file=<pathtorawtracefile>
    Er wordt een HTML-bestand gegenereerd met dezelfde naam als het onbewerkte traceringsbestand. Let op: systrace ondersteunt op het moment van schrijven alleen Python 2.
  9. Om het HTML-rapport te bekijken, start u de Google Chrome-browser en gaat u naar de URL ‘chrome://tracing’. Open het HTML-rapport niet rechtstreeks in Google Chrome, omdat het leeg lijkt.
  10. Klik op “Laden” en open het HTML-rapportbestand vanuit het pop-upvenster. Voila! Uw traceerrapport is nu beschikbaar voor inspectie.

Wat is het volgende?

Nu u een trace kunt vastleggen en een systeem rapport, is het belangrijk om te begrijpen hoe u de gegevens in het rapport moet lezen en interpreteren. Om te beginnen raad ik aan om “Begrip Systrace”, en kijken naar “Android-prestaties: een overzicht (Google I/O '17)" En "Systrace voor Spellen" zien systeem in actie.

Dit is een gastpost die oorspronkelijk is geschreven door Josh Choo, ook bekend als XDA Recognized Developer lekker. Het bericht is lichtelijk aangepast qua opmaak.