做者:小石java
春節假期結束差很少有大半個月了,而我在這個時間段裏面試了幾家大小不一的公司,其中還有大廠。在這裏我拿出跟你們簡單的總結一下,但願對你們有所幫助。git
首先 簡歷 是很重要的一個因素,面試過程當中的提到的問題,通常都是基於你的 簡歷 進行的。通常面試中的前幾題不會很難,面試官會先從基礎開始提問,從中考察你的知識體系的完備程度,接着會考察你的極限,最後還會考察一些軟技能,好比你的學習能力、協做能力、溝通能力、分析解決未知問題的能力、抗壓能力等。github
複習計劃的制定和進度的把控也很重要,能夠參考別人的學習計劃去學習,再根據本身的實際狀況去作適當的調整。面試
Android 面試知識點梳理,面試複習文檔可直接去我 GitHub:https://github.com/733gh/Android-T3 參考學習。sql
一面 (技術面)數據庫
1.自我介紹緩存
2.Handler是用來作啥的安全
3.每一個線程都能有本身的Handler嗎markdown
4.Fragment和Activity之間傳遞數據網絡
5.Activity加載Fragment的方式
6.add一個Fragment的時候已經有一個Fragment的話,對以前的Fragment的生命週期的影響
7.ActivityA啓動ActivityB的生命週期回調
8.Activity的啓動模式(分別用於什麼場景)
9.onSaveInstance和onReStoreInstance做用
10.ViewModel怎麼實現的
11.ViewModel是否是一直存在內存中(好比我開啓了不少頁面,或者ViewModel持有Bitmap這樣的對象)
12.Android用過哪些佈局
13.View的繪製會通過哪些(onMeasure,onLayout,onDrow)
14.讓View從新繪製的方法(重繪時,onMeasure會調用幾回)
15.onMeasure會執行幾回
16.ConstraintLayout常常用到的屬性
17.guaidline爲何不會在佈局上顯示
18.事件分發機制
19.Android中線程掛了進程會崩潰嗎?
20.RxJava用過了哪些操做符
二面(技術面)
1.自我介紹
2.問了一些項目裏面的東西,聊聊是幹啥的
3.爲何要用MVVM
4.數據變動UI自動更新怎麼實現的,用的DataBinding嗎
5.什麼是觀察者模式,有什麼好處
6.什麼狀況下用責任鏈模式?哪裏遇到過?有什麼好處?
7.怎麼實現的責任鏈模式
8.爲何okHttp裏面用到責任鏈模式
9.用戶能夠自定義多個攔截器嗎
10.有網狀態下的緩存和無網狀態下的緩存同樣嗎
11.緩存是本身作的仍是okhttp作的
12.能夠手寫一些sql嗎
13.room是什麼類型的數據庫
14.room是怎麼實現的,爲何不要寫sql呢
15.livedata粘性事件
16.jetpack還用過哪些
17.navigation用來作什麼
18.TCP UDP區別
19.爲何須要三次握手和四次揮手
三面 (非技術面) 略
一面
1.自我介紹+介紹項目
2.Activity生命週期,每一個回調方法的做用是什麼?
3.事件的分發機制
4.內存泄漏
5.遇到過滑動衝突嗎?滑動衝突的解決方法
6.如何進行單元測試,如何保證App穩定 ?
7.說一說Android中如何查看一個對象的回收狀況 ?
8.Apk的大小如何壓縮 ?
9.如何經過Gradle配置多渠道包?
10.插件化、組件化、熱修復原理分析
二面
1.深挖項目
2.Activity 生命週期,A啓動B兩個狀態分別是什麼 ,A的onStop必定會執行嗎?
3.surfaceView 和普通view的區別
4.Bitmap高效加載* 線程之間的通訊方式handler
5.內存泄漏
6.爲何handler能夠線程切換
7.Rxjava map關鍵字的做用是什麼
8.怎麼獲取view的寬高,如何肯定值是準確的,說了view.post()補充viewTreeObserverOnGlobalLayoutListener
9.場景題:頭條列表有多個不一樣的card,使用RecyclerView怎麼解耦getViewType,得到不一樣的card 說了用個管理類映射,面試官說用註解、反射,依賴注入。
三面
1.項目深挖
2.ARouter路由原理
3.如何管理過多的路由表?
4.看視頻的時候網絡請求很慢怎麼優化?
5.說說HTTP3.0有什麼改進?
6.App上線後用戶使用時卡頓怎麼查看是什麼緣由?
1.講一下View的測繪流程
2.由View的繪製流程拓展到自定義View,講若是你要自定義一個流式標籤佈局你會去設計哪些內容暴露給外界,以及會在上面提到的View的三個方法裏作哪些相關的工做
3.講一些Android手勢事件處理
4.由上面的延伸,若是你要設計一個雙擊的監聽listener,你會怎麼設計
5.上面那個問題我講了兩種方案,選了其中一種詳細講了一下而後並在面試官的引導下做了相關的優化
6.講一下你本身處理過的比較複雜的手勢處理
7.若是讓你本身作一個像ScrollView那樣的View,你怎麼設計
8.講講Android的消息機制
9.針對上面的機制,咱們可不能夠利用它的特性來檢測ANR,講一下方案
10.講講死鎖的發生條件以及如何避免死鎖
11.講講jvm內存模型
12.講講Java的四種引用類型,何時會被回收,項目裏怎麼用的
13.講講UDP和TCP的區別
14.講講HTTPS和HTTP的區別
15.HTTPS能抓包嗎,既然能抓包它爲何還安全
16.講講activity的生命週期
17.講講activity異常狀態下的生命週期有哪些
18.講講broadcastreceiver的應用場景
19.上面回答涉及到了應用內廣播,我提了一句通常應用內廣播的話如今都用EventBus之類的總線代替,而後問了一下懂不懂EventBus的實現原理,回答不懂而後問若是讓你設計一個事件總線框架你會怎麼設計,思路是什麼
20.Service通常用來幹什麼,什麼狀況下用什麼樣的Service
有一塊兒學習的小夥伴能夠關注下個人公衆號——❤️【程序猿百曉生】❤️ 每週會按期作技術分期。快加入和我一塊兒學習吧!