现在 Android 怎么学?学什么?

时间:2022-01-12 00:58:03

现在 Android 怎么学?学什么?

不管在任何行业,任何岗位,初级技术人才总是供大于求;不管任何行业、岗位,技术过硬的也都是非常吃香的!

这几年 Android 新技术的迭代明显加速了,有来自外部跨平台新物种的冲击,有去 Java 化的商业考量,也有 Jetpack 等官方自建平台的加速等多种原因。

作为 Android 开发者,我们需要密切关注的同时也不要盲目跟随,还是要认清趋势,结合项目现状学习。


Kotlin

Kotlin 已经成为 Android 开发的官方语言,Android 的新的文档和 Sample 代码都开始转向 Kotlin,在未来 Java 将加速被 Kotlin 替代。

刚推出时,很多人都不愿意学习,但现在在面试中已经是经常会出现了,很多大公司也都已经拥抱新技术了。现在 Kotlin 是一个很明显的趋势了,不少新技术都需要结合 Kotlin 来使用,未来在工作中、面试中所占的比重肯定会更大。


Jetpack+Compose

Jetpack 的意义在于帮我们在 SDK 基础上提供了一系列中间件工具,让我们可以摆脱不断造*抄*的窘境。同类的解决方案首先考虑 Jetpack 其次考虑第三方实现,没毛病。

Jetpack 本身也会不断吸收优秀的第三方解决方案进来。所以作为开发者实时关注其最新动态就可以了。

Compose 是 Google I/O 2019 发布的新的声明式的 UI 框架。其实 Google 内部自2017 年便开始立项,目前 API 已稳定,构建,预览等开发体验已经趋于完整。

而且新的设计思想绝对是趋势,已经在 react 和 flutter 等前端领域中得到验证,ios 开发中同期推出的 swiftUI 更是证明了业界对于这种声明式 UI 开发趋势的共识。这必将是日后 Android app 极为重要的编程方式。


开源框架底层原理

现在的面试从头到尾都是比较有深度的技术问题,虽然那些问题看上去在网上都能查到相关的资料,但面试官基本都是根据你的回答持续深入,如果没有真正对技术原理和底层逻辑有一定的了解是无法通过的。

很多看似无理甚至无用的问题,比如 “ Okhttp 请求复用有没有了解”,其实是面试官想借此看看你对网络优化和 Socket 协议的理解情况和掌握程度,类似问题都是面试官想借此看看你对相关原理的理解情况和掌握程度,甚至进而引伸到你对架构设计模式的理解。只有在熟知原理的前提下,你才能够获得面试官的青睐。


Framework

Framework 作为 Android 的框架层,为 App 提供了很多 API 调用,但很多机制都是 Framework 包装好后直接给 App 用的,如果不懂这些机制的原理,就很难在这基础上进行优化。

像启动监控、掉帧监控、函数插桩、慢函数检测、ANR 监控,都需要比较深入的了解 Framework ,才能知道怎么去监控、利用什么机制监控、函数插桩插到哪里、反射调用该反射哪个类哪个方法哪个属性……


性能优化

性能优化是软件工程的深水区,也是衡量一个程序员能力高低的标准。

想要搞清楚性能优化,必须对各种底层原理有着深度的了解,对各种 case 非常丰富的经验;很多朋友经常遇到措手不及的问题,大多是因为对出现问题的情况和处理思路模糊不清,导致此原因就是因为没有彻底搞懂底层原理。

性能优化 始终穿插在 App 整个研发生命周期中,不管是从 0 到 1 的建立阶段,还是从 1 到 N 打磨阶段,都离不开性能优化。

音视频

伴随着疫情的反复以及 5G 的普及,本就火爆的音视频技术是越来越热,很多大小厂在这几年也都纷纷入局。但音视频学习起来门槛比较高,没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的。

招聘市场上,同级别的音视频开发要比应用开发薪资高出 30% 以上。


车载

在智能手机行业初兴起时,包括 BAT 在内许多传统互联网企业都曾布局手机产业,但是随着手机市场的基本定型,造车似乎又成了各大资本下一个追逐的方向。百度、小米先后宣布造车,阿里巴巴则与上汽集团共同投资创立了,面向汽车全行业提供智能汽车操作系统和智能网联汽车整体解决方案的斑马网络,一时间造车俨然成了资本市场的下一个风口。

而作为移动端操作系统的霸主 Android,也以一种新的姿态高调侵入造车领域。


如何学习

在学习的过程中,可能会选择看博客自学、看官方文档、看书、看大厂大牛整理的知识点文档、看视频,但要按学习效率来排序的话:报培训班 > 看视频 > 知识点 > 书籍 > 官方文档 > 博客。

  • 报班 可能很多朋友对于报班这个事情比较抵触,但不可否认,报一个培训班是可以学到很多深层次的、成体系的技术,像之前读书一样,都是捣碎了喂给你,并且培训班其实对于新技术、新趋势是相当敏锐的,可以第一时间接触,也会规避开自学的烦恼。
  • 看视频 基本也是由别人捣碎知识点教会你,但较之培训班的话,视频的知识成体系吗?有没有过时?
  • 知识点 大厂大牛技术还是比较可靠的,这类型的知识点文档初版基本是可以放心享用,但如果只是少数人甚至是一个人进行维护的话,当整个文档的知识体系越来越广时,其中的部分知识点可能已经过时但一直没有时间更新
  • 书籍 相比前者就更甚了,一个技术出来,先研究、再整理、修正……直到最后出版被你买到,中间经过的这段时间就是你落后于其他人的地方了,但其中的知识点基本可以肯定成体系、无重大错误。学习比较底层的,不会有很大改动的知识点还是相当不错的。
  • 官方文档 这一块也是我思考了很久才排好,官方文档往往是第一手资源,对于有能力看懂的朋友来说,可以直接上手品尝。但其实很多开发拿到官方文档还是看的一知半解,再者说,自己看可能会有遗漏,还是没有别人一点一点将重点翻开来解读更好
  • 博客 网络上的博客水平参差不齐,通常大家擅长的也不是同一个技术领域,往往是学习一块看 A 的,另一块看 B 的,而且网上很多博客都是抄来自己记录的,很多 API 已经过时了,甚至不少连代码都是完全错误的,这样的学习,可想而知……

Android 路漫漫,共勉!!!