CN

[Sticky] Blog Article Directory

Word count: 3.3kReading time: 20 min
2019/12/01
loading

The content of this blog mainly focuses on Android development and optimization-related topics, including the use of performance tools, Android App optimization knowledge, Android Framework explanations, and performance theory. Here is an organized directory for your reference. You can choose the parts you are interested in. This directory includes not only blog content but also some of my answers on Zhihu or historical discussions in The Performance, which has closed. This directory lists my original blog posts. Additionally, I have collected some excellent articles in Must-Knows for Android Performance Optimization, which I update periodically.

Articles come first; tools, Apps, and content projects are collected under Personal Projects. See also the AIW introduction and repository.

This directory will be updated with every blog post for easy reference. I will try my best to update weekly. Learning is endless; let’s encourage each other. If there is anything you want to know or if there are any inadequacies in the blog, please leave a message on the blog, Zhihu, Weibo, or WeChat. I will actively correct them.

Theoretical Knowledge

  1. Techniques, Philosophy, and Tools for Android Performance Optimization
  2. Historical Introduction to The Performance (Closed)
  3. The Performance Planet Tea Party - Episode 1
  4. Performance Design in OS Design

Perfetto Series

Perfetto has become my main tool for everyday Android performance analysis. Readers new to performance work have told me that its busy interface and many features leave them overwhelmed. They asked me to revisit the Systrace articles using Perfetto, so that is what I’m doing in this series.

Tools and versions — updated October 13, 2026: Systrace belongs to the legacy workflow. Android’s System Tracing utility saves Perfetto-format data on Android 10 (API 29) and later; use Perfetto UI and Trace Processor as the primary analysis path. See Android system tracing. Supported legacy Systrace data can also be imported; legacy-viewer availability and compatibility depend on the viewer version. Older thread-state, Vsync, Input, SurfaceFlinger, and Binder articles remain useful learning references, but their functions, timing, and limits must be read against each article’s Android version.

  1. Android Perfetto Series Index
  2. Android Perfetto Series 1: Introduction to Perfetto
  3. Android Perfetto Series 2: Capturing Perfetto Traces
  4. Android Perfetto Series 3: Getting Familiar with Perfetto View
  5. Android Perfetto Series 4: Opening Large Traces Locally Using the Command Line
  6. Android Perfetto Series 5: Android App Rendering Pipeline Based on Choreographer
  7. Android Perfetto Series 6: Why 120Hz? Advantages and Challenges of High Refresh Rate
  8. Android Perfetto Series 7 - MainThread and RenderThread Explained
  9. Android Perfetto Series 8: Deep Dive into Vsync Mechanism and Performance Analysis
  10. Android Perfetto Series 9 - CPU Information Explained
  11. Android Perfetto Series 10: Binder Scheduling and Lock Contention
  12. Android Perfetto Series 11: PerfettoSQL, Trace Processor and Regression Detection
  13. Android Perfetto Series 12: Trace Dataflow and Data Loss
  14. Android Perfetto Series 13: Perfetto SDK, Track Event and App Field Traces
  15. Android Perfetto Series 14: heapprofd and Memory Profiling
  16. Android Perfetto Series 15: Boot Traces and Long-running Field Tracing
  17. Android Perfetto Series 16: GPU, Power Counters and Hardware Bottlenecks
  18. Android Perfetto Series 17: Scenario Automation and Platform Tracing
  19. Android Perfetto Series 18: Input Response Latency
  20. Video (Bilibili) - Android Perfetto Basics and Case Studies
  21. Video (Bilibili) - Android Perfetto: Trace Graph Types - AOSP, WebView, Flutter + OEM System Optimization

Systrace Series

The Systrace tool is a powerful tool for analyzing Android performance issues. It can show the operation of the entire machine from a graphical perspective. The Systrace tool can not only analyze performance issues but is also excellent for learning the Framework, which is one reason I wrote this series.

If you start from this series today, use this mapping to move to the current Perfetto workflow:

