眾所周知,Android是谷歌開發(fā)的一款基于Linux的開源操作系統(tǒng),每年迭代一次大版本升級。
小米、華為、OPPO、VIVO、三星等各大廠商對Android原生系統(tǒng)進(jìn)行二次開發(fā)衍生出具有各家特色的系統(tǒng)(比如MIUI),為手機(jī)、電視、平板電腦、手表等數(shù)十億設(shè)備提供平臺支持,使得Android作為全球最受歡迎的移動(dòng)操作系統(tǒng)。Android誕生至今已有10余年,這一路走來Android遇到哪些問題?大版本升級朝著什么方向演進(jìn)?Android的未來如何?
發(fā)展歷程先來看看Android系統(tǒng)的發(fā)展過程,從2008年發(fā)布Android 1.0系統(tǒng),直到2019年即將發(fā)布Android 10.0系統(tǒng),下面列舉些重要的時(shí)間節(jié)點(diǎn)。
2003年10月,Andy Rubin團(tuán)隊(duì)創(chuàng)辦Android公司;2005年8月,谷歌收購Android公司,Andy Rubin擔(dān)任谷歌工程部副總裁繼續(xù)負(fù)責(zé)Android項(xiàng)目;2008年9月,谷歌正式發(fā)布Android 1.0系統(tǒng);2011年1月,Android系統(tǒng)設(shè)備的用戶總數(shù)達(dá)到了1.35億,成為智能手機(jī)領(lǐng)域占有量第一的系統(tǒng);2011年8月,Android手機(jī)占據(jù)全球智能機(jī)市場48%份額,并在亞太地區(qū)市場占據(jù)統(tǒng)治地位,終結(jié)了Symbian系統(tǒng)的霸主地位,躍居全球第一;2012年1月,谷歌Android Market已有10萬開發(fā)者,推出超過40萬應(yīng)用;2013年11月,Android 4.4正式發(fā)布,系統(tǒng)更智能、UI更現(xiàn)代;2013年到2018年,這個(gè)階段安卓進(jìn)入飛速發(fā)展期,被升級的有攝像頭、內(nèi)存、機(jī)身、芯片等,原來的3.5寸小屏已退出歷史舞臺,全面屏、劉海屏、水滴屏已成為當(dāng)下主流屏幕方案。系統(tǒng)演進(jìn)系統(tǒng)演進(jìn)趨勢:每個(gè)Android大版本的更新迭代前行,歷經(jīng)10余年,在用戶體驗(yàn)、流暢性、續(xù)航、安全、隱私、機(jī)器學(xué)習(xí)等方面都取得較大的改進(jìn)。
圖中是每個(gè)大版本中最具代表性的特征標(biāo)記在圖中,并不代表著該版本全部特征,同樣專項(xiàng)計(jì)劃也不是只在某一個(gè)版本執(zhí)行,比如續(xù)航和性能優(yōu)化,每一個(gè)版本都在持續(xù)改進(jìn)中,Treble計(jì)劃也一直在迭代至今。
從Android 1.0發(fā)展到Android 4.0,系統(tǒng)各項(xiàng)功能和特性迭代到一個(gè)較完善的階段。
Android 4.1系統(tǒng),Google開展了黃油計(jì)劃(Project Butter),為了讓Android系統(tǒng)擺脫UI交互上的嚴(yán)重滯后感,希望能像“黃油”一樣順滑。 核心原理是系統(tǒng)框架中的渲染和動(dòng)畫統(tǒng)一采用垂直同步技術(shù)(VSYNC),以及三重緩沖技術(shù)(Triple Buffer),讓滑動(dòng)、翻頁等操作更加一致與順滑。
Android 4.4系統(tǒng),Google開展了瘦身計(jì)劃(Project Svelte),力求降低安卓系統(tǒng)的內(nèi)存使用,解決低端機(jī)型升級難的問題,讓Android 4.4可正常運(yùn)行在所有Android手機(jī),從而減少安卓系統(tǒng)繼續(xù)碎片化。UI設(shè)計(jì)上,支持新的“沉浸式模式”,用戶界面由過去的黑色與藍(lán)色為主的色調(diào)轉(zhuǎn)向帶有透明度的淺色系,視覺語言變得更加明亮與現(xiàn)代化。
Android 5.0系統(tǒng),Google開展了伏特計(jì)劃(Project Volta),力求提升續(xù)航能力,這方面Google落后于業(yè)界廠商,廠商直面用戶對續(xù)航尤為迫切,往往系統(tǒng)資源管控更為嚴(yán)格。另外,系統(tǒng)采用全新的ART,拋棄Dalvik虛擬機(jī),大幅提升運(yùn)行效率。UI設(shè)計(jì)上,使用全新的扁平化Material Design設(shè)計(jì)風(fēng)格,更加清新與質(zhì)感的設(shè)計(jì),統(tǒng)一Android設(shè)備的外觀和使用體驗(yàn)。
Android 6.0系統(tǒng),Google引入新的運(yùn)行時(shí)權(quán)限,讓用戶能夠更好地了解和控制權(quán)限;引入了Doze模式,進(jìn)一步提升電池續(xù)航能力。UI設(shè)計(jì)上,新增夜間模式,大幅改進(jìn)通知欄,讓通知更簡潔。
Android 7.0系統(tǒng),引入新的JIT編譯器,對AOT編譯器的補(bǔ)充,可節(jié)省存儲空間和加快更新速度;進(jìn)一步優(yōu)化Doze喚醒機(jī)制;UI設(shè)計(jì)上,支持分屏功能。
Android 8.0系統(tǒng),Google開展了計(jì)劃(Project Treble),重新架構(gòu)Android,將安卓系統(tǒng)框架與Vendor層解耦,力求徹底解決安卓碎片化這一老大難的問題,這是安卓系統(tǒng)架構(gòu)最大的變化。系統(tǒng)層面加強(qiáng)對后臺服務(wù)、廣播、位置的管控限制。UI設(shè)計(jì)上,改進(jìn)通知欄,智能文本選擇和自動(dòng)填充功能。
Android 9.0系統(tǒng),引入神經(jīng)網(wǎng)絡(luò)API,采用機(jī)器學(xué)習(xí)的思路來預(yù)測用戶使用習(xí)慣來做省電優(yōu)化,繼續(xù)強(qiáng)化Treble計(jì)劃;文件系統(tǒng)(sdcardf/F2FS)持續(xù)提升;私有API的限制進(jìn)一步規(guī)范化Android生態(tài),強(qiáng)化隱私和安全,硬件安全性模塊以及統(tǒng)一生物識別身份驗(yàn)證界面。 UI設(shè)計(jì)上,新的手勢導(dǎo)航,加強(qiáng)支持劉海屏,UI搜索界面使用到機(jī)器學(xué)習(xí),AI正在逐步強(qiáng)化Android系統(tǒng)。
Android 10.0系統(tǒng),Google開展了主線計(jì)劃(Project Mainline),相關(guān)模塊(Modules)不允許廠商直接修改,只能由Google應(yīng)用商店來更新升級,強(qiáng)化用戶隱私、系統(tǒng)安全與兼容性。支持臉部生物識別。
系統(tǒng)不斷演進(jìn),但整體架構(gòu)基本沒有改變,如下圖所示。
碎片化Android歷經(jīng)10余年的迭代,在流暢性、內(nèi)存、續(xù)航、安全、隱私等方面都取得很大的進(jìn)步,但Android系統(tǒng)的碎片化一直是痛點(diǎn)問題,帶來不一致的用戶體驗(yàn)。
Android的開放性,是其長久發(fā)展的主要原因,讓大多數(shù)的廠商都選擇Android系統(tǒng),但開放性的背后是碎片化,從Android誕生至今問題就一直存在,Google一直在努力從技術(shù)角度來解決碎片化問題。從Android 8.0提出Treble項(xiàng)目,重新架構(gòu)系統(tǒng)將system與vendor解耦合,用于加快Android新版本的適配,效果并不明顯,Google繼續(xù)在后續(xù)的Android P以及Android Q一直在不遺余力地持續(xù)完善Treble項(xiàng)目,力爭加快系統(tǒng)升級速度。
如下圖,目標(biāo)是希望在保持Vendor不變的情況下,可以獨(dú)立升級System模塊。
Android系統(tǒng)碎片化,讓安全、隱私問題存在風(fēng)險(xiǎn),且存在體驗(yàn)不一致性問題,但老版本手機(jī)的OTA維護(hù)升級對廠商來說成本是昂貴的,Google感覺到對Android系統(tǒng)掌控力度不足,要想徹底改變,除非不讓各大廠商定制化,這勢必導(dǎo)致Android手機(jī)完全同質(zhì)化,手機(jī)廠商就沒法玩了,等于自掘墳?zāi)?,Google肯定不會這么干。于是,Google在Android 10.0提出了”Project Mainline“,將對隱私、安全、兼容性造成重大影響的少數(shù)模塊獨(dú)立成module,每個(gè)module打包成APEX格式(一種類似于APK的新格式),由Google通過應(yīng)用商店定期來升級,從而保證低版本的手機(jī)不會因?yàn)樗槠貌坏诫[私、安全與兼容性的更新。
這些module是由Google維護(hù)的主線,各大廠商只能跟Google溝通并將代碼upstream到AOSP主線。Google花費(fèi)了大量的人力在努力完善并推行Mainline,Google希望統(tǒng)一管控的機(jī)制,廠商希望最大的自由定制空間,這是一場有趣的角逐,筆者跟團(tuán)隊(duì)一起跟Google協(xié)商落地module的落地計(jì)劃,最終將某些module影響較大模塊爭取Android 11再上線,Mainline更新機(jī)制如下圖。
應(yīng)用演進(jìn)Android系統(tǒng)離不開各App來提供豐富的功能,下面再來簡單說一說應(yīng)用的一些技術(shù)演進(jìn)。
移動(dòng)端跨平臺技術(shù):從最開始以Cordova為基礎(chǔ)(依賴于WebView)的Hybrid混合開發(fā)技術(shù),到React Native的橋接(將JS轉(zhuǎn)為Native)的技術(shù),再到最新的Flutter技術(shù)。Flutter是Google發(fā)布的全新的移動(dòng)跨平臺UI框架,渲染引擎依靠跨平臺的Skia圖形庫來實(shí)現(xiàn),依賴系統(tǒng)的只有圖形繪制相關(guān)的接口,可以在最大程度上保證不同平臺、不同設(shè)備的體驗(yàn)一致性,邏輯處理使用Dart語言,執(zhí)行效率比JavaScript高。另外,Google內(nèi)部正在開發(fā)的另一個(gè)操作系統(tǒng)Fuchsia的UI layer采用的是Flutter,也就是說Flutter天然可以支持Android、IOS以及未來的Fuchsia。在大前端方向,對于跨平臺開發(fā)中一直在不斷迭代中尋找更好、更優(yōu)的解決方案,目前來看Flutter還是更有優(yōu)勢。應(yīng)用架構(gòu):MVC模式(Model–view–controller)但Activity類過于臃腫,為解決這個(gè)問題,有了MVP(Model–view–presenter),presenter不僅要操作數(shù)據(jù),而且要更新view;再到MVVM(Model-View-ViewModel)解決了MVP大量的手動(dòng)View和Model同步的問題,提供雙向綁定機(jī)制。熱修復(fù)與插件化技術(shù):熱修復(fù)的主要應(yīng)用場景是為了讓用戶無感得修復(fù)線上缺陷,比如Tinker,Andfix,Sophix等。插件化是為了減少模塊耦合,可減少主程序的規(guī)模,可按需加載,比如DroidPlugin,OpenAtlas等。關(guān)于各個(gè)熱修復(fù)與插件化的細(xì)節(jié)不再展開,這里就說一點(diǎn),Android 7.0對Native的NDK的調(diào)用限制是手銬,尤其是Android 9.0對Java層SDK的調(diào)用限制就是腳銬,那么對于Android應(yīng)用想再搞插件化之類的黑科技便是帶著腳手銬跳舞,能跳但舞姿可能不太美觀。App Bundle:隨著應(yīng)用不斷演講,功能越來越復(fù)雜,且應(yīng)用針對不同屏幕設(shè)備、不同國家語言資源都打包在同一個(gè)App,導(dǎo)致應(yīng)用包不斷增大,據(jù)統(tǒng)計(jì)自2012年以來應(yīng)用包大小增長5倍。雖然現(xiàn)在手機(jī)的存儲空間越來越大,但用戶照片、視頻等媒體文件品質(zhì)在逐漸提升,導(dǎo)致設(shè)備可用空間逐漸緊縮。為此Google在去年Google I/O大會講述Android引入新的App動(dòng)態(tài)化框架(即Android App Bundle,縮寫為AAB)。利用Split Apk完成動(dòng)態(tài)加載,使用AAB動(dòng)態(tài)下發(fā)方式,可顯著縮小應(yīng)用體積,減少對存儲空間的占用。Kotlin:是Google推薦的官方靜態(tài)編程語言,與Java互通,可相互轉(zhuǎn)換。Kotlin編譯成Java字節(jié)碼,也可以編譯成JavaScript,運(yùn)行在沒有JVM的設(shè)備上,簡潔安全。使用Kotlin更快速地編寫Android應(yīng)用,可以提高開發(fā)者的工作效率,少編寫樣板代碼,被稱之為 Android 世界的Swift。谷歌開發(fā)者社區(qū)做過一個(gè)問卷調(diào)查,大概有40%的Android開發(fā)者已使用過Kotlin。這里并非鼓勵(lì)大家一定都要使用Kotlin,學(xué)習(xí)新語言就像一次投資,要權(quán)衡團(tuán)隊(duì)成本與收益之間的利弊。Fuchsia2016年開始,Google有一群超過百人的工程師團(tuán)隊(duì)秘密研發(fā)一款名為Fuchsia的新系統(tǒng),該團(tuán)隊(duì)很豪華,有來自Android、iPhone、WebOS、Chrome、Flutter等核心工程師,這么多優(yōu)秀的人在一起研發(fā)這個(gè)項(xiàng)目,的確值得期待。Fuchsia的內(nèi)核采用Zircon,UI層采用Flutter框架,底層渲染Escher,支持Vulkan作為底層Graphics API。
提到Vulkan,順便說一下,去年筆者在美國跟Android團(tuán)隊(duì)討論到并問及Vulkan未來的規(guī)劃,Google表示未來幾年會大力推廣Vulkan技術(shù),Vulkan是一種跨平臺的高性能低開銷的圖形接口,在移動(dòng)設(shè)備上比OpenGL ES有著更出色的表現(xiàn)。Vulkan將會是未來Android平臺的一個(gè)發(fā)展方向,尤其是游戲領(lǐng)域,比如王者榮耀Vulkan版本。
在2017年5月,Google的Android工程副總裁Dave Burke稱Fuchsia是早期實(shí)驗(yàn)項(xiàng)目,而在谷歌內(nèi)部有很多這類實(shí)驗(yàn)項(xiàng)目,存在很大未知變數(shù)。2017年11月,Google研發(fā)人員表示Fuchsia支持Swift,足見打造統(tǒng)一操作系統(tǒng)的野心。在過去的Google I/O大會只字未提及Fuchsia,Google官方回應(yīng)不清楚Fuchsia會在出現(xiàn)在什么設(shè)備。
Fuchsia會是Android的終結(jié)者嗎? 筆者認(rèn)為至少未來五年內(nèi)不太可能取代Android。當(dāng)年為了和蘋果iOS抗衡,Android系統(tǒng)研發(fā)作為Google重中之重,在這種情況下,Android誕生依然花費(fèi)了Google 3年時(shí)間。而Fuchsia只是公司目前的實(shí)驗(yàn)項(xiàng)目,且Fuchsia并非基于業(yè)界成熟Linux內(nèi)核,而是采用全新Zircon內(nèi)核,項(xiàng)目工程路還很遠(yuǎn)。
筆者簡單研究了一下Fuchsia系統(tǒng)源碼,總結(jié)了一下Fuchsia的整個(gè)技術(shù)架構(gòu)圖如下所示。
從Fuchsia技術(shù)架構(gòu)來看,內(nèi)核層zircon的基礎(chǔ)LK是專為嵌入式應(yīng)用中小型系統(tǒng)設(shè)計(jì)的內(nèi)核,代碼簡潔,適合嵌入式設(shè)備和高性能設(shè)備,比如IOT、移動(dòng)可穿戴設(shè)備等,目前這些領(lǐng)域標(biāo)準(zhǔn)化級別的壟斷者。以及在框架層中有著語音交互、云端以及智能化等模塊,由此筆者揣測未來Fuchsia率先應(yīng)用在音控等智能設(shè)備。
Fuchsia基于功能的模塊化操作系統(tǒng),應(yīng)該會使各組件模塊能獨(dú)立升級更新能力,保證體驗(yàn)一致性。Fuchsia在IOT領(lǐng)域占據(jù)一定份額后,加之其良好的跨平臺,可以再逐步滲透到移動(dòng)手機(jī)、筆記本電腦等設(shè)備,進(jìn)而三位一體,打造手機(jī)、電腦與IOT完美的互聯(lián)互通的統(tǒng)一平臺體驗(yàn),讓多端設(shè)備都離不開Fuchsia。在2018年10月,在“藍(lán)牙特別興趣小組(Bluetooth SIG)”舉辦的UnPlugFest(UPF)測試大會上,Google再展示了Fuchsia與Android設(shè)備的互聯(lián)性,可以窺見一斑。
Fuchsia的定位更是物聯(lián)網(wǎng),再是一統(tǒng)江湖,但路途漫長,至少要5年甚至更遠(yuǎn)。未來不可知,當(dāng)然說不定Fuchsia作為實(shí)驗(yàn)項(xiàng)目,一直待在實(shí)驗(yàn)室,不過這種可能性比較小,做不到一統(tǒng)江湖,在IOT領(lǐng)域發(fā)光發(fā)亮還是大有可為的。
展望未來操作系統(tǒng)
移動(dòng)操作系統(tǒng)的演變過程,從按鍵交互的塞班功能機(jī)到觸摸屏交互的Android/IOS智能機(jī),從小屏幕手機(jī)到全面屏、劉海屏、水滴屏。任何系統(tǒng)無非干兩件事:輸入和輸出,接收到外部輸入信號后經(jīng)過操作系統(tǒng)處理后輸出信息。
從按鍵式交互到觸屏式交互,伴隨著塞班系統(tǒng)到Android系統(tǒng)的轉(zhuǎn)變。未來的交互方式一定會更加生物智能化,當(dāng)下的觸屏交互可以理解成人類的觸覺輸入方式,未來將朝著人們更常見的聽覺輸入(語音)和視覺輸入(身體姿勢、表情等),甚至嗅覺輸入(氣味變化),也會伴隨著新的操作系統(tǒng)的誕生。需要更加無縫地切入生活,而不是“安靜,你吵到我的TNT”方式。屏幕從小尺寸到大尺寸,并沒有引發(fā)操作系統(tǒng)變革,因?yàn)榧夹g(shù)創(chuàng)新是非連續(xù)性,非連續(xù)性才會引發(fā)第二曲線,誕生新技術(shù)。從1960年大型機(jī),到1990年個(gè)人筆記本,再到現(xiàn)在的智能手機(jī),設(shè)備本身越來越小。未來的設(shè)備如果發(fā)展非連續(xù)變革,可能不再需要實(shí)體硬件,隨處可輸出,一張白紙、一面墻,到那時(shí)操作系統(tǒng)的UI架構(gòu)必然全新的變化。前面提到Fuchsia系統(tǒng),筆者認(rèn)為至少未來五年內(nèi)不太可能取代Android,但未來可期。新操作系統(tǒng)的崛起源于降維打擊,直線超車很難,需要有非連續(xù)變革,如果只是某種程度上的改進(jìn),很難突破用戶習(xí)慣、廠商以及生態(tài)圈的阻礙。Fuchsia需要降維打擊,比如Fuchsia在IOT領(lǐng)域以及新的交互方式都很出色,加上萬物無縫式的互聯(lián)互通的平臺,擁有跨平臺型特性的Fuchsia有機(jī)會成為超級平臺。
Android發(fā)展至今,已成為全球用戶量最廣泛的移動(dòng)操作系統(tǒng),手機(jī)行業(yè)競爭異常激烈,經(jīng)過幾番洗牌,國內(nèi)手機(jī)廠商主要是華米OV四大公司,筆者預(yù)測在未來五年內(nèi)國內(nèi)手機(jī)廠商可能只有TOP3,那么Android的未來在哪里呢?
Google在2014年發(fā)布Android Wear智能手表系統(tǒng)、Android TV系統(tǒng)以及Android Auto汽車系統(tǒng),在2016年發(fā)布的Android Things智能設(shè)備,這些全方位構(gòu)建安卓的生態(tài)圈。在未來在人工智能和5G的賦能下,智能汽車、智能家居、IOT都將會有廣闊的市場前景。但就目前人工智能的奇點(diǎn)還沒到來,技術(shù)還處于前期階段,一旦奇點(diǎn)來臨將會爆炸式發(fā)展,或?qū)⒅匦露x生活方式。
汽車的智能化和互聯(lián)網(wǎng)化是未來一大趨勢,Google這兩年確實(shí)在汽車領(lǐng)域發(fā)力,Android Auto在過去一年的用戶增長250%。天生的移動(dòng)特性加上越來越多的互聯(lián)網(wǎng)服務(wù)需求,汽車需要一個(gè)具備多種感知能力的系統(tǒng),或?qū)⒊蔀槭抢^手機(jī)、電視后Android的下一重點(diǎn)開拓領(lǐng)域。受到駕駛安全的限制,車載場景正好需要將以往的觸屏按鈕的交互方式,轉(zhuǎn)向語音交互和生物感知,車艙內(nèi)是天然的語音交互場景,而不再是“安靜,你吵到我的TNT”,語音和圖像識別、人工智能等技術(shù)或許會在車載領(lǐng)域得到更大的發(fā)展。
職業(yè)發(fā)展
隨著Android的發(fā)展,有些人對Android未來感到茫然,經(jīng)常收到讀者私信問,“前輩,從事Android是不是沒有前途,找工作困難,希望能給點(diǎn)建議?”。早在2010年市場上有大量Android招聘,基本懂一點(diǎn)Java基礎(chǔ)的就可以搞Android,當(dāng)時(shí)是移動(dòng)互聯(lián)網(wǎng)創(chuàng)業(yè)的高峰期,號稱只要做個(gè)App就可以創(chuàng)業(yè)。“風(fēng)來了豬都能找到工作,風(fēng)停了最先摔死的都是豬”,如果你覺得找工作難,那一定是你在混日子,Android中高級以上的人才一直都非常稀缺。
只要在Android領(lǐng)域深耕,做到極致,努力成為這個(gè)方向的專家,有精力再提升工程架構(gòu)思維,軟件工程思想都是相通的,境界會得到提升,即便再學(xué)習(xí)新東西也會非??臁V灰粋€(gè)領(lǐng)域做到極致,即便Android被淘汰了,換新領(lǐng)域面試官依然會相信你也能做到極致。千萬不能用一年的工作能力混十年工作經(jīng)歷,否則你的市場價(jià)格連一年都不如,成為工作困難戶。
AndroidAndroid系統(tǒng)迭代更新10余年,在用戶體驗(yàn)、性能、功耗、安全、隱私等方面都取得很大的進(jìn)步,后續(xù)版本會持續(xù)在內(nèi)存、文件系統(tǒng)、虛擬機(jī)、圖形圖像等方向優(yōu)化。隨著Android系統(tǒng)功能越來越多,系統(tǒng)架構(gòu)中有些模塊未來可能會被重構(gòu),某些服務(wù)大鎖制約性能,比如Android 8.0優(yōu)化過binder大鎖讓性能顯著提升。關(guān)于圖形方面,Vulkan將會是未來Android平臺的一個(gè)發(fā)展方向,尤其是游戲領(lǐng)域。
人工智能在Android系統(tǒng)上目前效果不太顯著,Google未來應(yīng)該還會持續(xù)投入,比如在AI預(yù)測用戶行為加上相應(yīng)后臺管控策略用于提升手機(jī)續(xù)航。碎片化仍是當(dāng)下最主要的問題,碎片化也導(dǎo)致用戶隱私、安全和體驗(yàn)一致性方面得不到保障,Google專門成立團(tuán)隊(duì)致力于Android Mainline,從Android Q開始規(guī)劃Mainline,未來的版本都將逐步迭代更新。
最后說一點(diǎn),App兼容性問題比較嚴(yán)重,據(jù)Google實(shí)驗(yàn)統(tǒng)計(jì)Android Q系統(tǒng)在全球Top 1000應(yīng)用的兼容性不達(dá)標(biāo)率4.3%,而中國Top 1000應(yīng)用的兼容性不達(dá)標(biāo)率17.6%,可見國內(nèi)Android生態(tài)圈更為嚴(yán)峻得多,Google對隱藏API的限制就是一步長遠(yuǎn)之棋,短期內(nèi)導(dǎo)致應(yīng)用不兼容加劇,長期來看生態(tài)圈會逐步健康,最理想的情況就是Android系統(tǒng)大版本升級而App兼容性問題不再有,后續(xù)Google應(yīng)和廠商會加強(qiáng)跟主流應(yīng)用協(xié)作規(guī)范應(yīng)用,搭建良好健康的Android生態(tài)圈。
行業(yè)形勢Android確實(shí)不是當(dāng)年盛況,已經(jīng)不再像前幾年前那么火爆。一種語言如果經(jīng)歷過盛極一時(shí),那么必然有這樣的一條曲線,像我們學(xué)的正弦曲線先急速上升,然后到達(dá)頂點(diǎn),然后再下降,最后再趨近一個(gè)平穩(wěn)的值。那么這一兩年就已經(jīng)是在一個(gè)飽和值之間浮動(dòng),因此在這樣的形式下,可能對于個(gè)人開發(fā)者相應(yīng)的要求就要高一些。以前是只要你會Android四大組件的都是個(gè)香餑餑,那樣的時(shí)代已經(jīng)過去了,隨著人機(jī)交互的體驗(yàn)要求,App的用戶體驗(yàn)的要求、流暢度等等,已經(jīng)不可同日而語。在這樣的大環(huán)境下,那么對我們的Android開發(fā)工程師也是同樣的改變。
在這樣的情況下,由于飽和,隨處都能招到初級的工程師,公司有了選擇的余地,所以肯定會去選擇更加優(yōu)秀的,這就必然導(dǎo)致了我們經(jīng)常說的,Android開發(fā)者已經(jīng)爛大街了,其實(shí)不然,只是公司的要求變高,市場飽和,門檻變高而已。所以這就要求我們更加的精于技術(shù),據(jù)我了解,中、高級的工程師還是很受歡迎的。
對于程序員來說,要學(xué)習(xí)的知識內(nèi)容、技術(shù)有太多太多,要想不被環(huán)境淘汰就只有不斷提升自己,從來都是我們?nèi)ミm應(yīng)環(huán)境,而不是環(huán)境來適應(yīng)我們!
Android高級進(jìn)階知識點(diǎn)總結(jié)
這里附上上述的技術(shù)體系圖相關(guān)的幾十套騰訊、頭條、阿里、美團(tuán)等公司19年的面試題,把技術(shù)點(diǎn)整理成了視頻和PDF(實(shí)際上比預(yù)期多花了不少精力),包含知識脈絡(luò) + 諸多細(xì)節(jié),由于篇幅有限,這里以圖片的形式給大家展示一部分。
相信它會給大家?guī)砗芏嗍斋@:
上述高清技術(shù)腦圖以及配套的架構(gòu)技術(shù)PDF:私信我【面試】獲取Android架構(gòu)視頻+BAT面試專題PDF+學(xué)習(xí)筆記?
當(dāng)程序員容易,當(dāng)一個(gè)優(yōu)秀的程序員是需要不斷學(xué)習(xí)的,從初級程序員到高級程序員,從初級架構(gòu)師到資深架構(gòu)師,或者走向管理,從技術(shù)經(jīng)理到技術(shù)總監(jiān),每個(gè)階段都需要掌握不同的能力。早早確定自己的職業(yè)方向,才能在工作和能力提升中甩開同齡人。
無論你現(xiàn)在水平怎么樣一定要 持續(xù)學(xué)習(xí) 沒有雞湯,別人看起來的毫不費(fèi)力,其實(shí)費(fèi)了很大力,這四個(gè)字就是我的建議!?。。。。。。?!我希望每一個(gè)努力生活的IT工程師,都會得到自己想要的,因?yàn)槲覀兒苄量?,我們?yīng)得的。當(dāng)我們在抱怨環(huán)境,抱怨懷才不遇的時(shí)候,沒有別的原因,一定是你做的還不夠好!