前言
眼看2021年還有十幾天就要結束了,即將迎來2022新的一年,感覺今年比起往年要過稍稍的快一些,可能是我這一年的時間全在趕專案,沒有像往年一樣時不時定期的請假出去游玩,今天特意抽出時間來寫這篇年終總結,
下面我把自己這一年的一些事件進行了總結,請看下方

本人是一名Android 開發者,畢業3年,年齡到了人們常說的中年危機的年紀,30歲之前就常常在各大社交博客平臺上看到一些程式員中年危機和Android 不行了等相關帖子,剛開始我還是有點慌,在想當初選擇走開發這條道路是不是錯的?要不要趁早轉行從事別的作業?
本不焦慮的自己,反到被這些話題帖子給弄焦慮了,最后自己靜下心來想了想,這些事情還沒有發生到自己身上,為什么要去想這么多,自己嚇自己,在這里浪費自己的時間呢?有這些時間還不如去多寫幾行代碼,去深入研究技術,說不定自己可以通過技術去突破這個危機呢,
直到現在我終于明白了,30歲并沒有什么中年危機,只是一些遇到技術瓶頸的同行在造謠罷了,
為什么這么說呢?
如果是一個公司的管理者,你手下有一批多年開發經驗的技術人員,他們的技術水平能力都不等,突然有一天你招聘了一個沒有什么開發經驗的畢業實習生,而這個畢業生又肯勤奮的學習,沒過幾個月,技術能力水平有明顯的進步,甚至可以與一些多年開發經驗的老員工不相上下,等到了公司需要裁員的時候,你覺得公司會怎么選擇呢?想必大家的想法是我一樣,肯定是優先裁掉技術能力和水平排在末位的人員,現在這個時代是非常現實的,所以我們要一直保持學習的心態去作業,這樣才能更好的進步,
作為Android 開發現在需要深入學習的技術有哪些呢?
我為大家總結了八大版塊,分別是專案開發底層技術、Android Q FrameWork原始碼與UI、APP調優技術、音視頻技術、架構技術、 Gradle、Kotlin、混合開發技術等,
1.專案開發底層技術
不光是一線大廠,各大互聯網公司Android研發崗位都要求有扎實的Java基礎,并要求Android開發者掌握其原理,這一個部分就是Android開發中最常用的Java相關知識,
Android以Java語言為基礎,以虛擬機為核心,經過Daivlk虛擬機再到Art虛擬機演變,所以需要學兩大底層:一個是Java語言底層,一個是虛擬機底層,
Java底層涵蓋:Java序列化、泛型與反射、JDK高級動態代理、 Java高級并發原理詳解,
虛擬機底層涵蓋:虛擬機層類加載機制、Android虛擬機原理剖析、dex運行機制,Android記憶體,高級資料結構與演算法,

2.Android Q FrameWork原始碼與UI
Android Framework在一個系統中處于內核層之上,為頂層應用提供介面,被設計用來幫助開發者快速開發頂層應用,而不必關心系統內核運行機制,通常Framework都會隱藏main函式等應用程式必須的組件,開發人員只需把精力放在功能代碼的實作上,說簡單點,Framework具體的作業也就是為android應用開發的開發人員提供了一系列的服務和API的介面,
另外,UI其實并不是單純指用戶看到的效果,因為在Android開發中,每個控制元件背后都有一套深層次的體系在支撐,自然而然,會UI不單純指的是會自定義控制元件,我們還應該知道自定義控制元件背后的執行流程,包括從Activity的創建,XML的決議,到每個控制元件的測量、布局、繪制,當然在中間還夾雜著比如影片、事件分發機制、嵌套滑動機制等知識點,還有谷歌提供的一些UI框架也使我們要掌握的物件,比如Jetpack組件庫、Material Design等,

3. APP調優技術
作為一個Android程式員,性能優化是無法避開的事情,并且性能優化也是Android中最有挑戰的作業之一,更是每個工程師都需要掌握的核心技能,
性能問題和Bug不同,后者的分析和解決思路更清晰,很多時候從應用日志即可直接找到問題根源,而性能問題,其排查思路更為復雜一些,
對App進行性能優化,是一個系統性的工程,對工程師的技術廣度和技術深度都有所要求,一個簡單的應用,它不僅包含了應用代碼本身,還和虛擬機、存盤、網路等緊密相關,線上應用一旦出現了性能問題,需要我們從多方面去考慮,

