開篇!不以深刻研究技術的學習,都是耍流氓

福利活動前端

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的道路上能走的更遠。

以上,請感興趣的朋友持續關注。

相關文章
相關標籤/搜索