概述
都說金三銀四青銅五,這幾個月份是程序員最好的跳槽時間,筆者四月初也換了工做。找工做以前看了不少面試題,複習資料,可是發現純看面試題是不行的,由於靠背的東西是記不牢的,須要知識成體系才能夠,因此筆者整理了一份複習大綱,基本涵蓋了 Android 中高級工程師面試所必須知識點,但願能夠經過此文幫助一些想換工做的朋友更好的複習,準備面試。程序員
本文只羅列出大綱內容,至於每一個模塊的詳細內容,網上不少資料,可自行查閱,後序有時間會放一些我複習時看的資料,這樣複習起來知識更成體系,事半功倍。面試
一、Java 相關
- 容器(HashMap、HashSet、LinkedList、ArrayList、數組等)
須要瞭解其實現原理,還要靈活運用,如:本身實現 LinkedList、兩個棧實現一個隊列,數組實現棧,隊列實現棧等。算法
- 內存模型
- 垃圾回收算法(JVM)
- 類加載過程(須要多看看,重在理解,對於熱修復和插件化比較重要)
- 反射
- 多線程和線程池
- HTTP、HTTPS、TCP/IP、Socket通訊、三次握手四次揮手過程
- 設計模式(六大基本原則、項目中經常使用的設計模式、手寫單例等)
- 斷點續傳
二、Android 基礎
- 自定義 View(參考連接:自定義View,有這一篇就夠了 - 簡書、Android 自定義 View)
- 事件攔截分發(Android事件分發機制,大表哥帶你慢慢深刻 - 簡書 )
- 解決過的一些性能問題,在項目中的實際運用。
- 性能優化工具 (TraceView、Systrace、調試 GPU 過分繪製 & GPU 呈現模式分析、Hierarchy Viewer、MAT、Memory Monitor & Heap Viewer & Allocation Tracker 等)
- 性能優化
(1)網絡:API 優化、流量優化、弱網優化
(2)內存:OOM 處理、內存泄漏、內存檢測、分析、Bitmap 優化
(3)繪製 (4)電量:WeakLock 機制、JobScheduler 機制 (5)APK 瘦身 (6)內存抖動 (7)內存泄漏 (8)卡頓 (9)性能優化:佈局優化、過分渲染處理、ANR 處理、監控、埋點、Crash 上傳。
- IntentService 原理及應用
- 緩存本身如何實現(LRUCache 原理)
- 圖形圖像相關:OpenGL ES 管線流程、EGL 的認識、Shader 相關
- SurfaceView、TextureView、GLSurfaceView 區別及使用場景
- 動畫、差值器、估值器(Android中的View動畫和屬性動畫 - 簡書、Android 動畫 介紹與使用)
- MVC、MVP、MVVM
- Handler、ThreadLocal、AsyncTask
- Gradle(Groovy 語法、Gradle 插件開發基礎)
- 熱修復、插件化
三、Android Framework
- AMS 、PMS
- Activity 啓動流程
- Binder 機制(IPC、AIDL 的使用)
- 爲何使用 Parcelable,好處是什麼?
- Android 圖像顯示相關流程,Vsync 信號等
四、三方源碼
- Glide :加載、緩存、LRU 算法
- EventBus
- LeakCanary
- ARouter
- 插件化(不一樣插件化機制原理與流派,優缺點。侷限性)
- 熱修復
- RXJava
- Retrofit
五、算法與數據結構
- 單鏈表:反轉、插入、刪除
- 雙鏈表:插入、刪除
- 手寫常見排序、歸併排序、堆排序
- 二叉樹前序、中序、後序遍歷
- 最大 K 問題
- 廣度、深度優先搜索算法
- 能夠去刷一下 LeetCode ,對本身提高也會比較大。