前言
網上高級工程師面試相關文章魚龍混雜,要么一堆內容,要么內容質量太淺, 鑒于此我整理了如下安卓開發高級工程師面試題以及答案幫助大家順利進階為高級工程師,目前我就職于某大廠安卓高級工程師職位,在當下大環境下也想為安卓工程師出一份力,通過我的技術經驗整理了面試經常問的題,答案部分會是一篇文章或者幾篇文章,都是我認真看過并且覺得不錯才整理出來,大家知道高級工程師不會像剛入門那樣被問的問題一句話兩句話就能表述清楚,所以我通過過濾好文章來幫助大家理解,進入正題:
Android 面試題
1.Activity相關
1.1.Activity的啟動流程
1.2.onSaveInstanceState(),onRestoreInstanceState的掉用時機
1.3.activity的啟動模式和使用場景
1.4.Activity A跳轉Activity B,再按回傳鍵,生命周期執行的順序
1.5.橫豎屏切換,按home鍵,按回傳鍵,鎖屏與解鎖螢屏,跳轉透明Activity界面,啟動一個 Theme 為 Dialog 的 Activity,彈出Dialog時Activity的生命周期
1.6.onStart 和 onResume、onPause 和 onStop 的區別
1.7.Activity之間傳遞資料的方式Intent是否有大小限制,如果傳遞的資料量偏大,有哪些方案
1.8.Activity的onNewIntent()方法什么時候執行
1.9.顯示啟動和隱式啟動
1.10.scheme使用場景,協議格式,如何使用
1.11.ANR 的四種場景
1.12.onCreate和onRestoreInstance方法中恢復資料時的區別
1.13.activty間傳遞資料的方式
1.14.跨App啟動Activity的方式,注意事項
1.15.Activity任務堆疊是什么
1.16.有哪些Activity常用的標記位Flags
1.17.Activity的資料是怎么保存的,行程被Kill后,保存的資料怎么恢復的

2.Service相關
2.1.service 的生命周期,兩種啟動方式的區別
2.2.Service啟動流程
2.3.Service與Activity怎么實作通信
2.4.IntentService是什么,IntentService原理,應用場景及其與Service的區別
2.5.Service 的 onStartCommand 方法有幾種回傳值?各代表什么意思?
2.6.bindService和startService混合使用的生命周期以及怎么關閉

3.BroadcastReceiver 相關
3.1.廣播的分類和使用場景
3.2.廣播的兩種注冊方式的區別
3.3.廣播發送和接收的原理
3.4.本地廣播和全域廣播的區別

4.ContentProvider 相關
4.1.什么是ContentProvider及其使用
4.2.ContentProvider,ContentResolver,ContentObserver之間的關系
4.3.ContentProvider的實作原理
4.4.ContentProvider的優點
4.5.Uri 是什么

5.Handler 相關
5.1.Handler的實作原理
5.2.子執行緒中能不能直接new一個Handler,為什么主執行緒可以
5.3.Handler導致的記憶體泄露原因及其解決方案
5.4.一個執行緒可以有幾個Handler,幾個Looper,幾個MessageQueue物件
5.5.Message物件創建的方式有哪些 & 區別
5.6.Handler 有哪些發送訊息的方法
5.7.Handler的post與sendMessage的區別和應用場景
5.8.handler postDealy后訊息佇列有什么變化,假設先 postDelay 10s, 再postDelay 1s, 怎么處理這2條訊息sendMessageDelayed-sendMessageAtTime-sendMessage
5.9.MessageQueue是什么資料結構
5.10.Handler怎么做到的一個執行緒對應一個Looper,如何保證只有一個MessageQueue ThreadLocal在Handler機制中的作用
5.11.HandlerThread是什么 & 好處 &原理 & 使用場景
5.12.IdleHandler及其使用場景
5.13.訊息屏障,同步屏障機制what
5.14.子執行緒能不能更新UI
5.15.為什么Android系統不建議子執行緒訪問UI
5.16.Android中為什么主執行緒不會因為Looper.loop()里的死回圈卡死?
5.17.Handler訊息機制中,一個looper是如何區分多個Handler的當Activity有多個Handler的時候,怎么樣區分當前訊息由哪個Handler處理處理message的時候怎么知道是去哪個callback處理的
5.18.Looper.quit/quitSafely的區別
5.19.通過Handler如何實作執行緒的切換
5.20.Handler 如何與 Looper 關聯的
5.21.Looper 如何與 Thread 關聯的
5.22.Looper.loop()原始碼
5.23.MessageQueue的enqueueMessage()方法如何進行執行緒同步的
5.24.MessageQueue的next()方法內部原理
5.25.子執行緒中是否可以用MainLooper去創建Handler,Looper和Handler是否一定處于一個執行緒
5.26.ANR和Handler的聯系

