Android Performance

The Performance Community Tea Talk - Episode 1

Word count: 1.1kReading time: 7 min
2022/03/27
loading

On Friday, March 25, 2022, at 9 PM, “The Performance” Knowledge Planet held its first online “Tea Talk.” We were joined by 3 planet hosts, 5 guest experts, and over 50 members. Thank you all for coming!

While we expected to wrap up in an hour, we ended up chatting for over two and a half hours—our introductions alone took an hour! Our community spans the entire Android ecosystem: from App-tier experts to System-level gurus at major smartphone manufacturers, silicon companies, and EV startups. Each introduction naturally evolved into deep dives into industry trends and company-specific insights.

We plan to hold these regularly with clearer themes and more guests. To protect the privacy of our members, we did not record the session. The following text is a reconstructed summary of our discussion.

On Career Development

“I’m a new grad and the vastness of the performance field is overwhelming.”

  1. Shift Your Mindset: University and professional work are different. In school, you have a textbook and a final exam. In the field, the “curriculum” never ends.
  2. Learn from What’s at Hand: Master the problems on your desk first. Aim for 100% or even 110% proficiency in your daily tasks while building a foundation for broader knowledge. Doing your current job exceptionally well earns you the reputation and the opportunity to touch new, more complex things. Don’t jump to a new field until you’ve mastered (or explicitly rejected) your current one.
  3. Problem-Oriented Programming: Your primary value to an employer is your ability to solve problems. Use an economic lens: maximize your output-to-input ratio (marginal utility).
  4. Climbing the Mountain: If you only stare at the peak, you’ll feel defeated. Keep your head down, take one step at a time, and check your map (and current career path) occasionally.

“I just switched from App development to System Performance. Where do I start?”

  1. Follow Company Projects: If you have a mentor, follow them closely. This is the fastest way to learn.
  2. Self-Drive: The more you learn on your own, the more opportunities you’ll be able to seize. Masters of performance aren’t just given tasks; they identify them.
  3. Don’t Limit Yourself: Knowledge is interconnected. Don’t stay in your “one-acre plot.” Performance spans App, Framework, Kernel, and Hardware. Aim for a state of “knowing what you don’t know.” The worst state is “not knowing that you don’t know” and thinking there’s nothing left to optimize.
  4. Systematize Knowledge: Performance is a broad field. When analyzing problems, take notes, summarize, and categorize. Don’t expect instant mastery; it’s a marathon of accumulation.
  5. Leverage Resources: Use this community, engineering blogs from major tech companies, and technical papers. Ask questions, no matter how “basic” they seem.

On Asking Questions

  1. This community is a powerful platform, but its value depends on your ability to ask precise questions. Asking a good question is a technical skill in itself.
  2. Recommended Reading: How to Ask Questions?
    • “A well-put question is half the solution.”
    • Einstein once said: “If I had an hour to save the world, I would spend 55 minutes defining the problem and 5 minutes solving it.”
    • Great questions inspire masters to teach. It is a bridge to the best minds.
  3. Use Google: The quality difference between Google and local search engines can be vast for niche technical issues. Don’t discriminate between Chinese and English resources—if it solves your problem, it’s a gold mine.
  4. Log Sharing:
    • If you need help and your logs contain sensitive info (like package names in a Systrace), use a text editor like VSCode to find-and-replace them.
    • Never share trade secrets.
  5. The Perfect Feedback Loop: Ask a question -> Analyze together -> Try solutions -> Verify with data -> Share the result with the community.

On Interviews

It’s healthy to interview occasionally with competitors or companies in new industries, even if you aren’t planning to quit. The goal is to gauge your “market value” and understand how the industry is evolving.

Distinguish between your profession and your job. “Software Engineer” is your profession; “Working on Module X at Company A” is your job. Recognizing this difference allows you to remain calm during corporate restructuring. Ideally, pursue a profession you find exciting, as you’ll spend most of your life doing it.

On Corporate Environments

Different companies have different strategies based on their industry and competition. Your manager’s style and your colleagues’ expertise define your immediate environment.

Some organizations reward “top 5% technical excellence,” while others only care that “the bug is fixed” regardless of how. Understand the game you are playing. Either challenge the environment or adapt to it, but don’t fall into the trap of self-doubt.

On Learning New Tech

Performance optimization has underlying logic that stays constant regardless of the tech stack. Focus on these “immutable” principles. Once you see the patterns, you can apply them to any new technology.

If you optimize deep enough, you eventually hit the bottom: Compilers, Hardware features, and Hardware integration. These are the ultimate gatekeepers of speed.

On GPU

  • GPU Architectures: Each generation and manufacturer (Adreno, Mali, PowerVR) differs, but they share fundamental principles.
    1. GPU Architectures
    2. Introduction to GPU Architecture
    3. Introduction to Modern GPU Architecture
  • Wait, if I’m new to Graphics, should I start with Vulkan?
    No, start with OpenGL. While Vulkan is the future, its API is extremely low-level and difficult for beginners. The underlying GPU mechanisms are the same. Mastering OpenGL makes Vulkan much easier to digest.
  • Why Vulkan?
    Check out Apple’s Bringing OpenGL Apps to Metal. (Metal and Vulkan share many design philosophies).

Final Tip: Learning graphics and GPU internal counters (via tools like DS5 Streamline or Snapdragon Profiler) is a marathon. Be patient and keep practicing.

Recommended Resources

Articles

  • “Ten-Year Founder Shares Thoughts on Hiring”: categorizes talent into S, A, B, and C tiers. Worth reflecting on which tier you occupy.

Books

  • “The Self-Cultivation of a Programmer” (俞甲子): Deep dive into compilation, linking, and runtime mechanics.
  • “Software Debugging (2nd Ed)” (张银奎): The “Encyclopedia” of debugging.
    • Vol 1: Hardware Foundations (CPU/GPU/Debug infrastructure).
    • Vol 2: Windows Platform.
    • Vol 3: (Upcoming) Linux Platform.

About The Performance Community

“The Performance” is a hub for Android performance experts from major mobile manufacturers. We offer case studies, methodologies, and tool guides. You can find us on Knowledge Planet (The Performance).


About Me && Blog

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

  1. Blogger Intro
  2. Blog Content Navigation: A guide for my blog content.
  3. Curated Excellent Blog Articles - Android Performance Optimization Must-Knows
  4. Android Performance Optimization Knowledge Planet

One walks faster alone, but a group walks further together.

Scan WeChat QR Code

CATALOG
  1. 1. On Career Development
    1. 1.1. “I’m a new grad and the vastness of the performance field is overwhelming.”
    2. 1.2. “I just switched from App development to System Performance. Where do I start?”
  2. 2. On Asking Questions
  3. 3. On Interviews
  4. 4. On Corporate Environments
  5. 5. On Learning New Tech
  6. 6. On GPU
  7. 7. Recommended Resources
    1. 7.0.1. Articles
    2. 7.0.2. Books
  • 8. About The Performance Community
  • 9. About Me && Blog