Android性能优化之路(五年之痒)
2016-04-23 13:43
288 查看
记得在上学的时候,就听说在某个方面坚持学习一年,也就入门了。很庆幸,工作五年了,一直都在做Android性能优化。一般来说,工作三年左右会是工作的一个门槛,五年左右会是另外一个门槛,所以最近非常的低落、迷茫。昨晚外面下着漂泊大雨,辗转反侧的我,在想自己这从业五年以来的经历。
刚毕业的人,会觉得很多东西都很新鲜,那个时候主要是以学习为主,尤其是系统性能,初步了解每个模块,大概也需要一年左右的时间,一年左右以后,虽然学了很多,但觉得自己什么也不会,而与你同期做应用的人,你会发现他们可以负责一个模块了,非常自卑。假设此时你换工作的话,会发现自己跟毕业没有多大的区别,因为此时你学的知识还不知道怎么发挥价值,学到的工具也没什么用。这也是后两年左右需要做的事情。第二年到第三年,你开始接触一些简单的性能问题,虽然处理起来不这么得心应手,但慢慢你还是能够解决,等过了一段时间,在你原来打的一年左右的基础之上,在解决问题的过程中,你慢慢体会学习的知识,不断反复,到后来发现复杂一点的Android性能问题,你也可以解决了。随着你解决问题的增多,App、Framework、Hal、Kernel等等所以Android层面的问题都解决了一遍,然后你觉得所有的Android系统性能问题都可以Fix掉,而此时的你,在重复的解决这些问题时,却觉得工作由原来的兴奋,变得无趣,此时你的内心却是无比膨胀的,觉得自己在Android系统性能上无所不能了,大概也到你工作三年左右需要继续跟公司签订合同了,而你却放弃了,你觉得自己应该去寻找更广阔的世界,所以你跳槽了,这也进入到后两年的工作了。
你跳槽了,你来到了新公司,觉得会有更大的发展,结果你会发现,其实公司还是会让你处理Android系统性能优化相关的问题,利用你以往的经验。你突然发现换了一个环境,还是不能解决困境,这样持续一年左右,对Android系统性能优化,你非常纯熟,也无所畏惧,但你觉得自己不应该这样,虽然困惑但未曾离开,于是你开始开发形成一些工具,对知识进行沉淀,你看到了工具所带来的价值,发现了无数的问题,比起自己一个一个的去复现、分析、解决问题高效了很多,而且还能在功能没有上线时,告诉别人存在部分性能问题,此时你应该是另外一种感觉了,这个时候你应该工作到第五年了,也就是此时的我。
此时的我,对性能的认识不在这么简单了,无论是Android性能问题的解决,各种Android性能工具使用及开发,都有过了解,而发现五年真正做的确实在不停的Profile并进行分析解决,无法触及到更深的层次,也就是觉得自己在这个行业入门了。入门了,也就差不多了,但或许正如别人所说,我有着湖南人的固执,我却并不满足,最近一直在学习反思,方式自己的路。
自己所做的事情,还是太重了,OverLoad太大,而真正的性能监控OverLoad正常应该控制在1%左右,最大不会超过3%,很好的一个例子是Dtrace及Google的监控系统,在尽可能收集到最多数据的同时,把OverLoad控制到最小,那个时候,是知识及智慧的体现,需要高性能的框架及对领域知识的深入理解,然后建立一套监控评价性能的标准,此时会有客户端的数据收集、上传,服务端的存储、处理、展示,需要各种扯皮,说服别人数据的可信及标准的正确,需要不断的尝试及校正,耗费大量的时间就经历,为前人所不能为,在国内应该很少这样的地方了,也就导致了我现在做技术的迷茫,因为国内的技术,大多数时候还停留在能用的阶段,还没到达精致精细要求,还无工匠追求,希望数十年后也许会有这样的要求!
总的来说,在这五年做Android性能优化的路上,经历了:
Android性能优化问题处理。知识的认识。
Android工具开发及初步了解标准。知识沉淀的初步尝试。
Android性能标准建立。深入理解知识及沉淀。
本人愚钝,大致花了五年左右的时间进行了前面两阶段的摸索。在进行第三阶段的探索时,遇到了各种各样的问题,无论是技术的还是非技术的,感觉遍体鳞伤。
基于个人经历的总结,欢迎交流。如何你真的理解Android性能,欢迎联系我。
生命不息,奋斗不已。
刚毕业的人,会觉得很多东西都很新鲜,那个时候主要是以学习为主,尤其是系统性能,初步了解每个模块,大概也需要一年左右的时间,一年左右以后,虽然学了很多,但觉得自己什么也不会,而与你同期做应用的人,你会发现他们可以负责一个模块了,非常自卑。假设此时你换工作的话,会发现自己跟毕业没有多大的区别,因为此时你学的知识还不知道怎么发挥价值,学到的工具也没什么用。这也是后两年左右需要做的事情。第二年到第三年,你开始接触一些简单的性能问题,虽然处理起来不这么得心应手,但慢慢你还是能够解决,等过了一段时间,在你原来打的一年左右的基础之上,在解决问题的过程中,你慢慢体会学习的知识,不断反复,到后来发现复杂一点的Android性能问题,你也可以解决了。随着你解决问题的增多,App、Framework、Hal、Kernel等等所以Android层面的问题都解决了一遍,然后你觉得所有的Android系统性能问题都可以Fix掉,而此时的你,在重复的解决这些问题时,却觉得工作由原来的兴奋,变得无趣,此时你的内心却是无比膨胀的,觉得自己在Android系统性能上无所不能了,大概也到你工作三年左右需要继续跟公司签订合同了,而你却放弃了,你觉得自己应该去寻找更广阔的世界,所以你跳槽了,这也进入到后两年的工作了。
你跳槽了,你来到了新公司,觉得会有更大的发展,结果你会发现,其实公司还是会让你处理Android系统性能优化相关的问题,利用你以往的经验。你突然发现换了一个环境,还是不能解决困境,这样持续一年左右,对Android系统性能优化,你非常纯熟,也无所畏惧,但你觉得自己不应该这样,虽然困惑但未曾离开,于是你开始开发形成一些工具,对知识进行沉淀,你看到了工具所带来的价值,发现了无数的问题,比起自己一个一个的去复现、分析、解决问题高效了很多,而且还能在功能没有上线时,告诉别人存在部分性能问题,此时你应该是另外一种感觉了,这个时候你应该工作到第五年了,也就是此时的我。
此时的我,对性能的认识不在这么简单了,无论是Android性能问题的解决,各种Android性能工具使用及开发,都有过了解,而发现五年真正做的确实在不停的Profile并进行分析解决,无法触及到更深的层次,也就是觉得自己在这个行业入门了。入门了,也就差不多了,但或许正如别人所说,我有着湖南人的固执,我却并不满足,最近一直在学习反思,方式自己的路。
自己所做的事情,还是太重了,OverLoad太大,而真正的性能监控OverLoad正常应该控制在1%左右,最大不会超过3%,很好的一个例子是Dtrace及Google的监控系统,在尽可能收集到最多数据的同时,把OverLoad控制到最小,那个时候,是知识及智慧的体现,需要高性能的框架及对领域知识的深入理解,然后建立一套监控评价性能的标准,此时会有客户端的数据收集、上传,服务端的存储、处理、展示,需要各种扯皮,说服别人数据的可信及标准的正确,需要不断的尝试及校正,耗费大量的时间就经历,为前人所不能为,在国内应该很少这样的地方了,也就导致了我现在做技术的迷茫,因为国内的技术,大多数时候还停留在能用的阶段,还没到达精致精细要求,还无工匠追求,希望数十年后也许会有这样的要求!
总的来说,在这五年做Android性能优化的路上,经历了:
Android性能优化问题处理。知识的认识。
Android工具开发及初步了解标准。知识沉淀的初步尝试。
Android性能标准建立。深入理解知识及沉淀。
本人愚钝,大致花了五年左右的时间进行了前面两阶段的摸索。在进行第三阶段的探索时,遇到了各种各样的问题,无论是技术的还是非技术的,感觉遍体鳞伤。
基于个人经历的总结,欢迎交流。如何你真的理解Android性能,欢迎联系我。
生命不息,奋斗不已。
相关文章推荐
- android studio2.0去除运行按钮旁边闪电标志的方法
- 阅读Android源码
- android 远程显示设备与本地设备坐标转换
- Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)
- Android目录结构(详解)
- Android-ContentProvider使用
- 【Android学习】Android studio 使用AIDL
- android launcher学习点滴
- 创建第一个Android项目
- android的service基础
- 《Android JNI》03 Jni中的反射
- Android:使用Gson解析复杂的JSON数据
- Android Studio下提示Couldn't load BaiduMapSDK_v3_1_0
- Android Service的生命周期
- Android service 弹出对话框 ,启动activity
- 【Android 学习】小知识Notification的新旧用法
- 一个帖子学会Android开发四大组件
- Android进阶笔记16:onInterceptTouchEvent、onTouchEvent与onTouch
- colorAccent,colorPrimary,colorPrimaryDark
- Android JPush(极光推送)的使用教程