我已將這些面試題及答案整理成PDF檔案,大家如果對這面試題感興趣操作學習的話,可以直接去我 CodeChina:https://codechina.csdn.net/u012165769/Android-T3 查閱,其實還有更多的面試學習檔案都有記錄在上面,希望這些面試題能助你在金九銀十面試季中斬獲心儀的Offer,
6.View繪制 相關
6.1.View繪制流程
6.2.MeasureSpec是什么
6.3.子View創建MeasureSpec創建規則是什么
6.4.自定義Viewwrap_content不起作用的原因
6.5.在Activity中獲取某個View的寬高有幾種方法
6.6.為什么onCreate獲取不到View的寬高
6.7.View#post與Handler#post的區別
6.8.Android繪制和螢屏重繪機制原理
6.9.Choreography原理
6.10.什么是雙緩沖
6.11.為什么使用SurfaceView
6.12.什么是SurfaceView
6.13.View和SurfaceView的區別
6.14.SurfaceView為什么可以直接子執行緒繪制
6.15.SurfaceView、TextureView、SurfaceTexture、GLSurfaceView
6.16.getWidth()方法和getMeasureWidth()區別
6.17.invalidate() 和 postInvalidate() 方法的區別
6.18.Requestlayout,onlayout,onDraw,DrawChild區別與聯系
6.19.LinearLayout、FrameLayout 和 RelativeLayout 哪個效率高
6.20.LinearLayout的繪制流程
6.21.自定義 View 的流程和注意事項
6.22.自定義View如何考慮機型適配
6.23.自定義控制元件優化方案
6.24.invalidate怎么區域重繪
6.25.View加載流程(setContentView)

7.View事件分發相關
7.1.View事件分發機制
7.2.view的onTouchEvent,OnClickListerner和OnTouchListener的onTouch方法 三者優先級
7.3.onTouch 和onTouchEvent 的區別
7.4.ACTION_CANCEL什么時候觸發
7.5.事件是先到DecorView還是先到Window
7.6.點擊事件被攔截,但是想傳到下面的View,如何操作
7.7.如何解決View的事件沖突
7.8.在 ViewGroup 中的 onTouchEvent 中消費 ACTION_DOWN 事件,ACTION_UP事件是怎么傳遞
7.9.Activity ViewGroup和View都不消費ACTION_DOWN,那么ACTION_UP事件是怎么傳遞的
7.10.同時對父 View 和子 View 設定點擊方法,優先回應哪個
7.11.requestDisallowInterceptTouchEvent的呼叫時機

8.RecyclerView 相關
8.1.RecyclerView的多級快取機制,每一級快取具體作用是什么,分別在什么場景下會用到哪些快取
8.2.RecyclerView的滑動回收復用機制
8.3.RecyclerView的重繪回收復用機制
8.4.RecyclerView 為什么要預布局
8.5.ListView 與 RecyclerView區別
8.6.RecyclerView性能優化

9.Viewpager&Fragment 相關

由于整理的面試題比較多,文章篇幅長度有限,無法全部展現出來,像后面其實還有很多,比如:
10.WebView 相關
11.影片 相關
12.Bitmap 相關
13.mvc&mvp&mvvm 相關
14.Binder 相關
15.記憶體泄漏&記憶體溢位
16.性能優化
17.Window&WindowManager
18.AMS
19.系統啟動
20.App啟動&打包&安裝
21.序列化
22.Art & Dalvik 及其區別
23.模塊化&組件化
24.熱修復&插件化
25.AOP
26.jectpack
27.開源框架

我已將這些面試題及答案整理成PDF檔案,大家如果對這面試題感興趣操作學習的話,可以直接去我 CodeChina:https://codechina.csdn.net/u012165769/Android-T3 查閱,其實還有更多的面試學習檔案都有記錄在上面,希望這些面試題能助你在金九銀十面試季中斬獲心儀的Offer,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/293767.html
標籤:其他
下一篇:獲取SHA1的值,以及處理報錯
