Android開發(fā)十年,我繪制了這副Android進階學(xué)習(xí)路線,堪稱燈塔級總結(jié)

前幾天收到一位粉絲后生的留言感慨,說自己出去面試屢屢碰壁,感覺現(xiàn)在Android開發(fā)崗位面試要求都好高,不知道如何提升!

確實Android開發(fā)已經(jīng)不再是風口,但是,這并不是說android開發(fā)已經(jīng)被淘汰,?是說Android開發(fā)的發(fā)展進?了成熟期,就像Web技術(shù)?樣。對于我們開發(fā)人員來說,不管是什么時期,我們重要的是要把技術(shù)做好做精做深!

那成為一名合格的 Android 高級開發(fā)工程師到底需要掌握哪些技能?下面詳細說下2022Android進階技術(shù)學(xué)習(xí)路線,本文打算從4個階段來對Android的學(xué)習(xí)過程根據(jù)腦圖形式做一個全面的分析,分別為Android初級、中級、高級以及資深工程師,具體請看下面的分析,**同時每個階段都有學(xué)習(xí)時整理的筆記手冊和視頻教程

打怪升級第一步—初級開發(fā)

作為應(yīng)屆生(已經(jīng)入坑1年以上認為自己基礎(chǔ)扎實的小伙伴可直接跳過),需要怎么學(xué)習(xí)才能成為初級工程師呢?

首先Android開發(fā)必備的底層技術(shù)必是重中之重,比如: Java序列化、注解,泛型與反射,虛擬機底層原理,Android內(nèi)存原理,數(shù)據(jù)結(jié)構(gòu)算法等等,畢竟BATJ這些大公司都要求有扎實的Java語言基礎(chǔ)和虛擬機底層原理,這一個部分就是Android開發(fā)中最常用的java語言相關(guān)知識。

要想基礎(chǔ)扎實,我給大家推薦一份Android開發(fā)進階學(xué)習(xí)資料中的底層基礎(chǔ)必備筆記,Java 泛型、Java 反射、Java 并發(fā)編程、Java IO 和Android虛擬機等,這些基本知識點都包括在內(nèi)了

我列一下 Java 基礎(chǔ)部分要掌握的知識點


對于應(yīng)屆生沒怎么接觸過Android的可能相對而言有點陌生,可以在閑暇時間買一些Android入門書籍、找一些Android官方文檔看一看,對著例子敲代碼,有了手感和經(jīng)驗以后就可以開始做一些界面之類的玩一玩。再然后的話可以嘗試著寫業(yè)務(wù)代碼,不懂的可以去網(wǎng)上搜一搜,擴充自己的知識面。
除了官方文檔,《第一行代碼 Android》、《瘋狂Android》也很適合剛剛?cè)腴T的Android開發(fā)者。

Kotlin從入門到原理到實戰(zhàn)模塊

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

打怪升級第二步—中級開發(fā)

經(jīng)過1到2年的成長到達中級工程師,已經(jīng)可以在公司里干很多體力活了,但是一些很重要的任務(wù)還不能一個人承擔起來,這時需要學(xué)習(xí)的內(nèi)容就很多了,如下所示:

Framework---->Binder--->Handler--->AMS-->PMS--->WMS--->Jetpack

Jetpack及compose模塊

這個階段是擴展技術(shù)廣度和深度,深入源碼學(xué)習(xí)掌握其底層原理機制。可能再這一塊很多小伙伴都會有2個想法:一個是學(xué)這些有什么用,再一個就是面試問了工作用不上!

如果說有這2點想法的話,那你的思想還停留下工具人層次。我們不是為了學(xué)習(xí)源碼而學(xué)習(xí),而是關(guān)注代碼的流程并盡量挖掘出對應(yīng)用層開發(fā)有用的結(jié)論,從而來解決問題。到了高級開發(fā),架構(gòu)這等層次是需要解決問題的,而且支撐其做到這點的根本就是這些!

關(guān)于這一塊的技術(shù)學(xué)習(xí)也整理系統(tǒng)的學(xué)習(xí)筆記手冊,希望能幫助到那些在學(xué)習(xí)路上沒有方向的小伙伴

FrameWork源碼解析: Binder+Handler+Zygote+ AMS+ PMS+WMS

Jetpack compose從入門到實戰(zhàn)

Jetpack全家桶手冊(涉及Lifecycle、ViewModel、LiveData、Navigation、Room、WorkManager內(nèi)核、Pagging原理、DataBinding等內(nèi)容)

