Sådan fanges et systemspor lokalt på Android Pie

systrace er et kraftfuldt værktøj, der indsamler timingoplysninger fra processer, der kører på Android. Sådan fanger du et systemspor på Android Pie.

Sporing er et uvurderligt værktøj, der gør det muligt for udviklere at forstå den indvirkning, som forskellige ændringer har på et system, og kan give spor til at identificere årsagen til problemer.

systrace er et sådant kraftfuldt sporingsværktøj, der indsamler timingoplysninger fra processer kører på en Android-enhed. systrace blev flittigt brugt af Android performance team hos Google for at optimere ydeevnen på Google Pixel-telefonerne. jeg har brugt systrace at inspicere virkningen af ​​kerneplanlægningsændringer på opgaveplaceringer på CPU'er, for eksempel, og for at identificere mulige årsager til janks. systrace kan fange en lang række data, herunder CPU-planlægning, CPU-frekvens, disk I/O, grafik, Binder-aktivitet og meget mere. Oplysningerne kombineres til en rapport, der kan analyseres i Google Chrome.

Før Android Pie, den eneste måde at fange spor med

systrace var at tilslutte en Android-enhed til en computer og køre systrace derfra - normalt fra en terminal. Det er dog ikke alle, der har konstant adgang til en computer eller viden og selvtillid til at køre systrace.

Med udgivelsen af ​​Android Pie blev denne ulejlighed løst med introduktionen af Traceur-pakke, som er et værktøj, der fanger rå sporingsdata direkte på en Android-telefon. Traceur er tilgængelig som "System Tracing"-muligheden i Developer Options i appen Indstillinger, og de rå sporingsdata, der er fanget på enheden af ​​Traceur, kan på et senere tidspunkt konverteres af systrace til en HTML-rapport til analyse.

Den nye "System Tracing"-mulighed giver brugerne mulighed for nemt at fange og dele spor med udviklere uden at skulle vide, hvordan man kører systrace på en computer. Udviklere drager fordel af muligheden for at fange spor uden en computer og analysere senere, når det passer dem. De komplette rå sporingsdata indsamlet af "System Tracing" er også væsentligt mindre i størrelse end HTML-rapporten genereret af systrace, hvilket derfor gør råsporingsdataene mere velegnede til lagring og deling med andre.

Vejledning: Indsamling af system og analyse af systemspor

For det første skal du sikre dig, at du har en enhed, der kører Android Pie, og en computer med Python 2 installeret. Følgende instruktioner blev udført på en OnePlus 6, der kører den seneste OxygenOS Android Pie beta.

  1. Aktiver udviklerindstillinger i appen Indstillinger, og få adgang til indstillingen "Systemsporing". i afsnittet "Fejlretning" i Udviklerindstillinger.
  2. Når du åbner System Tracing, vil du blive præsenteret for en skifte til at aktivere System Tracing og muligheden for at tilpasse sporingskategorierne og bufferstørrelsen af ​​sporene. Til denne demonstration bruges standardkategorierne, hvilket er tilstrækkeligt i de fleste tilfælde. En "Vis hurtige indstillinger flise" tillader sporing at blive startet/stoppet via hurtige indstillinger. Jeg har aktiveret dette for denne vejledning.
  3. For at begynde at fange et spor, tryk på den nyligt tilføjede "Optag spor" hurtige indstillingsflise.
  4. Når du er færdig med at spore en testsag, kan du stoppe sporingen fra meddelelsespanelet.
  5. Store! Du har med succes fanget et råspor. En meddelelse vil bede dig om at dele den rå sporingsfil. Du bør være i stand til at gemme det på din enhed, uploade det til onlinelager, e-maile det til nogen osv. Alternativt kan du bruge ADB til direkte at trække sporet fra din enhed til din computer (adb pull /data/local/traces/). Gå videre og gem sporingsfilen på din computer.
  6. Den rå sporingsfil har den sammensatte .ctrace-format. Det kan ikke tolkes i sin rå form. Vi kan bruge systrace at generere en mere nyttig og forståelig interaktiv HTML-rapport fra vores rå sporingsfil.
  7. Vi vil bruge den nyeste version af systrace fra katapult projekt repo. I en terminalapplikation skal du klone repo'en (sørg for, at git er installeret):
    git clone https://github.com/catapult-project/catapult.git
  8. For at generere HTML-rapporten fra vores rå sporingsfil ved hjælp af systrace, indtast følgende kommandoer:
    python2 catapult/systrace/bin/systrace --from-file=<pathtorawtracefile>
    En HTML-fil med samme navn som den rå sporingsfil vil blive genereret. Bemærk: systrace understøtter kun Python 2 i skrivende stund.
  9. For at se HTML-rapporten skal du starte Google Chrome-browseren og få adgang til URL'en "chrome://tracing". Åbn ikke HTML-rapporten direkte i Google Chrome, da den vises tom.
  10. Klik på "Load" og åbn HTML-rapportfilen fra pop op-dialogen. Voila! Din sporingsrapport er nu tilgængelig for inspektion.

Hvad er det næste?

Nu hvor du er i stand til at fange et spor og generere en systrace rapport, er det vigtigt at forstå, hvordan man læser og fortolker de data, der præsenteres i rapporten. Til at begynde med anbefaler jeg at læse "Forståelse Systrace", og ser "Android Performance: An Overview (Google I/O '17)" og "Systrace til spil" at se systrace i aktion.

Dette er et gæsteindlæg, der oprindeligt blev skrevet af Josh Choo, også kendt som XDA Recognized Developer joshuous. Indlægget blev let redigeret til formatering.