开篇词:跳出舒适区,走在行业前端
面试,是技术深度与广度的试金石
每隔一段时间要出去面试一下。
对于 Android 知识的掌握还是多浮于表面,对一些技术点只停留在“使用过”甚至是“听说过”的阶段,比如一些问题,String 的最大长度是多少,JVM 的底层原理,Android 中 Dalvik 和 ART 的回收机制有何不同,线程中的“工作内存”指的是什么? 为什么会导致线程安全问题?
也有很多求职者抱怨大厂“面试造火箭,工作拧螺丝”,但实际上,面试中的大多数问题都是在全方位地考察你对技术的理解深度,以及解决问题的能力。
不抱怨,努力提升自己!
技术是无止境的,你需要对自己提交的每一行代码、使用的每一个工具负责,不断挖掘其底层原理,才能使自己的技术升华到更高的层面。
国内移动互联网的红利期已经过去,初中级工程师基本已无立足之地,即使高级工程师也经常在面试中碰钉子。随着 Android 开发越来越规范,国内工程师的素质,以及用户对产品的要求也越来越高。这也间接导致我们对研发项目的质量要求到了近乎苛刻的地步,内存优化、UI 卡顿优化、App 崩溃监控等性能调优也逐渐成了人手必备的技能。
跳出舒适区,走在行业前端
意识到自己的不足之后,我开始疯狂恶补各种开源库的实现原理,比较各个"轮子"之间的优缺点,同时也尝试自己去写开源控件。
因此只有了解源码,并从源码的角度分析,才会找到更完美的解决方案。