前言
文章分享Android進階面試題庫,主要內容包括Java相關、Android基礎相關、Android進階相關、Flutter相關,Kotlin相關,性能優化相關、Jetpack相關,RxJava相關、Gradle相關等等一些面試題和常見知識點,
Java相關進階面試題
- 類加載程序
- JVM記憶體區域的劃分,以及那些區域會發生oom?
- 雙親委派模型
- HashMap 的原理
- 什么情況下 Java 會產生死鎖,如何定位、修復,手寫死鎖?
- volatile和synchronize的區別
- Exception 和 Error的區別

Android基礎相關進階面試題
Activity 相關
- 啟動模式以及使用場景?
- onNewIntent()和onConfigurationChanged()
- onSaveInstanceState()和onRestoreInstanceState()
- Activity 到底是如何啟動的?
Fragment
- Fragment 生命周期和 Activity 對比
- Fragment 之間如何進行通信
- Fragment的startActivityForResult
- Fragment重疊問題
Service 相關
- 行程保活
- Service的運行執行緒(生命周期方法全部在主執行緒)
- Service啟動方式以及如何停止
- ServiceConnection里面的回呼方法運行在哪個執行緒?
Android布局優化之ViewStub、include、merge
- 什么情況下使用 ViewStub、include、merge?
- 他們的原理是什么?
BroadcastReceiver 相關
- 注冊方式,優先級
- 廣播型別,區別
- 廣播的使用場景,原理
AsyncTask相關
- AsyncTask是串行還是并行執行?
- AsyncTask隨著安卓版本的變遷
Android 事件分發機制
- onTouch和onTouchEvent區別,呼叫順序
- dispatchTouchEvent, onTouchEvent, onInterceptTouchEvent 方法順序以及使用場景
- 滑動沖突,如何解決
Android View 繪制流程
- 簡述 View 繪制流程
- onMeasure, onlayout, ondraw方法中需要注意的點
- 如何進行自定義 View
- view 重繪機制

Android進階相關面試題
Android 的核心 Binder 多行程 AIDL
- 常見的 IPC 機制以及使用場景
- 為什么安卓要用 binder 進行跨行程傳輸
- 多行程帶來的問題
Android 高級必備 :AMS,WMS,PMS
- AMS,WMS,PMS 創建程序
- AMS,WMS,PMS 啟動流程
Android ANR
- 為什么會發生 ANR?
- 如何定位 ANR?
- 如何避免 ANR?
Android 記憶體相關
- 什么情況下會記憶體泄漏?
- 如何防止記憶體泄漏?
Android 螢屏適配
- 螢屏適配相關名詞決議
- 現在流行的螢屏適配方式
Android 快取機制
- LruCache使用極其原理
Android MVC、MVP、MVVM
- MVC、MVP、MVVM的優勢?
OKHTTP 和 Retrofit
- okhttp 完整決議
- Retrofit使用流程,機制詳解
- Retrofit是如何作業的?
Glide
- Glide的基本用法
- 從原始碼的角度理解Glide的執行流程
- Glide的快取機制
- Glide的回呼與監聽
- Glide如何自定義模塊功能
- 說一下Glide圖片加載功能
Android 組件化與插件化
- 為什么要用組件化?
- 組件之間如何通信?
- 組件之間如何跳轉?

Android性能優化面試題
- 你對 APP 的啟動有過研究嗎? 有做過相關的啟動優化嗎?
- 有做過相關的記憶體優化嗎?
- 你在專案中有沒有遇見卡頓問題?是怎么排查卡頓?又是怎么優化的?
- 怎么保證 APP 的穩定運行?
- 說說你在專案中網路優化?
- 你在專案中有用過哪些存盤方式? 對它們的性能有過優化嗎?
- 你在專案中有做過自定義 View 嗎?有對它做過什么優化?

RxJava面試核心知識
- Rxjava使用程序,特點,原理決議
- Rxjava觀察者模式及原理決議
- Rxjava 訂閱流程
- Rxjava 原始碼分析
- Rxjava 執行緒切換
kotlin面試核心知識
- Kotlin有沒有在使用,問這個問題的公司,基本上自己的公司在使用Kotlin開發新App,要么在使用Kotlin遷移、重構、與java混合在一起
Flutter面試核心知識
- Dart 是如何實作多任務并行的?
- Dart 是不是單執行緒模型?是如何運行的?
- 說一下Dart異步編程中的 Future關鍵字?
- 說一下Dart異步編程中的 Stream資料流?
- Stream 有哪兩種訂閱模式?分別是怎么呼叫的
- 請簡單介紹下Flutter框架,以及它的優缺點?
- 介紹下FFlutter的FrameWork層和Engine層,以及它們的作用
- 介紹下Widget、State、Context 概念
- 簡述Widget的StatelessWidget和StatefulWidget兩種狀態組件類


寫這個文章的目的,就是想做個面試總結,
由于自己做開發三年了,主要是在做android端的app,這其中也學習了Flutter、Kotlin等等一些新技術,
之所以會接觸,一是待的公司的需要,有的公司人手不夠或者有的崗位并不想在招人,拉你去做做、去看看,對于這個自己開始作業的第一年內心是很拒絕的,當時只想把專案中的Android基礎牢固,并不想做其它的,
二是隨著作業時間久了,學習能力也慢慢的提高了,發現需要學習其它的東西,光Android的應用層壓根不夠,再加上市場的競爭越來越激烈,
去年開始接觸Kotlin的時候,學習的程序中發現很多東西的都是相通的,即使是不同的開發語言,也比較像金庸小說里面描述武學的那樣 “天下武學殊途同歸”,
這份《Android高級進階知識》已從Xmind轉成PDF的格式,需要高清PDF的朋友可以“ 掃描下方二維碼即可打包獲取 ”,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/287759.html
標籤:其他
上一篇:Andorid-初識

