怎麼跳過阿里騰訊框架面試中的陷阱?這樣做!高效學習移動開發

yilian發表於2019-12-24

這兩年移動端發展的越來越快,在ios上特別明顯,而Android也是遭遇到了很多打擊

特別隨著初中級Android開發的逐漸飽和,也讓企業在甄選Android面試候選人時變得格外嚴格,恨不得找一位Android開發做所有的事

我在平時的工作中也是一直接觸較多候選人,就這裡想和大家說下我對於Android面試的一些看法

image
image

1.首先對於Android基礎知識的掌握必須要通透!

我把Android基礎知識分為:四大元件Activitiy、service、廣播、內容提供者,還有fragment,當然這些知識點也不是獨立的,每個之間都有融合再一起的知識

比如Activity這個知識點,首先我們需要掌握Activity的使用場景

最常見的在這個Activity中透過嵌入fragment來進行整個專案UI架構的搭建,這時候這個Activity就是整個專案的一個外殼

我們還需要了解整個Activity的生命週期,要知道在那些方法中可以做耗時操作,哪些方法是不可以做耗時操作

在掌握Activity時,我們還需要注意Context的使用,區分在哪些場景可以使用Application context,哪些場景我們儘量使用Activity context

接下來我們還需要掌握Activity的啟動模式,知道哪些場景下使用singleTask、哪些場景下使用singTop。

image
image

我們回到我們的面試,掌握好了以上Activity的幾個知識點之後,我們還應該知道如何讓Activity和其他元件進行通訊,比如Service和Activity之間

因為我們在自己的專案中往往會透過啟動一個service來進行某些後臺運算,當計算完成我們需要透過通知Activity來進行UI的更新,我們的Activity也可以和service進行互動來進行新增邏輯的操作,Activity和Fragment之間的通訊就會更頻繁了

因為我們剛才說過現在一種比較流行的UI架構就是在一個外殼Activity中透過底部切換來進行子Fragment之間的切換顯示,我們看到就一個Activity也包括了很多知識點

image
image

當然如果我們進行擴充套件和延伸的話 還會有很多

比如如果對於一個繁雜的Activity進行重構,MVP、mVC模式中Activity的不同作用,在效能最佳化中為什麼Activity能夠造成記憶體洩漏,怎麼解決?會不會用常用的效能最佳化工具:leakcanary、systrace、traceView等,這些擴充套件的知識點往往都會在面試進行中,隨著面試官的思路不斷延伸出來,這時候我們應該怎麼去應對這樣的問題呢?

其實最好的辦法就是在平時積累,大家自己一定要有一個自己的筆記,這樣你才不會學到後面發現自己什麼都沒學到!

image
image

2.Android開源框架的知識學習

據我在這個行業不短的瞭解,現在很多公司對於開源框架的考察的比重都是越來越重,比如新浪微博關於開源框架的考察就是必須的,阿里、騰訊也都會經常考察候選人有關開源框架的問題

所以說大家對於開源框架也是需要很好的掌握,當然對於開源框架的學習也是有策略的

大家一定要謹記絕對不要深入原始碼而不能自拔,要根據整個框架的總體流程來進行梳理

最好在面試前自己對於在簡歷中提到的框架有一個自己的頭腦梳理,你起碼要在腦子中把這個框架的點都過一下

image
image

這裡提到了簡歷,看過很多份簡歷

大家都有一個很大的問題,就是個人技能寫的太多,我真的不建議大家寫這麼多,特別熟悉、掌握、瞭解這些用詞都是需要謹慎的

我建議大家對於自己掌握特別熟悉的知識點才能用上掌握、還有一些最基本的知識點才可以用到掌握

如果自己在面試前還是覺得沒有太大把握的儘量用熟悉和了解,在簡歷中大家可以把自己特別熟悉的開源框架寫在前面,這樣也更容易讓面試官根據你的簡歷來問答

大家在回答的時候還是要注意一點:有些問題你有可能真的不知道,但是你最好表現出思考的過程

比如你可以這麼回答:這個框架我在專案中確實沒有用到過,但是另外一個框架retrofit我用的比較多,要在面試過程中學會引導面試官轉到你擅長的話題上!

總之這是一個鬥智鬥勇的過程!

image
image

3.Android系統原始碼的學習

對於系統原始碼我又一個最重要的建議,C++基礎不好的同學,原始碼的學習到JAVA層就可以,一般也沒有哪些公司的面試會問到這麼深

如果你找的是Framework開發那就另當別論了,但是對於大多數應用層開發的同學還是去碰這部分了

因為我們畢竟是要參加面試的,面試複習的話肯定需要將就一個價效比,我們不可能有無限的時間來複習,所以要把時間用到刀刃上。

系統原始碼:大家可以從這幾個角度來進行復習:binder、AMS、Application啟動、Activity啟動、View繪製、SurfaceFlinger這幾個角度去複習

當然系統原始碼包括很多,但是這些是問到頻率最高的幾個了!

特別是binder,他可以說是整個Android系統的核心,也是整個程式間通訊的樞紐。

關於這部分的內容,我總結了一些面試題,集中學習成文件

image
image

領取方式:關注+轉發+評論,點贊私聊我【面試】
更多也可以看  面試題集

最最最後

真心祝大家能透過自身的努力提高自己的技術

同時也要找到更高的offer來回報自己!大家加油!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952849/viewspace-2670360/,如需轉載,請註明出處,否則將追究法律責任。

相關文章