systrace är ett kraftfullt verktyg som samlar in tidsinformation från processer som körs på Android. Så här fångar du ett systemspår på Android Pie.
Spårning är ett ovärderligt verktyg som gör det möjligt för utvecklare att förstå vilken inverkan olika förändringar har på ett system och kan ge ledtrådar för att identifiera grundorsaken till problem.
systrace är ett sådant kraftfullt spårningsverktyg som samlar in tidsinformation från processer körs på en Android-enhet. systrace användes flitigt av Android prestationsteam hos Google för att optimera prestandan på Google Pixel-telefonerna. jag har använt systrace för att inspektera effekten av ändringar i kärnplaneraren på uppgiftsplaceringar på processorer, till exempel, och för att identifiera möjliga orsaker till skräp. systrace kan fånga en mängd olika data, inklusive CPU-schemaläggning, CPU-frekvens, disk I/O, grafik, Binder-aktivitet och mycket mer. Informationen kombineras till en rapport som kan analyseras i Google Chrome.
Innan Android Pie, det enda sättet att fånga spår med
systrace var att koppla upp en Android-enhet till en dator och köra systrace därifrån – vanligtvis från en terminal. Det är dock inte alla som har konstant tillgång till en dator, eller kunskapen och självförtroendet att köra systrace.Med lanseringen av Android Pie åtgärdades denna olägenhet med introduktionen av Traceur-paket, som är ett verktyg som fångar upp rå spårningsdata direkt på en Android-telefon. Traceur är tillgängligt som alternativet "Systemspårning" i utvecklaralternativen i appen Inställningar, och den råa spårningsdata som fångas på enheten av Traceur kan vid ett senare tillfälle konverteras av systrace till en HTML-rapport för analys.
Det nya alternativet "Systemspårning" gör det möjligt för användare att enkelt fånga och dela spår med utvecklare, utan att behöva veta hur man kör systrace på en dator. Utvecklare drar nytta av möjligheten att fånga spår utan dator och analysera senare när det passar dem. Den fullständiga råspårningsdata som samlas in av "Systemspårning" är också betydligt mindre i storlek än HTML-rapporten som genereras av systrace, vilket därför gör den råa spårningsdatan mer lämpad att lagra och dela med andra.
Guide: Samla system och analysera systemspår
Se först till att du har en enhet som kör Android Pie och en dator med Python 2 installerat. Följande instruktioner utfördes på en OnePlus 6 som kör den senaste OxygenOS Android Pie-betan.
- Aktivera utvecklaralternativ i appen Inställningar och öppna sedan alternativet "Systemspårning". i avsnittet "Felsökning" i Utvecklaralternativ.
- När du öppnar Systemspårning kommer du att presenteras en växel för att aktivera Systemspårning och möjligheten att anpassa spårningskategorierna och buffertstorleken för spåren. För denna demonstration används standardkategorierna, vilket är tillräckligt i de flesta fall. En "Visa snabbinställningsruta" gör att spårning kan startas/stoppas via snabbinställningar. Jag har aktiverat detta för den här guiden.
- För att börja fånga ett spår, tryck på den nyligen tillagda "Record trace" snabbinställningsrutan.
- När du är klar med att spåra ett testfall kan du stoppa spårningen från meddelandepanelen.
- Bra! Du har lyckats fånga ett råspår. Ett meddelande kommer att uppmana dig att dela den råa spårningsfilen. Du bör kunna spara den på din enhet, ladda upp den till onlinelagring, e-posta den till någon osv. Alternativt kan du använda ADB för att direkt dra spåret från din enhet till din dator (
adb pull /data/local/traces/
). Fortsätt och spara spårningsfilen på din dator. - Den råa spårningsfilen har den uppbyggda .ctrace-format. Den kan inte tolkas i sin råa form. Vi kan använda systrace att generera en mer användbar och begriplig interaktiv HTML-rapport från vår råspårningsfil.
- Vi kommer att använda den senaste versionen av systrace från katapult projekt repo. I en terminalapplikation, klona repet (se till att git är installerat):
git clone https://github.com/catapult-project/catapult.git
- För att generera HTML-rapporten från vår råspårningsfil med hjälp av systrace, ange följande kommandon:
En HTML-fil med samma namn som den råa spårningsfilen kommer att genereras. Obs: systrace stöder endast Python 2 i skrivande stund.python2 catapult/systrace/bin/systrace --from-file=<pathtorawtracefile>
- För att se HTML-rapporten, starta webbläsaren Google Chrome och öppna webbadressen "chrome://tracing". Öppna inte HTML-rapporten direkt i Google Chrome eftersom den kommer att visas tom.
- Klicka på "Ladda" och öppna HTML-rapportfilen från popup-dialogen. Voila! Din spårningsrapport är nu tillgänglig för inspektion.
Vad kommer härnäst?
Nu när du kan fånga ett spår och generera en systrace rapport är det viktigt att förstå hur man läser och tolkar data som presenteras i rapporten. Till att börja med rekommenderar jag att du läser "Förståelse Systrace", och tittar på "Android Performance: An Overview (Google I/O '17)" och "Systrace för spel" att se systrace i aktion.
Detta är ett gästinlägg som ursprungligen skrevs av Josh Choo, även känd som XDA Recognized Developer joshuous. Inlägget var lätt redigerat för formatering.