Systrace article direction Perfetto reading path
Tool introduction, capture flow, UI operations Perfetto introduction / Capturing Perfetto traces / Perfetto View
Why 60 fps and high refresh rate Why 120Hz?
Choreographer, MainThread, RenderThread, jank analysis Choreographer rendering flow / MainThread and RenderThread
Vsync, SurfaceFlinger, Triple Buffer Vsync and performance analysis
CPU, Runnable, Running, Sleep CPU information
Binder, lock contention, SystemServer waits Binder scheduling and lock contention
  1. Introduction to Systrace
  2. Systrace Basics - Prerequisites for Systrace
  3. Systrace Basics - Why 60 fps?
  4. Android Systrace Basics - SystemServer Explained
  5. Systrace Basics - Input Explained
  6. Systrace Basics - Vsync Mechanism Explained
  7. Systrace Basics - Vsync-App: Detailed Explanation of Choreographer-Based Rendering Mechanism
  8. Systrace Basics - MainThread and RenderThread Explained
  9. Systrace Basics - Binder and Lock Contention Explained
  10. Systrace Basics - Triple Buffer Explained
  11. Systrace Basics - CPU Info Explained
  12. Systrace Basics - SurfaceFlinger Explained
  13. Systrace Smoothness in Action 1: Understanding Jank Principles
  14. Systrace Smoothness in Action 2: Case Analysis - MIUI Launcher Scroll Jank Analysis
  15. Systrace Smoothness in Action 3: FAQs During Jank Analysis
  16. Systrace Responsiveness in Action 1: Understanding Responsiveness Principles
  17. Systrace Responsiveness in Action 2: Responsiveness Analysis - Using App Startup as an Example
  18. Systrace Responsiveness in Action 3: Extended Knowledge on Responsiveness
  19. Systrace Thread CPU State Analysis Tips - Runnable
  20. Systrace Thread CPU State Analysis Tips - Running
  21. Systrace Thread CPU State Analysis Tips - Sleep and Uninterruptible Sleep

Smoothness

Smoothness refers to jank and dropped frames, often discussed as Smooth vs Jank.

  1. Overview of Jank and Dropped Frames in Android - Methodology
  2. Overview of Jank and Dropped Frames in Android - System Edition
  3. Overview of Jank and Dropped Frames in Android - App Edition
  4. Overview of Jank and Dropped Frames in Android - Low Memory Edition
  5. Reflections on Android System Smoothness
  6. A New Experience of Smoothness: Talking About 90Hz
  7. Android Performance Optimization - Overdraw (Part 1)
  8. Android Performance Optimization - Overdraw (Part 2)
  9. Follow-up on Android Performance Optimization
  10. Why Is the Weibo Experience Better on Huawei? A Technical Analysis and Reflection

Responsiveness

Responsiveness mainly refers to App cold, warm, and hot startup, interface navigation speed, screen on/off speed, etc., often discussed as Fast vs Slow.

  1. A Full Record of Android App Launch Optimization
  2. Zhihu: Save Your StartingWindow
  3. How to Calculate App Launch Time in Android?
  4. Android App Launch Optimization: Implementation and Principle of DelayLoad (Part 1)
  5. Android App Launch Optimization: Implementation and Principle of DelayLoad (Part 2)

ANR

Articles related to Android ANR.

  1. Android App ANR Series 1: Deep Dive into Android ANR Mechanism
  2. Android App ANR Series 2: ANR Analysis Methodology and Key Logs
  3. Android App ANR Series 3: ANR Case Studies

Memory

Articles related to Android memory optimization and its impact on the system.

  1. Impact of Low Memory on Performance in Android
  2. Does the Android System Not Release Memory?
  3. Memory Optimization Suggestions for Android Code - Resources
  4. Memory Optimization Suggestions for Android Code - Official Android Guide
  5. Memory Optimization Suggestions for Android Code - Official Java Guide
  6. Android Memory Optimization (1): Introduction to MAT
  7. Android Memory Optimization (2): Advanced MAT Usage
  8. Android Memory Optimization (3): Viewing Original Bitmap Images in MAT

Framework Knowledge

Framework-related content, including operating principles, problem-solving ideas, and optimization methods.

  1. With System Permissions, Can an App Really Do Whatever It Wants?
  2. Analyzing “Invalid Background Animation” Behavior in Android
  3. Android Framework Case Study: Who Killed the Launcher?
  4. Detailed Explanation of Activity Launch Modes in Android
  5. Detailed Explanation of Hardware Layer in Android
  6. Case Study: System-Wide Lag Caused by Android Accessibility Services
  7. RenderThread Workflow in Android hwui
  8. HashMap Source Code Analysis
  9. Detailed Explanation of Java Singleton Pattern
  10. Setting Up a Source Code Environment for Android System Development
  11. Analysis of Chain Wakeups in Android Apps
  12. An Incident Caused by a “Leap” Month - Analysis of Samsung System Reboots
  13. Android System Development (1): Downloading, Compiling, and Flashing Android 12 Source Code

App Development