4.音視頻技術
互聯網資訊的傳播與娛樂方式歷經了從文字到圖片再到音視頻的轉變,現如今以抖音為首的各類視頻平臺更是如日中天,特別是5G時代的全面到來,互聯網將會迎來對音視頻開發者的需求井噴,
現在市場中使用音視頻技術的公司太多了,大到全民觀看短視頻,小到直播帶貨,每個人使用手機的時間也基本被音視頻占據著,
在目前的大環境下,如果app只是圖文的方式展現,已經遠遠不能滿足用戶的需求,在5G普及程序中,這種app也會變得越來越少,所以各家公司都在不斷的往音視頻方向轉型,這就必然的催生出大量音視頻作業崗位,但相關的人才卻是少之又少,音視頻相關崗位的薪酬自然是水漲船高,

5.架構技術
“沒有最好的架構,只有最合適的架構,”
架構這塊主要是對各大主流框架和一線大廠核心框架進行剖析,理解其中原理,并學習架構設計思想,我們在架構設計中最本質的目的就是管理復雜度,你聽過的各種思想、原則、方法大多都是為了控制復雜度而設計出來的,
而提升架構設計硬實力,唯有不斷地實戰,任何一個架構師都是身經百戰的老兵!

6. Gradle技術
工欲善其事必先利其器
如何提供開發的效率?很多開發者在開發的程序中由于gradle不會用導致加載代碼非常耗時,這些就是作業成本,還有就是git的使用可以幫我們管理好我們的代碼,這個非常關鍵,因為這個工具可以讓我們修改的代碼不會因為錯誤的操作而導致代碼丟失,另外,作為移動開發者至少需要知道如何抓取網路包,其中,最常用的stetho就是一個很好的可以進行網路抓包的工具

7.Kotlin技術
Kotlin在2017年被作為Android一級開發語言,又在2019年被確立為Android的首選開發語言,這門語言近些年的發展得到了前所未有的支持和關注,在一些大廠的開發崗位中也對Kotlin語言青睞有加,越來越多的崗位對Kotlin語言掌握程度提出新的要求和標準,所以這塊也是非常有必要深入學習的,

8.混合開發技術
隨著移動終端的多樣性發展,一套代碼適配多個平臺已經成為移動開發者的終極夢想,跨平臺技術也一直在發展中,
目前為止,我們移動端的跨平臺開發技術經歷了三個階段,這三個階段的代表框架分別是:Cordova、React Native 、Flutter ,
其中,Cordova雖然實用方便,但是受制于 WebView 的性能瓶頸,
React Native 利用 JS 引擎實作了跨平臺能力,將 JS 控制元件,對應決議為平臺原生控制元件進行渲染,雖然極大程度上實作了性能的優化與提升,但也同樣存在性能等限制,
而Flutter 另辟蹊徑,只要求平臺提供一個 Surface 和一個 Canvas就可以了,
在跨平臺技術追求的 性能、復用、高效 這三個終極目標上,Flutter占據了至高點,
而且,Flutter在大廠的面試程序中不僅經常被作為加分項,在某些崗位甚至是必問的內容,非常有必要深入了解,

九、鴻蒙 2.0 系統專題
鴻蒙作為5G時代萬物互聯的時代性產品,歷經了一段時間的發酵,現在再去討論是不是Android套皮已經沒有任何意義,它的出現直接改變了移動端物聯網格局,在全世界范圍內掀起一股熱潮,作為國產系統也是經受了國內外媒體的驗證,相信在不遠的將來,鴻蒙系統將會在物聯網領域產生非常重要的作用,
而物聯網作為移動開發的細分領域,移動開發者掌握了鴻蒙開發必然掌握先機,在面試及企業專案中會產生意想不到的效果,

想查看高清學習路線圖請訪問我GitHub查看
這九大版塊里面的技術知識點,基本都是現在市場上的主流技術,就拿音視頻技術來說,現在市場會音視頻開發技術的人才并不多,而有許多公司在高薪聘請會音視頻開發的技術人才,大家可以在各大招聘網站上可以看的基本都是在20K起步,大家可以看下圖,

這是因為互聯網發展日新月異的今天,人們的社交需求也在不斷升級,一直以來,社交平臺持續探索新的互動方式,以滿足人們不斷更迭的社交需求,從2018年火爆的直播,再到越來越被大眾依賴的實時音視頻通話,高速發展的通信技術為社交平臺的探索提供了更多可能,
隨著5G的普及,將會改變人與人之間、人與物之間的溝通方式,以后圖文溝通的方式會越來越少,而音視頻通話則將成為主流
這也催生出大量的音視頻通話相關的需求,但目前具備開發音視頻通話能力的開發者,可謂是少之又少,
這說明現在學習好音視頻技術前景還是非常不錯的,如果想割這波韭菜就要趁早了,
為了能夠幫助到大家更有效快速的切換至學習的狀態,少踩點坑,我把上述學習路線圖中的九大版塊知識點進行了整理,方便大家進行參考學習,大家可以去我 GitHub進行參考查閱,


轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/382916.html
標籤:其他
