开篇!不以深刻研究技术的学习,都是耍流氓

福利活动前端

Android研习社机械工业出版社联合发起的赠书活动正在进行中,欢迎你们点击连接参与算法

正文

作Android开发也算是有一些日子了,可是总感受作的业务和学的东西,都有点不痛不痒的感受,没有机会(固然也是懒惰使然)去深刻了解一些更基础,更底层的知识。后端

因此Android开发才会被怼:不就是画画界面嘛,有什么难的。不少时候,也确实是这样,常规的业务开发很难有深刻学习基础知识的机会。性能优化

那么什么才叫深刻呢?网络

咱们古代有一句话,叫君子不器,说的是君子不会注重那些奇技淫巧的东西。我的认为,对于技术层面来讲,新技术和新语言都层出不穷穷,不少人也都在说,技术发展太快了,学不过来啊。但咱们本身思考思考,真的有那么多“新”的技术么?那些“新”的技术真的都有必要去追么?架构

拿Android开发来讲,我记得好几年前就有媒体(或者是技术人本身?)在鼓吹所谓的“大前端”,js也要学,ReactNative也要懂,最近google又出了跨平台开发框架Flutter和对应的Dart语言。框架

其实这些技术的出现都是有原因的,就是为了解决跨平台嘛。目前移动端的两大平台Android,IOS,因为IOS的封闭性,因此基本上,移动端都是须要Android开发和IOS开发两种岗位的。那肯能有人就在内心打个小九九,要是能一个岗位能搞定两个平台的开发,不就节省成本了么?包括ReactNative,Flutter都是为了解决这个问题而生的。就像当年的Java,也是为了解决不一样CPU架构的设备都能运行一套代码,也就是著名的,「一次编写,处处运行」。post

固然Java通过这么多年的发展,已经成为了主流的开发语言,基于JVM也发展出了不少其余的语言,如Groovy,Kotlin等等。Java这个技术栈是能够深挖的,第一是应用场景广,后端,前端,均可以搞定了;第二是Java语言和他的运行托管平台JVM是分离的,JVM是能够直接跟系统层交互的,关于Linux系统我就不用多说了,作Android的确定都知道,Android就是基于Linux内核的系统。因此在Android技术栈上进行深究,一是离不开JVM(即便是使用kotlin语言进行开发,也是最终编译成Class字节码的),二是离不开Linux。性能

Linux系统再深刻呢?学习

对Linux系统了解的不深,可是仍是想谈一下粗鄙的理解。Linux系统最终仍是要跟硬件来交互的,CPU,内存,IO设备,这些又涉及到组成原理相关的知识了。因此你看,若是在Android技术栈上进行深究,那确定就不是画UI(固然自定义view也是很复杂的)这么简单了。

咱们再回到Android开发上来,应用开发依赖的是framework层提供的相关接口和封装,因而咱们才能享受到当前Android开发的便利性。可是遇到一些复杂的问题,好比性能优化,UI卡顿优化,等等,仍是要深刻源码(指framework源码)去研究的。

按照上面说的,所谓的「深刻研究」,方向也就有了。Framework源码,Linux系统知识,JVM相关知识,计算机组成原理,固然还有网络相关知识,算法,等等。

个人博客也会以这些方向来展开探讨,但愿对本身所学进行总结的同时,也能帮助其余人,在Android的道路上能走的更远。

以上,请感兴趣的朋友持续关注。

相关文章
相关标签/搜索