2019寒冬之下,作爲一個android碼農,是如何進入騰訊的?

題圖和下面的插圖都是我根據各網站整理出來的內容,需要的直接聯繫就好了

When the snows fall and the white winds blow, the lone wolf dies but
the pack survives ----- Ned
Stark

由於衆所周知的原因,原生android開發如今已經日漸凋敝,作爲一個Android程序員,不僅要會Java,Kotlin,JavaScript,Css,Html,還要會Flutter,C++,FFmpeg,Linux等相關知識。

筆者從7月份開始面試,到8月中旬截止(因爲騰訊已經面試通過,自己面試面的也累了,就決定去騰訊了) 接下來就說說各家的面試題,一共面試了快二十家公司,既有外包,也有中小型企業,也有準備D輪甚至上市的C輪企業,更有BAT等知名企業。接下來就一一說一下各家公司的面試題。 也建議各位面試的時候不要上來就直奔BAT等,大廠面試官的技術廣度與深度也不是剛出來面試的你,能搞定的。最好先去一些小公司看看他們問的哪些東西,自己回去在查漏補缺一下,最後去大廠。 最後祝各位能進入自己心儀的公司。

按照面試的時間順序來一一羅列各家公
司的面試題。(記憶可能出現紕漏,哈哈,各位看看就好,有些公司的面試可能比較常規,就沒有什麼特別的印象)

武漢佰鈞成(外包OPPO,自家面試官)

因爲是週六的專場面試,也不用請假,所以馬上就參加了這家公司的面試。 兩輪面試

  • Activity的啓動流程
  • Activity的啓動模式,應用場景
  • 如何減少對第三方框架的耦合
  • hashmap的基本原理

博彥科技(外包OPPO,OPPO面試官)

兩輪面試

  • Handler機制
  • Binder機制
  • 寫一個單例模式,DCL爲什麼要加V關鍵字
  • 直接在Activity Sleep 5000ms,再post一個runable會不會ANR。
  • 如何監聽ANR
  • View的繪製流程,每個都是幹什麼的
  • 事件傳遞機制

Insta360 (C輪公司)

三輪面試

  • 組件化如何實現組件通信
  • HashMap基本原理 如何減少hash衝突 如何增大hash衝突
  • 安裝包怎麼優化的
  • 如果有A,B,C,D,E五個步驟,每個步驟都需要操作對應請求,用哪種設計模式。

華爲外包

兩輪技術面試

  • 安裝包優化做了哪些工作
  • 對加班怎麼看的

本來一面完了就讓我等着二面的,等了十分鐘後跟我說二面面試官暫時不在,等下次再約時間,出門等了10分鐘的公交,離家還有20分鐘的時候,又給我打電話讓我回去參加第二面,然後就沒去了,太折騰人。

綠網科技

三輪技術面

  • hashmap原理
  • MVP,MVVM,MVC的區別是什麼
    • Java Memory Model的內存模型
  • 如果讓你設計一個app,打算怎麼設計
  • JVM垃圾回收有哪幾種算法,有哪幾種垃圾回收處理器
  • Serial使用的哪一種回收算法
  • JVM的內存模型
  • Android主線程是怎麼啓動的
  • dex是如何轉爲機器碼的
  • llvm編譯是如何優化代碼的
  • 說一個你自己的缺點。

最終結果是這樣的 哈哈,還是不能要太高
clipboard.png
現組建了一個Android的大圈子共同取暖,內有大神小白起飛,圈內會不定時更新一些Android中高級的進階資料,歡迎大家帶着技術問題來討論,共同成長進步!(包含資深UI工程師,Android底層開發工程師,Android架構師,原生性能優化及混合優化,flutter專精,大廠面試);

同洲電子

四輪技術面

  • Activity的啓動流程
  • 靜態類的靜態方法能不能被子類重寫(不能,走的invoke-static指令,只有走invoke-virtual指令的纔可能實現多態)
  • Linux的啓動流程
  • 對Native層有沒有興趣
  • 對做智能家居有沒有興趣
  • 招一個應屆生進來做app也是做,招你也是做,爲什麼要招你

順豐科技

一輪技術面 總共三輪面試

  • handler機制
  • looper的喚醒是在Java還是Native層,怎麼做到的
  • HashMap,ConcurrentHashMap,HashTable有什麼異同
  • Binder通信機制
  • 跨平臺開發熟不熟悉
  • 如何提高海外用戶的訪問速度,假設服務器在深圳。
  • 如何學習一個新東西,有哪些執行步驟

