IT寒冬之下,程序員這個(gè)職業(yè)不再像以往那么吃香,尤其是APP開(kāi)發(fā)的門(mén)檻越來(lái)越高,使得安卓程序員不得不求變,如果不在技術(shù)上及時(shí)轉(zhuǎn)型提高,逆水行舟未來(lái)不可期呀。
有鑒于此,博主整理了幾個(gè)可供安卓程序員的技術(shù)轉(zhuǎn)型發(fā)展方向,供大家參考。
1、繼續(xù)深耕Android的應(yīng)用開(kāi)發(fā)
谷歌爸爸是安卓的爹,要想繼續(xù)吃安卓這口飯,就要抱緊谷歌爸爸的大腿。
爸爸每年都對(duì)Android和AndroidStudio升級(jí)換代,咱們馬上研究Android1x的新特性,鉆研AndroidStudio的新功能。
爸爸說(shuō)要把APP的開(kāi)發(fā)語(yǔ)言從Java換成Kotlin,咱們馬上學(xué)習(xí)Kotlin編程,什么KTX擴(kuò)展庫(kù)咬牙啃下。
爸爸推出了Jetpack套件意圖一統(tǒng)安卓常用組件庫(kù),咱們馬上引入Jetpack的諸多工具包,學(xué)他個(gè)天昏地暗。
爸爸推出了Flutter框架準(zhǔn)備打造無(wú)所不能的跨端開(kāi)發(fā)環(huán)境,咱們馬上絞盡腦汁開(kāi)干Flutter,連同Dart語(yǔ)言一起干。
爸爸推出了Compose項(xiàng)目要重構(gòu)安卓界面控件,咱們馬上熬夜通宵拿下Compose,只為體驗(yàn)?zāi)前憬z滑的吹噓快感。
總之,咱們唯谷歌爸爸馬首是瞻,只要爸爸搞出什么新東西,咱們赴湯蹈火在所不辭,務(wù)必要第一時(shí)間嘗鮮。
嗯,學(xué)習(xí)APP的Kotlin編程推薦這本書(shū)《Kotlin從零到精通Android開(kāi)發(fā)》。學(xué)習(xí)Jetpack套件與最新的Android開(kāi)發(fā)推薦這本書(shū)《Android Studio開(kāi)發(fā)實(shí)戰(zhàn):從零基礎(chǔ)到App上線(第3版)》,該書(shū)基于Android12和Android Studio Dolphin,介紹了包含DataStore、Room、RecyclerView、ViewPager2、WorkManager、Glide、CameraX、ExoPlayer等等在內(nèi)的Jetpack套件。
2、深入挖掘Android的底層框架
首先下載谷歌爸爸提供的AOSP源碼,國(guó)內(nèi)各家手機(jī)廠商(遙遙領(lǐng)先除外)的安卓系統(tǒng)統(tǒng)統(tǒng)基于AOSP,甭管他什么砰的一聲OS,別管他什么摸的一下OS,只要看它開(kāi)機(jī)畫(huà)面有沒(méi)有“Powered by Android”,有這個(gè)開(kāi)機(jī)文字就是谷歌爸爸賞飯吃。
然后編譯調(diào)試下載了的AOSP源碼,認(rèn)真閱讀數(shù)億行的AOSP源碼,在這個(gè)時(shí)間就是金錢(qián)的年代,要是啃完這浩如煙海的AOSP源碼,還沒(méi)有兩鬢銀絲,也沒(méi)有風(fēng)華絕頂,那您肯定是萬(wàn)里挑一的天才!
一旦學(xué)成安卓的底層框架,那就如虎添翼,什么手機(jī)OS、平板OS、車(chē)機(jī)OS、智能電視OS等等統(tǒng)統(tǒng)拿下,馬上練就“人-車(chē)-家(閉環(huán))”的蓋世神功。
3、豎向鉆研轉(zhuǎn)型做Java后端開(kāi)發(fā)
眼見(jiàn)APP開(kāi)發(fā)的蛋糕越來(lái)越小,安卓程序員總想跳出圍城外面看看。雖然Java需求同樣不振,但是好在盤(pán)子大,機(jī)會(huì)仍然比APP開(kāi)發(fā)多。
正好APP開(kāi)發(fā)傳統(tǒng)使用Java編程,安卓程序員轉(zhuǎn)向Java后端無(wú)需學(xué)習(xí)新語(yǔ)言??墒沁@些年Java也在不斷迭代,光光大版本就有Java8、Java11、Java17三個(gè),這幾個(gè)大版本的眾多新特性足夠讓安卓程序員喝幾壺了的。
不過(guò)后端開(kāi)發(fā)僅僅也用Java而已,開(kāi)發(fā)環(huán)境和開(kāi)發(fā)框架與安卓相比截然不同。Java后端的開(kāi)發(fā)環(huán)境采用IEDA,開(kāi)發(fā)框架采用Springboot+MyBatis,更大型的框架要用SpringCloud。什么Eclipse、什么SSH早就落伍了,趕緊扔掉,現(xiàn)在都是202x年了。
嗯,學(xué)習(xí)后端的Java編程推薦這本書(shū)《好好學(xué)Java:從零基礎(chǔ)到項(xiàng)目實(shí)戰(zhàn)》,該書(shū)講述了Java8和Java11的新特性,且基于IDEA開(kāi)發(fā)環(huán)境講解,同時(shí)介紹了Java程序如何操作MySQL數(shù)據(jù)庫(kù)。
4、橫向拓展轉(zhuǎn)型做大前端開(kāi)發(fā)
習(xí)慣了做APP界面開(kāi)發(fā),安卓程序員對(duì)其他前端技術(shù)比如H5也屢有涉獵,因?yàn)槎际强丶?lái)控件去,無(wú)需關(guān)心后端紛繁復(fù)雜的業(yè)務(wù)邏輯,可以節(jié)省不少腦細(xì)胞。
Web前端的編程語(yǔ)言首選JavaScript,簡(jiǎn)稱JS,前端的開(kāi)發(fā)引擎主要有Node.js和Vue.js,開(kāi)發(fā)環(huán)境采用VS Code,另外別忘了Web網(wǎng)頁(yè)的標(biāo)記語(yǔ)言HTML5。
除了Web前端之外,各大公司還推出了自己的前端開(kāi)發(fā)框架,比如騰訊的微信小程序、華為的鴻蒙APP等等。
微信小程序采用TypeScript編程,TypeScript基于JavaScript加以擴(kuò)展,簡(jiǎn)稱TS。小程序有專門(mén)的開(kāi)發(fā)環(huán)境叫做微信開(kāi)發(fā)者工具。
鴻蒙APP采用ArkTS編程,ArkTS是HarmonyOS應(yīng)用開(kāi)發(fā)語(yǔ)言,基于TypeScript加以擴(kuò)展。鴻蒙APP有專門(mén)的開(kāi)發(fā)環(huán)境叫做DevEco Studio。
5、邁開(kāi)大步轉(zhuǎn)型做C/C++底層開(kāi)發(fā)
移動(dòng)互聯(lián)網(wǎng)已成昨日黃花,產(chǎn)業(yè)互聯(lián)網(wǎng)才是八九點(diǎn)鐘的朝陽(yáng)??纯碩IOBE編程語(yǔ)言排行榜,Java語(yǔ)言早已落后于C/C++,甚至Java的熱度只有C/C++的一半不到。
然而安卓程序員跨界直接轉(zhuǎn)C/C++頗有難度,為了更加平滑地轉(zhuǎn)型C/C++編程,可以考慮從音視頻開(kāi)發(fā)著手。
正好Android開(kāi)發(fā)有個(gè)重要分支叫做Android音視頻,涉及到WebRTC、FFmpeg等開(kāi)源框架。其中WebRTC主要用于視頻通話,而FFmpeg主要用于音視頻播放、音視頻編輯等等。
谷歌爸爸提供了APP專用的WebRTC庫(kù),直接引入App工程就行。而FFmpeg采用C語(yǔ)言編寫(xiě),需要通過(guò)NDK才能集成到App工程?!禙Fmpeg開(kāi)發(fā)實(shí)戰(zhàn):從零基礎(chǔ)到短視頻上線》一書(shū)的第12章詳細(xì)介紹了如何給App工程集成FFmpeg庫(kù),可供參考。
把FFmpeg學(xué)得差不多了,再來(lái)研究直播系統(tǒng)的相關(guān)技術(shù),比如流媒體服務(wù)器SRS、ZLMediaKit,又如電腦端的直播推流工具OBS Studio,手機(jī)端的直播推流工具RTMP Streamer、SRT Streamer等等,有關(guān)直播系統(tǒng)的詳細(xì)技術(shù)可參考系列文章《FFmpeg開(kāi)發(fā)筆記全目錄(FFmpeg開(kāi)發(fā)實(shí)戰(zhàn)詳解,含直播系統(tǒng)的搭建過(guò)程)》。
在學(xué)習(xí)研究FFmpeg等開(kāi)源框架的時(shí)候,相信您已經(jīng)逐漸掌握了C/C++編程,那么加把勁用上C++的桌面開(kāi)發(fā)環(huán)境Qt,產(chǎn)業(yè)互聯(lián)網(wǎng)正在向您招手啦。
嗯,學(xué)習(xí)App的WebRTC編程推薦這本書(shū)《Android Studio開(kāi)發(fā)實(shí)戰(zhàn):從零基礎(chǔ)到App上線(第3版)》,該書(shū)第20章詳細(xì)介紹了WebRTC的服務(wù)端搭建和客戶端集成過(guò)程,并演示了實(shí)戰(zhàn)項(xiàng)目“仿微信的視頻通話”。
嗯,學(xué)習(xí)FFmpeg編程技術(shù)推薦這本書(shū)《FFmpeg開(kāi)發(fā)實(shí)戰(zhàn):從零基礎(chǔ)到短視頻上線》,該書(shū)詳細(xì)介紹了如何在Windows系統(tǒng)和Linux系統(tǒng)分別搭建FFmpeg的開(kāi)發(fā)環(huán)境,第11章還介紹了如何通過(guò)Qt+FFmpeg開(kāi)發(fā)桌面程序。
除了上面五個(gè)發(fā)展方向之外,還可以考慮Python人工智能開(kāi)發(fā),不過(guò)這塊與安卓開(kāi)發(fā)隔得太遠(yuǎn),就不做深入介紹啦。