Early App development articles. APIs, permissions, and tools have changed; read the version notes and replacement guidance before using an example.

  1. Android Bottom Navigation Specification 1: Usage
  2. Android Bottom Navigation Specification 2: Styles, Behaviors, and Specs
  3. Android Service: Developing Your Own Notification Center (1): Introduction to Accessibility Services
  4. Android Service: Developing Your Own Notification Center (2): Practical Accessibility Services
  5. Android Development: Log2File Utility
  6. Android: Ubuntu Fails to Find Devices for Adb Commands
  7. Android Tip: How to Prevent EditText from Automatically Gaining Focus

Personal Summary and Recommendations

Not related to technology, but can improve happiness and work efficiency.

  1. Reflections on 2023: Health, Career, and the Future
  2. 2021 Year in Review: Baby, Career, and Growth
  3. Gracker’s Sharp Tools
  4. Gracker’s Top Recommendations of 2018 - A Reward for Hard Work
  5. How Do Engineers Become Excellent?
  6. Top Recommendations of 2017 - A Reward for Hard Work
  7. Reflections on Work and Growth (2017)
  8. Android Developer Learning Path (2020 Edition)
  9. My 2020 Reading List

Reading Notes

  1. What Should Be in a Book About Android Smoothness?
  2. The Programmer’s Apprenticeship - 01: The Art of Fighting Back
  3. The Programmer’s Apprenticeship - 02: The Way of Programming
  4. The Programmer’s Apprenticeship - 03: Web Design Principles
  5. The Programmer’s Apprenticeship - 04: Reflections on Testing
  6. The Programmer’s Apprenticeship - 05: Know Your Users
  7. The Programmer’s Apprenticeship - 06: All About the Internet
  8. The Programmer’s Apprenticeship - 07: Games and Programming
  9. The Programmer’s Apprenticeship - 08: The Beauty of Reading

Performance Optimization Patterns and Tips

Performance Optimization Patterns is an early Google video series about performance. I originally wanted to write an article for every episode, but later realized that wasn’t realistic. Android Tips are translations from another blogger. These remain historical material; see each article for platform limits and updated approaches.

  1. Overview of Android Performance Patterns
  2. Android Performance Patterns - Render Performance
  3. Android Performance Patterns - Understanding Overdraw
  4. Android Performance Patterns - Understanding VSYNC
  5. Android Performance Patterns - Profile GPU Rendering
  6. Android Tips 1
  7. Android Tips 2
  8. Android Tips 3
  9. Android Tips 4
  10. Android Tips 5

Zhihu Q&A

Some articles are from Zhihu columns. Here are some top-voted answers.

  1. Personal Zhihu Homepage
  2. Why Are Two Large Cores Locked When Running Honor of Kings on Some Xiaomi Models?
  3. Why Is Flyme 5 So Much Smoother Than Flyme 4? What Is the Fundamental Change?
  4. Does the Android System Not Release Memory?
  5. Is Understanding the Android Framework Layer Helpful for Work?
  6. What Do You Think of the Samsung System Crashes on May 23?

Android Weekly

  1. Juejin Column: Android Weekly
  2. Zhihu Column: Android Weekly

Android Weekly is available in Chinese through the Juejin and Zhihu columns linked above.

Personal Projects

My tools, Apps, automation, and content projects are collected here. The original What I Am Building remains available. Public-project descriptions were updated on October 13, 2026; source branches, published artifacts, and device compatibility are separate concerns documented by each project.

Android Performance Ecosystem

Android Performance Ecosystem connects a navigation hub and seven independent projects. They can be used separately; this is an optional workflow, not a mandatory dependency chain.

Stage Project Purpose
Navigate Ecosystem Hub Project map, handoff metadata, and navigation drift checks.
Instrument TraceFix Add App-side Trace sections during the build.
Capture Perfetto Tools Perfetto capture, FPS measurements, and Simpleperf workflows.
Analyze SmartPerfetto AI-assisted Web/CLI investigation, evidence, and reports.
Agent analysis Perfetto Skills Portable Android, Linux, and Chromium analysis workflows.
Learn Android Performance Blog Mechanisms and cases; deployment repository.
System knowledge Android Internals Wiki An alpha knowledge base spanning App, Framework, Native, and Kernel.
Reproduce SystraceForBlog Article trace files and case materials.

Use TraceFix when platform tracks need more App detail, Perfetto Tools for capture, and SmartPerfetto or Perfetto Skills for analysis. The blog and AIW explain mechanisms; SystraceForBlog supplies historical case files.