百度

  • 紅包隨機算法 是怎麼做到的
  • 寫一個二叉樹的深度度優先遍歷,遞歸 非遞歸
  • Android中LocalServerSocket是幹什麼用的
  • binder的Native層代碼看過嗎
  • Linux有哪些RPC機制
  • 爲什麼android使用了Binder機制沒采用共享內存
  • 如果讓你設計一套進程間通信的機制,你會怎麼設計
  • Linux的模塊動態加載機制是怎麼實現的
  • 一個物理屏劃分爲三個邏輯屏,是靠誰來分發事件的。
  • ConcurrentHashMap是不是絕對的線程安全。(final,絕對線程安全,相對線程安全,線程不安全)
  • 線程池是如何管理線程狀態的

大宇無限(C輪公司 前身是豌豆莢)

是我第二心儀的一家公司,辦公環境,氛圍,福利都好的一逼,可惜了 總共七輪面試 五輪技術面

  • Kotlin的訪問權限
  • Koltin爲什麼比Java更安全
  • Koltin比Java好在哪
  • JVM的內存模型
  • JMM的內存模型
  • 爲什麼操作數棧是Thread-Private
  • 計算二叉樹的深度
  • ArrayList跟LinkeList區別
  • ArrayList如何擴容的,如何提高ArrayList的效率
  • 動態代理靜態代理區別
  • 啓動優化怎麼做的
  • 如果給你個IOS APP,你打算怎麼優化。
  • http有哪幾種版本,版本間有什麼區別。https跟http有什麼區別。
  • apk爲什麼要簽名,v1跟v2簽名的區別
  • apk從編譯打包都安裝的流程
  • dex到odex爲什麼不能在編譯期優化
  • 熱修復原理
  • 你的優勢是什麼

平安

三輪面試

  • http2.0 1.1 1.0的區別
  • http如何保證安全性
  • 安裝包優化有哪幾種方式
  • 啓動優化有哪幾種方式
  • View的繪製流程,每個方法幹什麼的,如果要獲取View的寬高,在哪個方法裏獲取
  • 如何應對弱網環境
  • android數據存儲方式
  • 如果一個app無法訪問網絡,你怎麼做數據存儲。
  • DVM跟JVM的區別
  • React Native跟原生開發的優劣

騰訊

三輪面試 一面

  • 算法題 通電小球
  • Android 沉浸式狀態欄 怎麼實現的
  • 事件處理函數有哪幾個,父View 子View 監聽同一個事件,重寫哪些方法。在哪個View重寫?
  • ViewRootImpl接受事件嗎?
  • apk編譯打包流程 V1,V2 簽名區別
  • 利用logging監聽方法耗時,會不會讓app增大延遲。
  • eventbus爲什麼要用CopyOnWriteList?
  • 插件化怎麼加載資源的?
  • JVM怎麼保證gc效率跟線程運行效率的 ?
  • 如果android沒用對應的view,flutter能運行嗎? 手寫單例模式,volatile 跟 synchronized區別?
  • 接口暴露,但是不讓別人調用,有哪些辦法?

二面

  • 爲什麼採用flatbuffer? 比Json好在哪裏?
  • 如何處理Crash,NativeCrash呢?Google是怎麼做到的?如果上報過程中再次產生Crash能不能捕捉到?
  • uncaughtException是被誰調用的,如果再次崩潰能不能捕獲到?
  • Linux是怎麼知道app崩潰的,如果想要在被kill前 做一些耗時操作,該怎麼做?
  • 考慮設計一個crash捕捉模塊。
  • 100萬個數字求100個最大值。
  • 手寫快速排序算法。

三面 (GM面)

  • kotlin比Java好在哪裏,是函數式編程嗎?
  • 如何防止DNS劫持?
  • 如果讓你實現一個調試器,你會怎麼設計?靜態調試?動態調試呢?

總結:

大廠基本上不太看重具體的技術,無論你是Java還是C++,比較看重思路與抽象的解決方案

如果看到這裏的同學,想在技術上有精進的話,推薦幾本書:《深入理解JVM(周志明)》《Android開發藝術探索》《Android內核剖析》,給大家準備了一份很全面的Android進階資料;內容有面試專題講解丶Android一系列從初級到中級高級的知識的講解,以及最新最火的互聯網技術的講解,flutter—底層開發-性能優化—移動架構—資深UI工程師 —NDK ;網盤自取鏈接:https://pan.baidu.com/s/1vqgc...

提取碼:r637

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