Android 面試總結

最近開始準備新工作了,寫下自己覺得找新工作的流程和看法。

我覺得要從這幾個方面入手:面試的公司對象、面試技巧禮儀點、面試知識點準備。

面試公司對象

你想要找一傢什麼樣的公司,BAT級別的,還是行業巨頭的,還是一般的,你是想追求什麼?薪資待遇還是技術乾貨,這些是你一定要想明白的,這是你找工作最核心的,最原始的出發點,違背了這些,即使找到了也乾的心不甘情不願,所以瞭解自己的需求及自己準備復出的努力。

 

面試技巧禮儀:

這些非一朝一西能夠學會,到我們要知道和注意,不求完美,但應做到大大方方、乾淨利落。同時,每個人根據自身的優缺點進行不同的準備,然後平時自己看到說的有用的方式可以記錄下來。總的來說,無法說話邏輯清晰、觀點表述明確,外表穿着得體等。

 

面試知識點準備:

我是從事Android移動端開發,就主要針對這個行業裏面試要求的具體知識進行羅列。

自我介紹 :(很重要,第一印象建立的時間)

最好能夠把你的自我介紹說辭寫出來並進行自我演練,達到語句流暢,邏輯通順,層次分明,簡潔明瞭。時間上2-3分鐘。

關鍵點:

  • 之前工作的公司、崗位及工作方向。

  • 團隊構成,在團隊中的位置及承擔的責任。

  • 爲團隊做出的主要貢獻,對於這部分涉及到的 項目經歷以及延伸出的知識點 一定要重點準備。

  • 能夠從側面反映出你優點的愛好。

  • 如果能從其它渠道瞭解到你招人的部門所做的東西,那麼也可以談談對他們的一些瞭解以及自己的願望,沒有就算了,這個是可選項。

項目介紹:

項目經驗這塊因人而異,把覺得做的有亮點的東西挑出來,從四個方面來準備:

  • 功能模塊的實現

  • 達到了什麼效果

  • 遇到了什麼問題,是如何解決的

  • 涉及到的相關知識點

項目經驗和知識點 其實是一個雙向的過程,要 試圖去找到它們之間的聯繫:

  • 談到項目經驗的時候,可以說:做完 xx 之後,我還去了解了一下 yy 背後的原理,xxx,這裏體現的是 你是否有求知慾 。

  • 談到知識點的時候,可以說:yy 的原理是這樣的,在 xx 項目中我是如何應用它來解決問題的,這裏體現的是 你是否具備把知識付諸實踐的能力。

遇到的問題:

一定要準備,很重要! 問題涉及到知識點也要都弄清楚。平時項目可能比較忙,遇到問題急着解決。但是要學着先把問題先記錄下來,之後再按下面的步驟進行總結,有條理地進行闡述:

  • 遇到問題

  • 分析過程

  • 解決方案

  • 結果

基礎知識

java 基礎:

  • 面向對象的基本思想

  • Object類相關:Object類的幾個關鍵函數、String涉及到的常量池概念,序列化 & 反序列化。

  • 重要關鍵字:final、static。

  • 內部類:內部類的分類、應用場景、內部類編譯成class後是怎麼樣的。

  • 抽象類 & 接口:區別、應用場景。

  • 編碼:編碼的目的、分類。

  • 異常:異常體系、自定義異常。

  • 註解:註解的基本概念、分類、編譯時註解 & 運行時註解。

  • 容器:重要容器的內部實現、容器間的對比。

  • 內存模型。

  • 垃圾回收。

  • 類加載的過程。

  • 泛型:分類、通配符 & 上下邊界、泛型擦除。

  • 反射:使用。

Android基礎

  • Dalvik、Art虛擬機
  • Activity:生命週期、launchMode。

  • Fragment:生命週期、懶加載、兩種Adapter之間的區別。

  • BroadcastReceiver:基本概念、廣播分類、權限。

  • Service:生命週期、onStartCommand的返回值、startService和bindService的區別、相同進程 & 不同進程的交互、IntentService實現原理。

  • 重要的工具類 & 源碼實現:AsyncTask、HandlerThread、Handler、IntentService、LruCache、LinkedHashMap、SparseArray。

  • RecyclerView:緩存原理、和ListView的對比、Adapter如何適配多種layout。

  • 存儲:數據庫升級 & 優化、ContentProvider,SharePreference。

  • SDK版本升級的兼容問題。

  • Android的權限管理機制。

圖片

  • Bitmap相關:Bitmap的大小計算、質量、inJustDecodeBounds、inBitmap。
  • 幾種圖片格式的對比、壓縮。

  • 大圖加載:BitmapRegionDecoder

算法

 

  • 別無捷徑,刷題,但是刷題的時候,要按照題的類型去總結。

​​​​​​​開源框架

  • RxJava:操作符的應用場景、重點操作符的內部實現、和RxJava的對比。
  • Glide:流程、緩存相關的實現。

  • Retrofit:流程、動態代理 & 註解解析。

  • OkHttp:流程、隊列實現、緩存實現。

性能

  • 性能優化技巧:啓動速度優化、佈局優化、內存優化、電量優化、APK大小優化、列表滑動優化。
  • 性能優化工具:TraceView、Systrace、調試GPU過度繪製 & GPU呈現模式分析、Hierarchy Viewer、MAT、Memory Monitor & Heap Viewer & Allocation Tracker、LeakCanary、Lint。

  • ANR:ANR原理 & 源碼分析、舉一個處理ANR的例子。

  • 性能實踐:解決過的性能問題,從 遇到問題、分析問題、解決問題、結果 四個點進行闡述。

View

  • 繪製流程:measure、layout、draw三個關鍵流程。
  • 事件分發:事件分發的原理、處理過的滑動衝突問題。

  • 自定義View:Canvas & Path,實現過的比較複雜的自定義View。

架構

 

  • MVP:MVP的思想 & 優劣勢、在項目中的應用、

源碼

  • AMS
  • WMS

  • Binder

  • 應用打包流程

  • 應用啓動流程

  • 應用安裝流程

網絡

  • 基礎知識:看一下對於 <<計算機網絡>> ,重點是網絡分層模型、TCP/UDP、HTTP/HTTPS。

設計模式

     按照23種網絡模型、三個分類進行總結,每種設計模式包含以下三個方面,至少要準備常用的幾個:

  • 基本概念:UML圖、簡單例子、應用場景、優勢 & 劣勢。

  • Android源碼中的實現

  • 項目中的應用

多線程

  • 看併發編程的藝術,這本書的目錄就是多線程最好的知識體系。
  • 遇到過的多線程問題、怎麼解決的。

Gradle

    • 常用配置。

    • 多渠道打包。

  • 插件化

    • 插件化的核心思想。

    • 幾種插件化框架實現的原理。

組件化

  • 組件化的優勢。
  • Arouter:使用方式、實現原理。

Kotlin

  • 有用到的可以看看。

多媒體

 

  • 音頻、視頻播放。

JNI

  • 調用實現方式。

 


備註:上面基礎知識方面參考了 簡書上的 澤毛 的博客,我認爲這個人的博客很好,很優秀,值得我去學習。希望大家可以去看一下他的博客。看到別人的優秀,就會看到自己的不足,承認自己的不足,去做,你一定也會優秀的,come on!

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