毕业 3 年,我是如何从年薪 10W 的拖拽工程师成为 30W 资深 Android 开发者!(1)
这个字能不能大点或者醒目点儿?感觉颜色和设计稿有差别,能不能再调调?怎么老是崩溃啊,行不行啊?......
所以,工作过一年后你会发现,自己的工作重点就是**将找各种各样的组件、框架,拖拖拽拽,改改样式。**在极端情况下出现了问题后(比如部分机型上崩溃,加载图片慢),也不知道该如何解决!都不好意思说自己是搞技术的。
造成这种局面的有两种原因:
**1.**所开发的 App 功能要求并不复杂,在性能上呢,也不需要极致的追求;2.自己的意识不够,不知道如何从平凡的工作中提炼可优化的点,在向上提升方面也没有完整的规划。
从自身规划的角度讲,技术上的进阶分如下几个阶段:
**1.做好业务需求的功能。这个是初级程序员就应该有的能力。**2.**解决极端情况下的技术问题,比如性能优化,OOM 等。**稍有点规模的公司,肯定都会遇到这种问题,比如上文中说的 App 在部分机型上崩溃、页面加载不出来等。只是大部分程序员会觉得难以复现,或者是因为小概率事件而忽略了。**在忽略这些问题的过程中,也放弃了进一步提升的可能性。**还有一部分程序员是看到了这些问题,但一直不知道怎么解决,因为这些问题的产生基本都是要往底层框架去找原因,而平时只关注上层的业务逻辑代码,因而没有深入研究底层的原理,导致心有余而力不足。**3.**在开发框架和效率上做文章。**举个例子,很多程序员说自己的精力都在和产品的撕逼中浪费了,但有没有想过,能够通过技术手段将自己从繁杂的无技术含量的工作中解救出来?比如是否能够做到只编写一次代码,或者改个配置参数就能够做到在不同平台上运行。更高的要求是,能否将这些方案做成通用框架或产品。
上面列举的几个阶段,首先要从思考方式上去逼迫自己不断地逼迫自己,不要偷懒。其次,要想按照上述阶段发展,还需要落在实处,在具体的技术体系中不断的学习。
举个例子:
对于 OOM,需要知道有哪些优化工具可以使用(Lint、MAT 等),如何检测 OOM,以及垃圾回收机制等深层次的原理。对于性能优化来说,如何减少 apk 体积、资源动态加载等都是必会的。以下是性能优化相关思维导图**(文末还有更多 Android 架构进阶的学习资料免费分享)**
在体系化的学习过程中,博客、书籍、视频课程都是较好的学习手段。
鉴于 Android 也是基于 java 语言的,因此很多与 java 相关的基础也是必须掌握的,比如《深入理解 Java 虚拟机》、《Effective Java》等相关书籍也是必读的。
Android 相关的书籍包括《Android 权威编程指南》、《Android 开发艺术探索》等,进一步的还可
以去阅读 Android 相关源码,配合《Android 源码设计模式解析与实战》等书籍,对阅读源码大有裨益。
评论