面試連環(huán)問:為什么要學(xué)Framework,音視頻,車載,F(xiàn)lutter,架構(gòu)?以及如何學(xué)?
前言
之前整理了一份關(guān)于2022年Android十一位大廠的面試真題,發(fā)現(xiàn)一個共性之處,11個大廠幾乎80%都為到了Handler,binder等等,還有架構(gòu)方面的內(nèi)容,少量的音視頻方面,以及新興技術(shù)車載。
于是,就產(chǎn)生了一個疑問,為什么要學(xué)這些?不僅是面試要懂,還要知道為什么要掌握這些東西???

參考內(nèi)容:
1.騰訊Android開發(fā)筆記
2.2022年Android十一位大廠面試真題
3.60道音視頻經(jīng)典面試題
一丶為什么要學(xué)Framework,如何學(xué)?
參考內(nèi)容:
騰訊Android開發(fā)筆記中Framework內(nèi)容匯總
學(xué)習(xí)Framework
之前首先去了解這是一個什么東西,很多人在做Android開發(fā)好幾年了甚至對Android本質(zhì)上是一個什么東西都不是很了解Android本質(zhì)上是一個linux
系統(tǒng)。只不過谷歌在linux
的基礎(chǔ)上開發(fā)了一些一系列軟件,因?yàn)楸旧淼膽?yīng)用方向是在移動端這塊,Android在一系列的基礎(chǔ)上定了一個自己的APK
的標(biāo)準(zhǔn),在整個linux
系統(tǒng)上需要一個完整的解包和幫我運(yùn)行我自己寫的代碼的一個過程,那么這個過程涉及到如何去啟動一個進(jìn)程,那么在這個過程中我們要去了解
Android的開機(jī)流程
開機(jī)后做了什么
啟動系統(tǒng)運(yùn)行了那些軟件
我自己的
APK
安裝到這個系統(tǒng)上由誰來安裝的以及如何啟動當(dāng)前進(jìn)程也就是APP所謂的啟動流程
以及如何看到當(dāng)前APP我想看到顯示的畫面
這就涉及到當(dāng)前的Android的整體渲染的過程以及觸摸信號的處理,這些了解完了就知道了代碼寫出來為什么會有卡頓,崩潰情況從出現(xiàn)而導(dǎo)致APP啟動流程慢以及閃退。
Android Framework的一個整體學(xué)習(xí)也是為了讓我們深入本質(zhì),了解谷歌如何去吧Android系統(tǒng)寫出來的,同時這些方案會對我們?nèi)粘懘a過程中出現(xiàn)的各種各樣的問題會有一個怎么的反應(yīng)和反饋,按照整體的學(xué)習(xí)路線的話,首先第一個先要去搞定一個Binder
和Handler
相關(guān)的所謂的一個跨進(jìn)程通信的問題,因?yàn)樗隙ㄊ嵌喾杰浖谶M(jìn)行一個相關(guān)的協(xié)調(diào)處理,所以第一時間要去了解Handler和Binder的進(jìn)程通信問題,接著了解如何開機(jī),APK
如何安裝,如何啟動,整個APP啟動過程中畫面如何渲染出來,以及觸摸信號如何處理。了解了這些東西后基本上可以是一個初中級的一個開發(fā)者過度到高級開發(fā)的過程。

二丶為什么要學(xué)習(xí)音視頻,如何學(xué)?
參考內(nèi)容:
音視頻真的是太吃香了?60道音視頻經(jīng)典面試題以及
騰訊Android開發(fā)筆記中音視頻內(nèi)容匯總
在音視頻中H264
和音視頻應(yīng)用中占比非常大,像H264
編碼學(xué)會了后才會對音視頻真正有所了解,在音視頻中最核心的在于它的編碼原理,比如H264
的碼流,I/P/B
幀的編碼流程。
音視頻剪映,比如Bilibili,IJKplayer
,抖音直播特效,音視頻通話這部分都屬于音視頻應(yīng)用,當(dāng)你把整個音視頻編碼和應(yīng)用學(xué)好之后才能真正成為一個音視頻開發(fā)工程師,而且音視頻開發(fā)的薪資也是非常的可觀的。

三丶為什么學(xué)習(xí)車載?如何學(xué)?
車載系統(tǒng)開發(fā),包括蔚來汽車,比亞迪汽車他們?nèi)绾伍_發(fā)車機(jī),車機(jī)會涉及到通信。所以通信又是車載中很重要的一環(huán),車載通信里包含串口,USB。車載中Automotive
系統(tǒng)會涉及到系統(tǒng)原理,車載網(wǎng)絡(luò)模型,以及開發(fā)一個車載應(yīng)用APP。
車載系統(tǒng)會涉及到一些Framework
,Android系統(tǒng)和車載系統(tǒng)有一些東西是相通的,至少在Framework
這一層是相通的,所以在學(xué)習(xí)車載之前還是要掌握Framework
,包括Framework
啟動模式,所以又會涉及到一些啟動模式啟動流程的理解。最后再以專業(yè)的CarLauncher開發(fā)去開發(fā)出一個完整的車載系統(tǒng)出來,包括車載的多媒體如何調(diào)動車載的硬件比如空調(diào),車窗以及一些偏底層硬件。時代在進(jìn)步,科技在進(jìn)步,很多大廠都在進(jìn)軍車載應(yīng)用,我們要緊跟時代的腳步。

四丶如何學(xué)習(xí)Flutter?
Flutter
現(xiàn)在最新版本是3.0版本,flutter
如何學(xué)習(xí),首先第一步是Dart
語法接著是Flutter3.0
的應(yīng)用比如Widget
和普通的UI
。如果想要達(dá)到Flutter
的進(jìn)階哪還要去了解Flutter
的Framework
。flutter Framework
和Android Framework
有很大的不一樣,這個時候要了解到Skia
層flutter
應(yīng)用啟動,Dart
虛擬機(jī)等。

五丶為什么要掌握架構(gòu)?怎么學(xué)?
最近在很多一線大廠上班的老同事和一些同學(xué)都反饋一個問題,工作中需要做框架設(shè)計同時還需要維護(hù)公司已經(jīng)在使用的框架,框架的設(shè)計和維護(hù)能力已經(jīng)成為了必備的技能。面試的時候一定會考察應(yīng)聘者這方面的能力,這方面的技能到底應(yīng)該如何學(xué)習(xí)才能讓自己滿足工作中的需求呢?
首先
OOP
思想與設(shè)計模式必須非常熟練,各種模式被設(shè)計出來是用于解決什么問題
23種設(shè)計模式在Android中如何運(yùn)用的?
設(shè)計在
Framework
層如何使用?在三方
SDK
如何使用?在整個APP整體結(jié)構(gòu)設(shè)計中如何使用
參考內(nèi)容:
騰訊Android開發(fā)筆記中23種設(shè)計模式

只要我們在這些方面經(jīng)歷多一小段事件的訓(xùn)練,讓我們思維方式發(fā)生變化,框架的設(shè)計和維護(hù)能力就會很快訓(xùn)練出來了,自然而然就能滿足工作中的要求了。