Android Performance

Reflections on Work and Growth (2017)

Word count: 1kReading time: 6 min
2017/04/23
loading

In the blink of an eye, it’s 2017. I’ve been working for nearly four years. I went to school in Weihai in 2009, started my internship in Shanghai in 2012, stayed in Shanghai after graduating in 2013, joined Meizu in Zhuhai in 2014, and have been here ever since.

I’ve been writing on this blog since graduation—writing, deleting, and rewriting—recording my journey from App development to System App development, and finally to System Framework development. Looking back after a few years is a great way to appreciate how far I’ve come.

This post records my thoughts on my blog, my job, my work habits, and my expectations for 2017. It’s a mix of confusion and ambition.

We are already 30% through 2017. I hope it’s not too late to share this.

About the Blog

Looking at the timestamp of my last post, it’s been exactly a year. I’m quite ashamed. Every time I intended to start writing again, something always got in the way.

When I first graduated, I loved writing. Study notes, tutorials, everything went up on the blog. But as my career progressed and I learned more, I wrote less. One reason is that as my technical level improved, I realized my depth was still lacking. I knew the “how” but often not the “why.” In that state, I worried my writing might mislead others.

However, now that I have some accumulation, I feel it’s necessary to share my summarized experiences and tips. It’s also for my own record. Ideas and logic are easily forgotten if they aren’t written down.

About Work

From my internship at HTC, a short stay at Firefly Lewa, to Meizu, I’ve worked for several years now—all in Android. Moving from App to System development has taught me that software engineering is fascinating, especially when your features are used by millions. That excitement and responsibility drive me to be better. I believe Android’s dominance in the smartphone world won’t be shaken for at least another five years, so it’s worth investing time here.

Beyond specific technical points, learning Android’s design philosophy, software architecture, and cultivating the ability to solve general problems is even more important. That is my current focus.

Regarding technical specifics, I’m currently very interested in Android and Linux process management and CPU scheduling. On the performance side, I’m leaning toward responsiveness, smoothness analysis, and tuning. These areas alone are enough to keep me busy for a long time.

Visiting the headquarters a few days ago, I saw that our company released 15 phones in 2016. Each one required performance tuning. Between the massive list of performance features and the unique performance bugs on every model, the team barely had time for deep, meaningful work. It felt like we were standing still. I hope to change this in 2017—starting with myself.

About Work Scope

My work mainly involves system-level optimization. I cover a lot of ground but lack extreme depth in one area. This year, I want to dive deep into a few specifics:

  1. System-level performance optimization (Framework and App layers).
  2. Optimizing responsiveness, smoothness, memory, startup speed, overdraw, HWUI, and SurfaceFlinger.
  3. Defining performance test cases and standards.
  4. Identifying and implementing new performance optimization points.
  5. Developing key system projects like the Intelligent System Tuner and process priority optimization.
  6. Analyzing performance issues for both legacy and new devices.
  7. Training new employees and hosting internal tech sharing sessions.
  8. Competitive analysis.
  9. Documentation and summaries.

About Habits

Since 2016, I’ve developed a set of work habits, but I haven’t always followed them strictly. In 2017, I need to be more disciplined.

Daily Schedule

Every morning, I plan out my day based on yesterday’s records and emails:

  • Priority: Identifying the priority of each task and doing the most important ones first.
  • Time Estimation: Estimating the time for each task, down to 30-minute blocks.

I also leave a buffer for emergencies—like someone needing an urgent analysis that disrupts my plan. Managing time is a skill. Based on my experience at the company, my schedule usually looks like this:

  • Morning: Fewer interruptions. I focus on developing important features or researching new technologies.
  • Afternoon: Handling bugs, emails, and less critical features.
  • Evening: Technical research.

Of course, reality often gets in the way of the ideal. Software development is unpredictable. Someone suggested using a Pomodoro timer to avoid interruptions, but my personal tip is: just wear headphones!

I use Tower to manage my personal tasks. Although it’s a team collaboration tool, my team didn’t really take to it, so I use it alone. Priorities and times are displayed as tags:

Work Logging

After arriving home, I record the day’s work. While Tower is great for planning, it’s not ideal for logging. It’s hard to review, and personal logic or ideas get lost in it.

I use MWeb for logging. I record every task completed, no matter how small. For important tasks, I record my logic and solution. I also do weekly summaries, pulling from Redmine, email, and Tower. This ensures I don’t miss important data.

Article Clipping

I use Evernote to clip good articles or important findings, which I organize and review periodically.

About 2017

The company has been quite turbulent lately. Several colleagues have left, and we are in a painful transition phase. I’ve had my hesitations, but I’m not spending too much time overthinking it. I’ll just do every task at hand well. Opportunity favors the prepared.

As a software engineer, coding ability must always come first. I need to learn from my idol, Million (whose coding time is 51 hours a week, as shown below)!

Million

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. About the Blog
  2. 2. About Work
  3. 3. About Work Scope
  4. 4. About Habits
    1. 4.1. Daily Schedule
    2. 4.2. Work Logging
    3. 4.3. Article Clipping
  5. 5. About 2017
  • About Me && Blog