前言

曾听过很多人说Android学习很简单,做个App就上手了,工作机会多,毕业后也比较容易找工作。这种观点可能是很多Android开发者最开始入行的原因之一。

在工作初期,工作主要是按照业务需求实现App页面的功能,按照设计师的设计稿实现页面的效果。

在实现的过程中,总是会被提如下的需求:

这个字能不能大点或者醒目点儿?

颜感觉颜色和设计稿有差别,能不能再调调?

怎么老是崩溃啊,行不行啊?

......

所以,工作过一年后你会发现,自己的工作重点就是将找各种各样的组件、框架,拖拖拽拽,改改样式。在极端情况下出现了问题后(比如部分机型上崩溃,载入图片慢),也不知道该如何解决!都不好意思说自己是搞技术的。

造成这种局面的有两种原因:

  1. 所开发的App功能要求并不复杂,在性能上呢,也不需要极致的追求;
  2. 自己的意识不够,不知道如何从平凡的工作中提炼可优化的点,在向上提升方面也没有完整的规划

从自身规划的角度讲,技术上的进阶分如下几个阶段:

  1. 做好业务需求的功能。这个是初级程序员就应该有的能力。
  2. 解决极端情况下的技术问题,比如性能优化,OOM等。稍有点规模的公司,肯定都会遇到这种问题,比如上文中说的App在部分机型上崩溃、页面载入不出来等。只是大部分程序员会觉得难以复现,或者是因为小概率事件而忽略了。在忽略这些问题的过程中,也放弃了进一步提升的可能性。还有一部分程序员是看到了这些问题,但一直不知道怎么解决,因为这些问题的产生基本都是要往底层框架去找原因,而平时只关注上层的业务逻辑代码,因而没有深入研究底层的原理,导致心有余而力不足。
  3. 在开发框架和效率上做文章。举个例子,很多程序员说自己的精力都在和产品的撕逼中浪费了,但有没有想过,能够通过技术手段将自己从繁杂的无技术含量的工作中解救出来?比如是否能够做到只编写一次代码,或者改个配置参数就能够做到在不同平台上运行。更高的要求是,能否将这些方案做成通用框架或产品。

其实没转行的Android程序员,大多都是希望能在这方面继续学习提升的。而上面列举的几个阶段,首先要从思考方式上去逼迫自己不断地逼迫自己,不要偷懒。其次,要想按照上述阶段发展,还需要落在实处,在具体的技术体系中不断的学习。

举个例子:

对于OOM,需要知道有哪些优化工具可以使用(Lint、MAT等),如何检测OOM,以及垃圾回收机制等深层次的原理。对于性能优化来说,如何减少apk体积、资源动态载入等都是必会的。以下是性能优化相关思维导图。

(Android性能优化思维导图)

当然,要让自己成为高级工程师,不仅仅需要自己具备性能调优的能力,其实学习的内容还有很多。还需要对Java(Kotlin)语言熟练掌握/Android SDK原理源码深入理解/高级UI绘制能力/Android热门技术/C与C++语言能力/NDK开发能力/hybrid开发(Flutter)/小程序编写能力。因为不同行业不同项目需要学习进阶的技能都不一样,要是要在细分领域找准方向!

这里给大家分享一份全面详细的阿里P7级别的进阶技术大纲,给大家如何进阶提供方向;技术大纲脑图详细地址

需要更多xmind格式的思维脑图,也可以在文末一起领走

在体系化的学习过程中,博客、书籍、视频课程都是较好的学习手段。

鉴于Android也是基于java语言的,因此很多与java相关的基础也是必须掌握的,比如《深入理解Java虚拟机》、《Effective Java》等相关书籍也是必读的。

Android相关的书籍包括《Android权威编程指南》、《Android开发艺术探索》等,进一步的还可以去阅读Android相关源码,配合《Android源码设计模式解析与实战》等书籍,对阅读源码大有裨益。

(Android学习推荐书籍)

如果你觉得自己看书太慢而且难以全部理解,博客不够系统,依然觉得有些茫然,可以去找一套系统的高级进阶视频来学习提升

我还有整理完整系统的一套Android进阶p7级别的视频教程,以及根据现在各大企业面试和公司内部的需求,整理的一套面试专题。希望可以帮到大家找到一份好工作。

资料领取方式:私信【面试或者视频资料】领取!

面试资料截图

这套《Android高级架构师课程》的技术大纲;

java语言进阶
移动架构师

完整的课程大纲无法详细展开,点击;技术大纲脑图详细地址

Android高级工程师视频教程

最后

这套完整的高级视频教程预期学完要花八个月时间。真正能达到阿里p7级的人只有极少数。很多人就跟我抱怨过,我经常加班,甚至一直都是996,我没有多余的时间和精力去学习提升自己怎么办呢?

我只想说一句,你想以后变成什么样的人,现在就得付出多大的努力和坚持!最怕那些天赋比你好的人,还比你更努力。

推荐阅读:

相关文章