騰訊Android開發2019實習面經

三天前剛面完HR 然後在牛客網上求offer 今天下午終於打來了offer call並且發了錄取郵件 迫不及待來分享一下這次騰訊面試的經驗。

 

初試(4.17電面)

電話在約定時間的9分鐘以後纔打過來 問題大致如下:

1. 爲什麼想要選擇Android開發進行實習

答:略。

2. 簡單介紹一下項目

答:略。

3. 平時有用到一些安卓的分析工具嗎 比如一些性能分析之類的

答:知道Memory Monitor的內存分析工具;還有HierarchyView這種佈局分析工具。

4. 項目裏有用到這些嗎 有關注內存泄漏問題嗎

答:內存泄漏有關注,比如使用ContentResolver查詢數據後,光標對象Cursor要進行close()回收;Bitmap在加載完成後要記得回收等。(順帶提到了Bitmap容易造成的OOM問題,並提出解決方案。)

5. 我看你項目裏用到了熱更新 知道他的原理嗎

答:我用的騰訊Bugly 知道他是基於Tinker的熱修復框架。(然後大概說了一下其原理:以baseApk爲基準包 newApk是我們的熱修復包 通過DexPatch合成新的dex 緊接着在運行時通過反射將合成的patch.dex插入到PatchClassLoader中的dexElements數組之前,以確保該類加載時優先加載補丁dex中的class。

6. 項目裏好像用到了視頻開發 是VideoView嗎

答:一開始用的VideoView,後來覺得其無論是播放的響應還是讀取的速度都不太理想,改用了七牛的框架(然後簡單介紹了一下這個框架)。

7. 平時怎麼學習的 有閱讀源碼的經驗嗎

答:看書看博客。有。(大致分析了一下Handler的源碼和屬性動畫的啓動源碼)

8. 知道apk怎麼縮減體積嗎

答:應該用插件化去處理 但自己沒有實踐過。真正用到的可能是將圖片壓縮、用svg圖代替png、啓動代碼混淆等。

之後介紹了一下他的部門 然後就說他們部門可能要會C++ 因爲可能涉及到NDK開發 我說沒問題 然後20分鐘後官網顯示覆試

複試(4.19電面)

1. 自我介紹

2. 項目介紹

3. 說一下你覺得你的項目裏覺得最有印象的一個

答:我覺得是XXX項目。(然後剖析了一下里面用的框架 並且談到了使用Glide而不用Picasso的理由 然後又從其源碼層面跟面試官分析了一波。)

4. 那你還有看過一些網絡框架嗎

答:項目裏用到的是Retrofit+Rxjava+MVP的經典架構模式,所以有看過Retrofit的創建源碼。(又從源碼層面講了一下流程。)

5. 有自己寫過網絡編程嗎 比如TCP/UDP類似這種的編程

答:無。然後扯到了https。(面試官:能說一下https和http的區別嗎 https如何實現加密的呢)=> 繼續這個話題答 然後說了一下https的非對稱加密以及加密過程的五次握手。

6. 那我們接下來考一下算法吧(內心一慌)有兩個無序的整型數組 如何快速找出它們的交集

(思考了5秒以後就回答了使用Map 然後再和他分析了一下 怎麼快速找出元素 如何擴容之類的。)

7. 平時怎麼學習的?

答:看書看博客。(追問:覺得有效嗎 或者如果你遇到不懂的怎麼辦。)=> 我說我會先記錄下來 然後會找資料弄懂 之後順帶提到了學習Binder通信的過程。

答完以後感覺面試官挺滿意 就說我這邊沒什麼問題了 今天面試就到這兒吧。(晚上12點查看官網就變成了HR面)

HR面(4.23電面)

講道理,那天原本晚上打算和女朋友看首映的。然後HR早上通知下午面試,結果最後晚上纔打來,不過還好趕在首映之前面完了HR。問題的話也不是技術 參考價值不大。一面完官網就顯示已完成 然後今天收到了offer call和offer mail了!然後再說一下,這次三輪面試下來發現面試官們都好溫柔!!巨好的面試體驗!!至少能讓我慢慢放鬆下來 然後冷靜地思考並且作答。

 

附:騰訊提前批面經(3.27三面總監掛)

問題彙總:

(初試)

1. 說一下MVC、MVP、MVVM架構模式。

2. Android系統層次結構

3. Activity活動的啓動模式及應用場景

4. Android進程間通信的方式

5. ContentProvider的設計模式

6. 多線程的實現方法(synchronized和lock的異同)

7. 說一下View的事件分發機制

8. 說一下View從app啓動到顯示在界面上的繪製流程

9. 知道什麼會引起ANR嗎 怎麼避免

10. 說一下你對TCP/IP的理解

11. 有做過app的性能優化嗎

12. 說一下JAVA的GC以及內存模型

13. 快排的實現原理以及具體分析

14. 隊列的數據結構(當時覺得怎麼這麼簡單。。。沒想到後面總監面纔是boss)

(複試)

1. 項目介紹(電面,下面的都是總監的時候視頻面)

2. 熱更新原理(當時沒複習好 這個答得不好)

3. https加密過程(同上)

4. 瞭解過Android最新技術嗎 使用過嗎(答曰Flutter 但是沒用過 只知道是跨平臺開發的 類比於Vue和React 看到總監臉上有點不耐煩就知道涼涼)

5. 操作系統中IO設備與CPU之間怎麼通信(沒答好)

6. JAVA GC的瞭解

7. 散列函數如何解決衝突

8. JAVA 內存模型 JAVA的類加載器 (然後就讓我回去等通知。。當時就灰了 然後就灰溜溜去參加筆試了)

 

不過幸好現在自己也拿到了offer 還是很感謝騰訊給了我一個機會吧 畢竟第一次面試 總結經驗也不錯。

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