Main Directions

  • Android performance and stability: Framework, APM, Perfetto, Systrace, startup, jank, ANR, memory, and power.
  • Trace-analysis tools: reusable scripts, Skills, and investigation workflows.
  • AI agents and personal automation: research, daily notes, knowledge bases, writing, and engineering collaboration.
  • Personal iOS/Android Apps built around practical needs.
  • Technical writing through this blog, Android Weekly, AI Field Notes, and public Skills.

Public Projects

Android Internals Wiki (AIW)

Android Internals Wiki contains Android Internals: System Architecture, Performance & Tooling in Practice. Its five parts and 26 chapters cover system mechanisms, performance, tools, platform/OEM work, and App practices. The current README names Android 17 / API 37 as its baseline; device behavior still requires version-specific checks. The full text is currently Chinese, with an English navigation summary.

SmartPerfetto

SmartPerfetto was the open-source project I was spending the most time on when I put this list together. It adds an AI Assistant to Perfetto. Questions about a loaded trace lead to evidence gathered through trace_processor_shell, SQL, YAML Skills, and scenario strategies. Results remain limited by the captured data; AI interpretation does not replace source inspection, queries, or reproduction.

Android App Memory Analysis

Android-App-Memory-Analysis brings dumpsys meminfo, dumpsys gfxinfo, HPROF, and smaps into a common investigation.

  • Collect available data from connected devices. HPROF/smaps access depends on debuggability, permissions, and device policy.
  • Correlate Java heap, native, graphics, and process-level evidence, with readable reports.
  • The current README describes Android 17 / API 37 Demo and input-format adaptation, alongside Android 16 and 16 KB page-size notes. A build target or parser claim does not prove validation on every device.

TraceFix

TraceFix inserts paired android.os.Trace.beginSection/endSection calls into App bytecode at build time, reducing manual instrumentation work. Instrumentation also has a cost; bound its scope and compare equivalent runs.

As of October 13, 2026, Maven Central metadata and the POM confirm io.github.gracker:TraceFix:0.1.0. The repository README describes 0.2.x for Android 17 / AGP 9.1.x, but the 0.2.0 POM is not available at that repository endpoint. Distinguish source-branch documentation from published dependencies.

Perfetto Auto-Pin

Perfetto-AutoPin-For-Chrome pins frequently used tracks through presets such as Frame, Startup, Input, Memory, Binder, SurfaceFlinger, SystemUI, and CPU analysis, with custom track sets.

It relies on Perfetto UI internals, so compatibility can change with UI versions. Perfetto’s own commands and macros offer another way to reduce repeated track setup.

High Performance Friends Circle

Friends-Circle-Demo-Apks-For-Power-and-Performance-Test is a Moments-style Android workload suite for startup, scrolling, and App switching. Different UI implementations and loads support investigation of main/RenderThread work, SurfaceFlinger, CPU, frames, and power. A Flutter suite provides related workloads.

Systrace / Perfetto Utilities and Historical Demos

These projects retain older examples and tools. Build environments, private interfaces, and device permissions need their own checks before use on current Android.

Historical Android / Java Projects

Resources, Sites, and Translations

The GitHub profile has the full public repository list; this directory selects projects related to the blog and my longer-term work.

SmartProtobuf

SmartProtobuf is a Protobuf/trace-data-structure project. Its public repository and usage documentation will be linked when that information is ready; no unstable public entrypoint is listed here.

AI and Automation Projects

OpenClaw

OpenClaw has been part of my local automation practice, connecting Telegram, Obsidian, scheduled jobs, models, and engineering tools for research, knowledge management, notes, and collaboration.

AI Field Notes

awesome-ai-field-notes is an AI information directory. Its documented site, godofgpt.com, could not be reached during the October 13, 2026 check; use the GitHub repository for the material. Its documented OpenClaw pipeline collects, deduplicates, categorizes, scores, translates, and generates pages about models, agents, coding, infrastructure, and research. It is a long-term information archive and an example of my automation work.

Gracker Skills

I’ve turned some of my regular writing, research, and diagram workflows into public Skills:

  • gracker-writing: technical articles, retrospectives, FAQs, methods, and long-form writing.
  • gracker-deep-research-skill: local discovery, evidence collection, and offline drafting.
  • gracker-diagrams-skill: technical diagrams and infographics. It prepares prompt packs by default; rendering requires drawing capabilities in the host environment.

Open Design

Open Design is a design-tool project I previously forked and helped maintain, exploring local coding agents, design systems, Skills, export, and preview in one workflow. Its former public repository was unavailable on October 13, 2026, so no installation link is currently provided here.

Apps in Development

100Years

