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

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

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

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

image

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

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

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

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

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

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

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

image

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

因爲我們在自己的項目中往往會通過啓動一個service來進行某些後臺運算,當計算完成我們需要通過通知Activity來進行UI的更新,我們的Activity也可以和service進行交互來進行添加邏輯的操作,Activity和Fragment之間的通信就會更頻繁了

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

image

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

比如如果對於一個繁雜的Activity進行重構,MVP、mVC模式中Activity的不同作用,在性能優化中爲什麼Activity能夠造成內存泄漏,怎麼解決?會不會用常用的性能優化工具:leakcanary、systrace、traceView等,這些擴展的知識點往往都會在面試進行中,隨着面試官的思路不斷延伸出來,這時候我們應該怎麼去應對這樣的問題呢?

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

image

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

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

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

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

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

image

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

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

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

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

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

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

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

image

3.Android系統源碼的學習

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

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

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

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

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

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

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

image

領取方式:關注+轉發+評論,點贊加我贈送

最最最後

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章