PS:最近有些難受,以下內容并不客觀,更偏向于自己,希望大家友善發言,如果能夠說一下自己的想法或者對于面試看法技巧之類的就更感謝了,
前言
首先介紹一下自己的情況,目前所在的是一家小的創業公司,待了 3 年多,薪資一般吧,
我覺得自己的能力是沒問題的,想尋求更好的發展,
本來呢,也打算騎驢找馬,打算年前離職,但是昨天的一次 Android 面試讓我心好累……我迷茫了,

我的作業經歷
由于這幾年公司也在轉型,作業經歷大概可以分為 3 個階段,
第一階段是從進公司開始做 android app 開發,無論是外包或者公司的主力產品都做過,
第二階段是做 ROM 開發,由于公司規模不大,除了硬體和底層的東西外,基本上是一個人負責了整個 ROM 的修改,編譯,發布(基于 MTK 的某一個 rom,然后做一些 android framework 層面上“奇奇怪怪”的定制),
第三階段,也就是當前,之前做的 ROM 所適配的手機銷量未達預期,公司也不再準備投入更多,基本上是做做簡單的維護,而我被分配的新任務是做機器學習的一些東西,比如 Tensorflow, OpenCV 做做圖片處理,訓練之類的,
相信諸位看了上邊的經歷,大概也猜到我現在所面臨的問題,即,當前在一線做 android app 開發,而我的目標仍然是想找 android 開發的職位(沒錯,或許你會說我傻,但是我有自己的堅持),
我對自己的評價
事先說一下,因為確實有段時間未做公司正式專案的 app 開發,但是也不是說已經荒廢了技能,下面是我對自己的一些評價:
- Android app 開發能力一般,但是足以勝任一般 app 開發的任務;
- Android frameworks 方面比普通開發者了解更多;
- 解決問題,學習實踐新技術的能力不錯(無論是從第一次編譯 AOSP 到后來整個 ROM 的開發,發布,還是從對機器學習完全陌生,到現在能夠描述常見機器學習的演算法,使用 Tensorflow 實作一些這方面的需求),
總的來說,我覺得自己的能力還是很不錯的,就是感覺運氣好像不是很好,當初校招的時候就沒有找到拿到心儀的offer,

來自面試的棒擊
我從來沒想到,自己會在面試中淪落到如此尷尬的境地,
我當時是投的騰訊的Android開發崗(畢竟小廠待了這么多年,還是想要進大廠看看的)
騰訊面試官非常耐心,差不多都是按照他所準備的 Android 面試題一一提問,一開始的問題也能應對自如,可是后面我就懵了!
1、說下jvm記憶體結構、代碼呼叫程序中的記憶體流程吧,
2、java如何分配記憶體,多執行緒呢?
3、Spring如何加載注解
4、Spring啟動流程、bean實體化
5、xxljob原理,使用流程
6、OOM定位、解決方式,流程
7、講專案xxxxx
以上問題基本上沒有什么阻礙,大多順利的回答了,但是我沒想到后面居然越挖越深了,
8、redis pipline是全雙工還是半雙工
9、云原生是什么?(這個真不會,我直說了自己不會,面試官就換了個問題)
10、用過廣播嗎?說說廣播的注冊方式?
11、你知道為什么要設計者兩種方式嗎?(不知道,不過面試官給了提示,后面跟上了)
12、那說說廣播底層的設計原理吧
13、為什么要用Binder呢?
14、Binder的原理是什么?Binder的優勢有哪些?為什么Binder不用socket實作?
前面幾個還能在面試官的提示下勉強答上來,但是后面就是真的跟不上了,很多技術都會用,但是要我講出來是真的很難,Binder原理我是真的搞不懂啊……難受,后面的演算法題也沒有答上來……人都傻了,大廠都喜歡這么問嗎?
面試只進行了二十幾分鐘,面試官就跟我說“回家等通知”了,
自我總結
最主要的就是底層原理這些準備的不夠充分,
我對自己的表現非常不滿意,面試官問的技術我都用過,大部分都能答上,
但是我自己所組織的語言,描述的結果卻差強人意,我更期待的是對于我自己專案經歷的說明,因為這是我和其他應聘者不一樣的地方,而面試官卻完全沒問我簡歷上的專案經歷,雖然最后我還是自己硬講了一下,但面試官也并未有興趣,我講的也很干癟,最后面試就這樣結束了,
哎,后面面了阿里,也是一樣的挖底層,Handler和Binder這些東西必問啊!!!要好好準備!!
后面我干脆去機構買了一份大佬撰寫的PDF資料,這份資料我上傳到我們2000人小圈子的共享檔案了,需要的自取,密碼找管理員要(點擊此處藍色字體可以直達),
Android Framework精編內核決議
(一)Handler原理
1.Handler Looper Message 關系是什么?
- 分析 Handler
- 發送訊息
- ……

2.Messagequeue 的資料結構是什么?為什么要用這個數 據結構?
- 為什么要用 Message Queue
- Messagequeue 的資料結構是什么?
- ……

3.如何在子執行緒中創建 Handler?
- ……

4.Handler post 方法原理
- 原始碼分析
- 整理
- ……

5.Android 訊息機制的原理及原始碼決議
- 訊息機制概述
- 訊息機制的原始碼決議
- ……

6.Handler 都沒搞懂,拿什么去跳槽啊?
- 重識 Handler
- Handler 原理決議
- Handler 的延伸
- ……

7.Android Handler 訊息機制中的迷惑行為
- 帶有訊息佇列執行緒概述
- 帶有訊息佇列執行緒的具體實作
- ……

需要份資料的可以點擊下面的藍色字體免費獲取↓↓↓↓↓
這份資料我上傳到我們2000人小圈子的共享檔案了,需要的自取,密碼找管理員要(點擊此處藍色字體可以直達)
(二)Binder原理
1.學習Binder前必須要了解的知識點
- Linux中的IPC機制種類
- Android中的IPC機制
- Linux的IPC通信原理
- Binder的通信原理
- 為什么要使用Binder
- 為什么要學習Binder?

2.ServiceManager中的Binder機制
- 基于Binder通信的C/S架構
- MediaServer的main函式
- 每個行程唯一的ProcessState
- ServiceManager中的Binder機制
- ……

3.系統服務的注冊程序
- 從呼叫鏈角度說明MediaPlayerService是如何注冊的
- 從行程角度說明MediaPlayerService是如何注冊的
- ……

4.ServiceManager的啟動程序
- ServiceManager的入口函式
- ……

5.系統服務的獲取程序
- 客戶端MediaPlayerService請求獲取服務
- ……

6.……(省略)
需要份資料的可以點擊下面的藍色字體免費獲取↓↓↓↓↓
這份資料我上傳到我們2000人小圈子的共享檔案了,需要的自取,密碼找管理員要(點擊此處藍色字體可以直達)
最后,在這里預祝大家新年快樂!面試順利,早日拿下心儀的offer!
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/257826.html
標籤:其他
下一篇:求真心話大冒險原始碼
