Slik fanger du et systemspor lokalt på Android Pie

systrace er et kraftig verktøy som samler inn tidsinformasjon fra prosesser som kjører på Android. Slik fanger du et systemspor på Android Pie.

Sporing er et uvurderlig verktøy som gjør det mulig for utviklere å forstå hvilken innvirkning ulike endringer har på et system og kan gi ledetråder for å identifisere årsaken til problemer.

systrace er et så kraftig sporingsverktøy som samler inn tidsinformasjon fra prosesser kjører på en Android-enhet. systrace ble mye brukt av Android ytelsesteam hos Google for å optimalisere ytelsen på Google Pixel-telefonene. jeg har brukt systrace for å inspisere virkningen av endringer i kjerneplanleggeren på oppgaveplasseringer på CPUer, for eksempel, og for å identifisere mulige årsaker til feil. systrace kan fange opp et bredt utvalg av data, inkludert CPU-planlegging, CPU-frekvens, disk I/O, grafikk, Binder-aktivitet og mye mer. Informasjonen kombineres til en rapport som kan analyseres i Google Chrome.

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

systrace var å koble en Android-enhet til en datamaskin og kjøre systrace derfra - vanligvis fra en terminal. Imidlertid har ikke alle konstant tilgang til en datamaskin, eller kunnskapen og selvtilliten til å kjøre systrace.

Med utgivelsen av Android Pie ble denne ulempen løst med introduksjonen av Traceur-pakke, som er et verktøy som fanger opp rå sporingsdata direkte på en Android-telefon. Traceur er tilgjengelig som "System Tracing"-alternativet i Developer Options i Innstillinger-appen, og de rå sporingsdataene som er fanget på enheten av Traceur kan på et senere tidspunkt konverteres av systrace til en HTML-rapport for analyse.

Det nye alternativet "System Tracing" lar brukere enkelt fange opp og dele spor med utviklere, uten å måtte vite hvordan de skal kjøre systrace på en datamaskin. Utviklere drar nytte av muligheten til å fange opp spor uten en datamaskin og analysere senere når det passer det. De fullstendige råsporingsdataene som samles inn av "System Tracing" er også betydelig mindre i størrelse enn HTML-rapporten generert av systrace, som derfor gjør råsporingsdataene mer egnet for lagring og deling med andre.

Veiledning: Samle inn system og analysere systemspor

For det første, sørg for at du har en enhet som kjører Android Pie og en datamaskin med Python 2 installert. Følgende instruksjoner ble utført på en OnePlus 6 som kjører den nyeste OxygenOS Android Pie beta.

  1. Aktiver utvikleralternativer i Innstillinger-appen, og åpne deretter alternativet "Systemsporing". i "Feilsøking"-delen av utvikleralternativer.
  2. Når du åpner System Tracing, vil du bli presentert en bryter for å aktivere System Tracing, og muligheten til å tilpasse sporingskategoriene og bufferstørrelsen til sporene. For denne demonstrasjonen brukes standardkategoriene, noe som er tilstrekkelig i de fleste tilfeller. En "Vis hurtiginnstillingsbrikke" gjør det mulig å starte/stoppe sporing via hurtiginnstillinger. Jeg har aktivert dette for denne veiledningen.
  3. For å begynne å fange et spor, trykk på hurtiginnstillingsflisen "Record trace" som nylig ble lagt til.
  4. Når du er ferdig med å spore en testsak, kan du stoppe sporingen fra varslingsskjermen.
  5. Flott! Du har fanget et råspor. Et varsel vil be deg om å dele den rå sporingsfilen. Du skal kunne lagre den på enheten din, laste den opp til nettlagring, sende den til noen via e-post osv. Alternativt kan du bruke ADB til å trekke sporet direkte fra enheten til datamaskinen din (adb pull /data/local/traces/). Fortsett og lagre sporingsfilen på datamaskinen din.
  6. Råsporingsfilen har sammensatt .ctrace-format. Det kan ikke tolkes i sin rå form. Vi kan bruke systrace å generere en mer nyttig og forståelig interaktiv HTML-rapport fra vår råsporingsfil.
  7. Vi vil bruke siste versjon av systrace fra katapult prosjekt repo. I en terminalapplikasjon, klon repoen (sørg for at git er installert):
    git clone https://github.com/catapult-project/catapult.git
  8. For å generere HTML-rapporten fra vår rå sporingsfil ved hjelp av systrace, skriv inn følgende kommandoer:
    python2 catapult/systrace/bin/systrace --from-file=<pathtorawtracefile>
    En HTML-fil med samme navn som den rå sporingsfilen vil bli generert. Merk: systrace støtter kun Python 2 i skrivende stund.
  9. For å se HTML-rapporten, start Google Chrome-nettleseren og åpne nettadressen "chrome://tracing". Ikke åpne HTML-rapporten direkte i Google Chrome fordi den vises tom.
  10. Klikk på "Last inn" og åpne HTML-rapportfilen fra popup-dialogen. Voila! Din sporingsrapport er nå tilgjengelig for inspeksjon.

Hva blir det neste?

Nå som du er i stand til å fange et spor og generere en systrace rapporten er det viktig å forstå hvordan man leser og tolker dataene som presenteres i rapporten. Til å begynne med anbefaler jeg å lese "Forståelse Systrace", og ser på "Android-ytelse: en oversikt (Google I/O '17)" og "Systrace for spill" å se systrace i aksjon.

Dette er et gjesteinnlegg som opprinnelig ble skrevet av Josh Choo, også kjent som XDA Recognized Developer joshuous. Innlegget ble lett redigert for formatering.