100Years is an iPhone / Apple Watch App for health trends and long-term health signals. It combines HealthKit, lifestyle, health records, workouts, and sleep data. Deterministic models produce estimates, with optional AI explanations. Lifespan, age-100, and healthy-lifespan outputs are product estimates without external clinical calibration, not personal survival probabilities or medical conclusions.

The source is not publicly linked here. Work continues on data import, health-data synchronization, SwiftUI, localization, and release readiness; this description does not establish a public release.

iBattery

iBattery is a cycling-device battery monitor for iOS, covering compatible Bluetooth sports devices such as power meters, heart-rate sensors, shifting systems, and cadence sensors.

  • Discovers and classifies nearby devices.
  • Updates battery state and alerts when the device exposes readable battery data; discovery alone does not guarantee access.
  • Shows recent readings in iOS Widgets. Widget refresh is not continuous Bluetooth sampling; reading age matters.
  • Includes localization, caching, notifications, and appearance settings.

The iOS repository is not publicly linked here; an Android version is also a local development direction.

Juju

Juju is an Android growth journal I’m making for my family, for recording a child’s age, milestones, and photos, with home-screen widgets. It is not presented as a public open-source release.

Content Projects

Android Performance Blog

AndroidPerformance.com is my longest-running public content project. It covers Perfetto, Systrace, system mechanisms, smoothness, responsiveness, ANR, memory, Framework, and App development, alongside reading notes and personal writing. This article directory is the main navigation page.

Android Weekly

Android Weekly is a free Chinese technical newsletter covering Android, Linux, iOS, Flutter, performance, and engineering tools.

Personal Page

Below is my personal introduction and related links. I look forward to exchanging ideas with fellow professionals. “When three walk together, one can always be my teacher!”

  1. Personal Blog: Where I write
  2. Blogger Intro: Includes personal WeChat and WeChat group links.
  3. Curated Performance Articles: Welcome to recommend projects/articles.
  4. The Performance archive: Historical introduction; the community closed in 2026 and no longer accepts members.
  5. WeChat Official Account
  6. Zhihu: https://www.zhihu.com/people/gracker
  7. Email Subscription: https://androidweekly.zhubai.love/
  8. Juejin: https://juejin.cn/user/1816846860560749

Presentations and Training PPTs

This section will be released after some organization. As you know, PPTs don’t contain too much detail, mostly just an outline.

  1. Video (Bilibili) - Android Perfetto Basics and Case Studies
  2. Video (Bilibili) - Android Perfetto: Trace Graph Types - AOSP, WebView, Flutter + OEM System Optimization

Knowledge Planet

The Performance closed in 2026 and no longer accepts new members. Its performance foundations, tooling guides, and case studies will gradually be organized into the blog and Android Internals Wiki.

CATALOG
  1. 1. Theoretical Knowledge
  2. 2. Perfetto Series
  3. 3. Systrace Series
  4. 4. Smoothness
  5. 5. Responsiveness
  6. 6. ANR
  7. 7. Memory
  8. 8. Framework Knowledge
  9. 9. App Development
  10. 10. Personal Summary and Recommendations
  11. 11. Reading Notes
  12. 12. Performance Optimization Patterns and Tips
  13. 13. Zhihu Q&A
  14. 14. Android Weekly
  15. 15. Personal Projects
    1. 15.1. Android Performance Ecosystem
    2. 15.2. Main Directions
    3. 15.3. Public Projects
      1. 15.3.1. Android Internals Wiki (AIW)
      2. 15.3.2. SmartPerfetto
      3. 15.3.3. Android App Memory Analysis
      4. 15.3.4. TraceFix
      5. 15.3.5. Perfetto Auto-Pin
      6. 15.3.6. High Performance Friends Circle
      7. 15.3.7. Systrace / Perfetto Utilities and Historical Demos
      8. 15.3.8. Historical Android / Java Projects
      9. 15.3.9. Resources, Sites, and Translations
      10. 15.3.10. SmartProtobuf
    4. 15.4. AI and Automation Projects
      1. 15.4.1. OpenClaw
      2. 15.4.2. AI Field Notes
      3. 15.4.3. Gracker Skills
      4. 15.4.4. Open Design
    5. 15.5. Apps in Development
      1. 15.5.1. 100Years
      2. 15.5.2. iBattery
      3. 15.5.3. Juju
    6. 15.6. Content Projects
      1. 15.6.1. Android Performance Blog
      2. 15.6.2. Android Weekly
  16. 16. Personal Page
  17. 17. Presentations and Training PPTs
  18. 18. Knowledge Planet