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