上面這一小階段搞定,后面就是性能優(yōu)化了,隨著 Android 開發(fā)越來越規(guī)范,國內(nèi)工程師的素質(zhì),以及用戶對產(chǎn)品的要求也越來越高。這也間接導(dǎo)致我們對研發(fā)項目的質(zhì)量要求到了近乎苛刻的地步,內(nèi)存優(yōu)化、UI 卡頓優(yōu)化、App 崩潰監(jiān)控等性能調(diào)優(yōu)也逐漸成了人手必備的技能。

很多技術(shù)專家在總結(jié)Android程序員核心能力的時候都會提到至關(guān)重要的一點:精通性能優(yōu)化。精通意味著:

第一,不管你去面試哪家大廠,性能應(yīng)該是必問項,而且使用范圍廣,無論如何是避不開的;
第二,你對性能優(yōu)化掌握的越深入,意味著你能做的事情越多。

我在面試的時候也經(jīng)常看到一些朋友寫“精通性能優(yōu)化”,但大多數(shù)人對精通存在一定誤區(qū)。由于業(yè)務(wù)需求,我們常常需要進行性能優(yōu)化,而優(yōu)化并不總是對一個單純環(huán)境進行,是面對一個復(fù)雜的已投產(chǎn)系統(tǒng)。

對于大部分程序員來說,哪怕工作很久經(jīng)驗豐富,但依然會出現(xiàn)面對棘手問題束手無策的狀況,大多是因為對出現(xiàn)問題的情況和處理思路模糊不清,導(dǎo)致此原因就是因為沒有徹底搞懂底層原理

這里分享之前整理收集的關(guān)于Android性能優(yōu)化的知識腦圖總結(jié)和學(xué)習(xí)手冊文檔!既能夠夯實底層原理、性能調(diào)優(yōu)等核心技術(shù)點,又能夠掌握普通開發(fā)者,難以觸及的架構(gòu)設(shè)計方法論。那你在工作中、團隊里、面試時,也就擁有了同行難以復(fù)制的核心競爭力。


掌握上面的技術(shù)后,也算是達到高級開發(fā)層次。這個時間段就要看機遇或者自身學(xué)習(xí)能力了,也許1到2年也許更久,我個人認為通過系統(tǒng)性的學(xué)習(xí)是可以縮短這個過程為0.5-1年的。

注意,達到高級工程師的技術(shù)水平不代表就可以立刻成為高級工程師(受機遇、是否跳槽的影響),但是技術(shù)達到了,成為高級工程師只是很簡單的事。

打怪升級第三步—高級開發(fā)

成為高級工程師,也算是達到了金字塔上層。技術(shù)水平已經(jīng)不錯了,但是如果目標是資深工程師,為了成為Android資深工程師,需要學(xué)習(xí)的東西就更多了,并且有些并不是那么具體了。

更多是選擇一個領(lǐng)域深度發(fā)展,比如音視頻開發(fā)領(lǐng)域,架構(gòu)領(lǐng)域等等

音視頻開發(fā)進階

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

音視頻技術(shù)知識點匯總:C/C++、JNI、H.265/H.265、MediaCodec、音視頻剪輯、音視頻直播、OpenGL與音視頻解碼、OpenGL特效、FFmpeg萬能播放器、Webrtc音視頻通話等

對標字節(jié)T3-1架構(gòu)師 架構(gòu)技術(shù)

“沒有最好的架構(gòu),只有最合適的架構(gòu)?!?/p>

架構(gòu)這塊主要是對各大主流框架和一線大廠核心框架進行剖析,理解其中原理,并學(xué)習(xí)架構(gòu)設(shè)計思想。我們在架構(gòu)設(shè)計中最本質(zhì)的目的就是管理復(fù)雜度,你聽過的各種思想、原則、方法大多都是為了控制復(fù)雜度而設(shè)計出來的。

而提升架構(gòu)設(shè)計硬實力,唯有不斷地實戰(zhàn),任何一個架構(gòu)師都是身經(jīng)百戰(zhàn)的老兵!

配套架構(gòu)設(shè)計思想、項目實踐、演進筆記:

打怪升級第四步—技術(shù)演伸,資深移動開發(fā)工程師

同時還有拓展技術(shù)廣度和Flutter跨平臺開發(fā)、Android車載開發(fā)及前沿技術(shù)

Flutter 3.0 混合式開發(fā)

