前言
19年6月份從網易云音樂離開,放棄了留學機會,開始了人生的第一次創業,前后嘗試了兩個項目,因為個人能力與時機因素都失敗了,雖然沒能享受到創業所能夠帶來高杠桿物質上的回報,但是對個人軟技能和自我邊界認知上都有了很大的提升。
投遞公司與拿到Offer
出于對工作的穩定性和后面自身的發展,主要考慮三個方向,短視頻,陌生人社交和在線教育。雖然說短視頻導致了人類深空探測遲緩,但并不影響內卷下想著被有尊嚴飼養的幻想。面試公司中除了微信都已經通過了面試,給到offer的有字節跳動,快手,百度,美團。最終選擇了字節跳動直播中臺業務。
目錄:
由于題量較多,篇幅的限制,文章中的面試題分享沒有全部附上詳細的解析,但是整理成了一份詳細的PDF文檔可分享給大家,文末獲取免費領取方式
看面試題可以是為了面試,也可以是對自己學到的東西的一種查漏補缺,更加深刻的去了解一些核心知識點
1、Java 相關
- 容器(HashMap、HashSet、LinkedList、ArrayList、數組等)
需要了解其實現原理,還要靈活運用,如:自己實現 LinkedList、兩個棧實現一個隊列,數組實現棧,隊列實現棧等。
- 內存模型
- 垃圾回收算法(JVM)
- 類加載過程(需要多看看,重在理解,對于熱修復和插件化比較重要)
- 反射
- 多線程和線程池
- HTTP、HTTPS、TCP/IP、Socket通信、三次握手四次揮手過程
- 設計模式(六大基本原則、項目中常用的設計模式、手寫單例等)
- 斷點續傳
2、Android 基礎
- 自定義 View
- 事件攔截分發
- 解決過的一些性能問題,在項目中的實際運用。
- 性能優化工具 (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 區別及使用場景
- 動畫、差值器、估值器
- MVC、MVP、MVVM
- Handler、ThreadLocal、AsyncTask
- Gradle(Groovy 語法、Gradle 插件開發基礎)
- 熱修復、插件化
3、Android Framework
- AMS 、PMS
- Activity 啟動流程
- Binder 機制(IPC、AIDL 的使用)
- 為什么使用 Parcelable,好處是什么?
- Android 圖像顯示相關流程,Vsync 信號等
4、三方源碼
- Glide :加載、緩存、LRU 算法
- EventBus
- LeakCanary
- ARouter
- 插件化(不同插件化機制原理與流派,優缺點。局限性)
- 熱修復
- RXJava
- Retrofit
5、算法與數據結構
- 單鏈表:反轉、插入、刪除
- 雙鏈表:插入、刪除
- 手寫常見排序、歸并排序、堆排序
- 二叉樹前序、中序、后序遍歷
- 最大 K 問題
- 廣度、深度優先搜索算法
最后
其實Android開發的知識點就那么多,面試問來問去還是那么點東西。所以面試沒有其他的訣竅,只看你對這些知識點準備的充分程度。so,出去面試時先看看自己復習到了哪個階段就好。
上面分享的騰訊、頭條、阿里、美團、字節跳動等公司2019-2021年的高頻面試題,博主還把這些技術點整理成了視頻和PDF(實際上比預期多花了不少精力),包含知識脈絡 + 諸多細節,由于篇幅有限,上面只是以圖片的形式給大家展示一部分。
Android學習PDF+學習視頻+面試文檔+知識點筆記
【Android思維腦圖(技能樹)】
知識不體系?這里還有整理出來的Android進階學習的思維腦圖,給大家參考一個方向。
【Android高級架構視頻學習資源】
整理出來的Android進階學習的思維腦圖,給大家參考一個方向。
[外鏈圖片轉存中…(img-4kn6frDr-1620586164037)]
【Android高級架構視頻學習資源】