Android Tech And Perf

2017

Word count: 2kReading time: 6 min
2017/04/23

一转眼就 2017 年了,算起来自己已经工作了快四年了,09年到威海上学,12年去上海实习,13年毕业后还是去了上海,14年进了珠海魅族,直到现在。

这博客从我毕业开始写东西,写写删删,也算是记录了一些东西,自己的工作内容也从 App 开发换到了系统 App 开发,在换到系统开发,也算是走了一圈,一些路程,记录下来,几年后再看看,怀念一下也是不错的。

这篇文章我记录了自己的博客、自己的工作、自己的工作内容、自己的工作习惯、还有对 2017 年的期望,有迷茫,也有奋斗。

17年已经过了 30% 了,希望还不算晚。

关于博客

看到上一篇博客文章的更新时间,已经是去年的这个月了,想想还真是惭愧,每次想动笔重新开始写一些东西的时候,总是由于这样或者那样的原因,没有动手去写。

记得刚毕业的时候,我是很喜欢写东西的,学习笔记也有,工具教程也有,什么都敢写,什么都敢往博客上面放,后来随着工作的深入,懂的东西变多之后,写东西反而不是很多了,我想一个原因是,随着技术水平的慢慢提高,我意识到自己的技术深度还远远不够,很多东西自己都知其然不知其所以然,这样的状态,写出来的东西,会不会误导人呢?

不过,现在技术有了一点点沉淀之后,我觉得有必要把自己总结的一些经验和技巧分享给大家,另外一方面也算是一个记录。很多思路和想法,如果不去记录下来,很容易就会忘记,

关于工作

从 HTC 的实习,到火花乐蛙的短暂停留,再到魅族,算起来工作了也好几年了,这几年一直在做 Android 相关的开发,从 App 开发到系统开发,一路下来,越发觉得,做软件开发是一件很有趣的事,尤其是当你做的功能,被几百万几千万的用户在使用的时候,那份激动和责任,总会驱动我们要做得更好,我推测未来五年之内, Android 在手机界的统治地位,暂时没有其他的系统可以撼动,所以值得花时间在这上面。

当然除了具体的 Android 技术点,学习 Android 的设计思想,软件架构,培养自己解决通用问题的能力,是更重要的事情,这正是我现阶段需要去努力的方向。

关于具体的技术田,我暂时还没有想好具体要深入哪一块,目前对 Android 和 Linux 的进程管理和 CPU 调度比较感兴趣,性能方面则偏重于流畅度、响应速度的分析和调优,不得不说这几块就够我钻研好久了。

前几天去总部,看到 2016 年我司出了 15 台手机,每一台手机在做的时候,我们都会对其做性能调优,那一大堆性能 Feature ,和每个机型都莫名其妙的性能问题,搞得团队根本没有时间去做一些更有深度的事情,有点故步自封的感觉,2017 年希望能改变这一点,起码自己要先做改变。

关于工作内容

工作内容主要是系统层面的一些优化工作,涉及到的点比较多,自己则是全而不精,今年要寻找一个点深挖:

  1. 负责 Android 系统级别的性能优化,主要是 Framework 层以及 App 层的优化
  2. 负责优化内容包括 响应速度、流畅度、内存、启动速度、过度绘制、HWUI、SurfaceFlinger 等
  3. 参与制定性能部分测试项和测试标准
  4. 负责寻找和挖掘性能优化点,并负责实施和推广
  5. 负责系统关键项目的开发,比如智能系统调频器、进程优先级优化等
  6. 负责老机型与新机型的性能问题分析与解决
  7. 负责新员工性能方面的培训,以及内部技术分享
  8. 竞品分析,挖掘竞品的优点
  9. 负责性能部分文档编写与总结

关于习惯

2016 年起,我养成了一套自己的工作习惯,不过有的时候都没有严格去执行,2017 年则需要严格去执行这些,

工作安排

每天早上起来后,会安排一下今天一天的工作,安排的依据是昨天的工作记录情况和邮件记录,主要包含下面几点

  • 优先级:确定每个任务的优先级,重要的事情放在前面,优先做
  • 预估时间:确定每个任务的预估时间,精确到半个小时

当然会预留一定的时间,去应付突发的事情,比如有人来找我分析很重要的问题,就会打乱我的计划,所以工作安排也是一门技术,以我的经验和公司的情况,我一般会如下安排时间:

  • 一般来说,上午的时候,来找的人比较少,可以安排做一些重要 Feature 的开发,或者重要技术的预言
  • 下午的时候可以安排处理 Bug ,处理邮件,处理非重要的 Feature 等
  • 晚上的时候可以安排做一些技术的研究

当然理想是丰满的,现实是骨干的,鉴于软件开发的不确定性,上面的安排也经常会失效,有人建议用桌子上放一个番茄钟的方式来避免别人的干扰,我个人的经验是,戴个耳机!

我安排自己工作的软件是 Tower , Tower 本来是一个团队软件,不过我们团队不是很适应这个软件,所以在我安利了一段时间后,他们就放弃了,所以我还是自己一个人用, 优先级和时间都会以标签的方式显示在每个任务之前:

工作记录

每日回家之后,会把每天的工作记录下来,Tower 适合安排工作,但是不太适合记录工作,一是不太方便每日查看,二是自己的一些思路和想法,记录到 Tower 上很容易找不到。

所以我记录工作的软件是 MWeb ,会记录每天所完成的各个项,不论大小,比较重要的工作项,解题思路和想法都会记录在后面,每周的总结也会记录,来源包括 Redmine、邮件、Tower 等,这样不会漏掉一些重要的事情和数据

文章记录

文章记录主要的印象笔记,遇到好文章或者比较重要的事情,我都会记录到印象笔记中,定时去整理和查看

关于 2017

今年公司比较动荡,身边好几个小伙伴都走人了,公司也在转型,阵痛期。自己也比较犹豫,不过目前没有花太多的时间去想这事,做好目前手上每一件事,该做的去做,机会总是青睐有准备的人。

作为一个软件工程师,Coding 能力永远是要放在第一位的,这一点需要向我偶像百万学习(下图,一周Coding 的时间是51个小时)!
百万

关于我 && 博客

  1. 关于我 , 非常希望和大家一起交流 , 共同进步 .
  2. 博客内容导航
  3. 优秀博客文章记录 - Android 性能优化必知必会

一个人可以走的更快 , 一群人可以走的更远

CATALOG
  1. 1. 关于博客
  2. 2. 关于工作
  3. 3. 关于工作内容
  4. 4. 关于习惯
    1. 4.1. 工作安排
    2. 4.2. 工作记录
    3. 4.3. 文章记录
  5. 5. 关于 2017
  • 关于我 && 博客