隨著移動終端的多樣性發(fā)展,一套代碼適配多個平臺已經(jīng)成為移動開發(fā)者的終極夢想,跨平臺技術(shù)也一直在發(fā)展中。

目前為止,我們移動端的跨平臺開發(fā)技術(shù)經(jīng)歷了三個階段,這三個階段的代表框架分別是:Cordova、React Native 、Flutter 。

其中,Cordova雖然實用方便,但是受制于 WebView 的性能瓶頸。React Native 利用 JS 引擎實現(xiàn)了跨平臺能力,將 JS 控件,對應(yīng)解析為平臺原生控件進行渲染,雖然極大程度上實現(xiàn)了性能的優(yōu)化與提升,但也同樣存在性能等限制。

而Flutter 另辟蹊徑,只要求平臺提供一個 Surface 和一個 Canvas就可以了。在跨平臺技術(shù)追求的 性能、復(fù)用、高效 這三個終極目標上,F(xiàn)lutter占據(jù)了至高點。而且,F(xiàn)lutter在大廠的面試過程中不僅經(jīng)常被作為加分項,在某些崗位甚至是必問的內(nèi)容,非常有必要深入了解。

Flutter知識點匯總:

Android車載系統(tǒng)開發(fā)

  • 車載 Framework固件燒寫
  • 系統(tǒng) SystemUI
  • 桌面程序-Launcher
  • 底層 Window Display
  • 底層協(xié)議 USB通信
  • 硬件設(shè)備與串口通信
  • 安卓系統(tǒng)藍牙通信

定期面試:

光學(xué)習(xí)了一線大廠的技術(shù)還不夠,如何了解當下Android市場需要哪些技術(shù)呢?如何明確自身技術(shù)薄弱點呢?

建議大家每隔一段時間就要出去面試一輪,不一定是為了找到好的工作,重點是要知道自己的優(yōu)缺點是什么?知道市場目前需要什么樣的人?

定期的面試讓你及時了解當下市場需要哪些技術(shù),也更加容易確定自身的短板在哪,同時,后續(xù)也可以更加有針對性的學(xué)習(xí)提升,并且在面試過程中遇到了你不太擅長的點,你也可以借機向面試官提問,趁機學(xué)習(xí)一波大廠的技術(shù)操作或是對底層原理的理解

而且,要是運氣好,直接拿到了高薪Offer,豈不是更賺?

同樣,因為面試你的也是同行,在溝通交流過程中也能夠碰撞出不同的思想。試想?如果你一直待在一家公司,都不知道外面的情況如何的話,那是非??膳碌模辽傥疫@么認為。

報名培訓(xùn)機構(gòu):

我們對于培訓(xùn)機構(gòu)總是褒貶不一,但是,不可置否,自己摸索和有人帶你肯定是完全不一樣的,學(xué)會站在巨人的肩膀上前行,要比自己埋頭摸索要快很多。

多看大佬的學(xué)習(xí)筆記,學(xué)習(xí)大佬的設(shè)計思想:

比如上面有提到的《Android開發(fā)核心知識點筆記》、《大廠架構(gòu)演進筆記》等等,每一個都是行業(yè)精品中的精品,如果只憑去百度學(xué)習(xí)的話,搜索出來的資料內(nèi)容大多雜亂不系統(tǒng),很多內(nèi)容都是過時或者錯誤的,如果學(xué)習(xí)的方向不對,那不管有多么努力,注定是學(xué)不好的。

而且,筆記作者都是在大廠工作,會不定時的更新資料內(nèi)容,讓大家能夠及時的學(xué)習(xí)大廠的先進技術(shù)與架構(gòu)思想。

配合各種資料輔助學(xué)習(xí):

在當下這個信息共享的時代,很多資源都可以在網(wǎng)絡(luò)上找到,只取決于你愿不愿意找或是找的方法對不對了

很多朋友不是沒有資料,大多都是有幾十上百個G,但是雜亂無章,不知道怎么看從哪看起,甚至是看后就忘。不少內(nèi)容都是針對單個的技術(shù)問題,無法直接用到項目中去,并且因為很多內(nèi)容都是幾年前的,目前可能已經(jīng)無法使用了,更不用說代碼質(zhì)量參差不齊,直接生搬硬套也無法適應(yīng)項目需求迭代,非常不方便。

如果大家覺得自己在網(wǎng)上找的資料非常雜亂、不成體系的話,我也分享一套給大家,比較系統(tǒng),我平常自己也會經(jīng)常研讀。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容