|
1 | | -# SystraceForBlog |
| 1 | +# Trace for Blog (SystraceForBlog) |
| 2 | + |
| 3 | +[简体中文](README.zh-CN.md) |
| 4 | + |
| 5 | +Perfetto, legacy Systrace HTML, and ART method-trace case files used by |
| 6 | +[Android Performance](https://www.androidperformance.com/) articles. The legacy |
| 7 | +repository name is preserved because published articles link to its directories. |
| 8 | + |
| 9 | +<!-- android-performance-ecosystem:start --> |
| 10 | +## Android performance ecosystem |
| 11 | + |
| 12 | +This repository is one part of the [Android Performance Ecosystem](https://github.com/Gracker/android-performance-ecosystem): an optional path from instrumentation and capture to analysis, system knowledge, and reproducible cases. |
| 13 | + |
| 14 | +| Stage | Project | Purpose | Address | |
| 15 | +| --- | --- | --- | --- | |
| 16 | +| Instrument | [TraceFix](https://github.com/Gracker/TraceFix) | Inject app-side android.os.Trace sections at build time so method work is visible at runtime. | [GitHub](https://github.com/Gracker/TraceFix) | |
| 17 | +| Capture and measure | [Perfetto Tools](https://github.com/Gracker/perfetto-tools) | Capture repeatable Perfetto traces and collect FPS or Simpleperf measurements. | [GitHub](https://github.com/Gracker/perfetto-tools) | |
| 18 | +| Analyze | [SmartPerfetto](https://github.com/Gracker/SmartPerfetto) | Investigate traces with an AI-assisted Web UI, CLI, reports, sessions, comparisons, and evidence workflow. | [GitHub](https://github.com/Gracker/SmartPerfetto) | |
| 19 | +| Agent analysis | [Perfetto Skills](https://github.com/Gracker/Perfetto-Skills) | Give agents a portable Perfetto analysis Skill for Android, Linux, and Chromium, with selected assets synchronized through pinned workflows. | [GitHub](https://github.com/Gracker/Perfetto-Skills) | |
| 20 | +| Learn | [Android Performance Blog](https://github.com/Gracker/Gracker.github.io) | Teach Perfetto and Systrace analysis through articles, system explanations, and case studies. | [GitHub](https://github.com/Gracker/Gracker.github.io) · [Website](https://www.androidperformance.com/) | |
| 21 | +| System knowledge | Android Internal Wiki | An alpha knowledge base for Android mechanisms from App to Framework, Native, and Kernel. | **Coming soon** | |
| 22 | +| Reproduce | [Trace for Blog (SystraceForBlog)](https://github.com/Gracker/SystraceForBlog) | Provide the Perfetto, Systrace, and related case files used by articles for hands-on reproduction. | [GitHub](https://github.com/Gracker/SystraceForBlog) | |
| 23 | +<!-- android-performance-ecosystem:end --> |
| 24 | + |
| 25 | +## Case catalog |
| 26 | + |
| 27 | +[`catalog.json`](catalog.json) is the machine-readable inventory. It covers all |
| 28 | +15 existing artifacts with byte size, SHA-256, content format, packaging, |
| 29 | +article mapping, provenance, license/consent state, and privacy/sanitization |
| 30 | +review state. |
| 31 | + |
| 32 | +| Case ID | Area | Artifacts | Related article | |
| 33 | +| --- | --- | --- | --- | |
| 34 | +| `perfetto-aosp-demo-scroll` | Scrolling / rendering | 1 Perfetto protobuf | [MainThread and RenderThread](https://www.androidperformance.com/2025/08/02/Android-Perfetto-07-MainThread-And-RenderThread/) | |
| 35 | +| `perfetto-wechat-moments-jank` | Scrolling jank | Perfetto protobuf + ZIP copy | Not recorded | |
| 36 | +| `systrace-main-render-wangzhe` | MainThread / RenderThread | Systrace HTML ZIP + ART method trace | [Article](https://www.androidperformance.com/2019/11/06/Android-Systrace-MainThread-And-RenderThread/) | |
| 37 | +| `systrace-main-render-flutter-wanandroid` | Flutter rendering | Systrace HTML ZIP + ART method trace | [Article](https://www.androidperformance.com/2019/11/06/Android-Systrace-MainThread-And-RenderThread/) | |
| 38 | +| `systrace-binder-app-launch` | Binder | 1 Systrace HTML ZIP | [Article](https://www.androidperformance.com/2019/12/06/Android-Systrace-Binder/) | |
| 39 | +| `systrace-input-launcher-scroll` | Input | 1 Systrace HTML ZIP | [Article](https://www.androidperformance.com/2019/11/04/Android-Systrace-Input/) | |
| 40 | +| `systrace-input-list-jank` | Input / jank | 1 Systrace HTML ZIP | [Article](https://www.androidperformance.com/2019/11/04/Android-Systrace-Input/) | |
| 41 | +| `systrace-smooth-launchers` | Scrolling smoothness | 3 Systrace HTML ZIPs | [Series](https://www.androidperformance.com/2021/04/24/android-systrace-smooth-in-action-1/) | |
| 42 | +| `systrace-twitter-jank` | Scrolling jank | 1 Systrace HTML ZIP | Not recorded | |
| 43 | +| `systrace-triple-buffer` | Buffering / rendering | 1 ZIP containing 5 Systrace HTML files | [Article](https://www.androidperformance.com/2019/12/15/Android-Systrace-Triple-Buffer/) | |
| 44 | + |
| 45 | +## Use a case |
| 46 | + |
| 47 | +Analyze a Perfetto protobuf with SmartPerfetto: |
| 48 | + |
| 49 | +```bash |
| 50 | +smp run "Android_Perfetto/demo_app_aosp_scroll.perfetto-trace" "Analyze scrolling jank" |
| 51 | +``` |
| 52 | + |
| 53 | +Or ask an agent with Perfetto Skills to use |
| 54 | +`$perfetto-performance-analysis` on the same file. Legacy `*.html.zip` files are |
| 55 | +self-contained Systrace pages: inspect the archive first, extract locally, then |
| 56 | +open the HTML in a browser. ART `*.trace` files are method traces, not Perfetto |
| 57 | +protobufs. |
| 58 | + |
| 59 | +## Data boundary |
| 60 | + |
| 61 | +All current artifacts are historical. Their original license, consent, privacy |
| 62 | +review, or sanitization record was not preserved, so the catalog deliberately |
| 63 | +uses `null` and `pending`. Public visibility does not create a blanket data |
| 64 | +license. Read [DATA_POLICY.md](DATA_POLICY.md) before using or contributing data. |
| 65 | +`LICENSE-CODE` covers only original documentation and validation code, not the |
| 66 | +trace/archive artifacts or linked articles. |
| 67 | + |
| 68 | +## Verify |
| 69 | + |
| 70 | +```bash |
| 71 | +python3 scripts/validate_catalog.py |
| 72 | +python3 -m unittest discover -s tests -v |
| 73 | +git diff --check |
| 74 | +``` |
| 75 | + |
| 76 | +The validator checks inventory completeness, hashes, sizes, required provenance |
| 77 | +fields, safe relative paths, ZIP member paths, encryption, decompressed size, |
| 78 | +member count, and compression ratio without extracting archives to disk. |
0 commit comments