基本介紹
正值長沙連綿一個月雨季的時候,我被裁了,
從3月初開始復習,準備面試題,復習的資料主要為《Android開發藝術探索》,還有就是網上的其他博客資料,首先介紹一下自己基本情況:渣本畢業快4年,一直在小廠摸魚混日子,學歷和簡歷背景不是很好看,所以面試邀約也不是很多,面試也到處碰壁,從3月中旬開始面試,一直到4月底,共面試9家公司,近20輪面試,拿到2個小公司和1個上市公司(不是出名的公司)的offer,最后準備去上市公司了,也投遞了BAT、360、抖音、快手、平安等大廠的崗位,不過大部分沒給面試機會,少數大廠在后續面試中也把我拒絕了,原因是:基礎知識不夠扎實,技術深度不夠,
面試分享
每輪面試都會有自我介紹,所以在面試前大家可以先準備一段自我介紹,向面試官介紹自己的基本情況,我這里只分享Android技術面試題(以每個公司為分類,將幾輪面試題綜合起來),面試官會在每個面試題繼續深入,一直問到你不會為止,至于面試題答案,大家自行百度,在面試程序中盡可能回答完整(深度、廣度、擴展),這樣才能在面試官面前加分,建議大家找作業開始面試前,先找幾家小公司找點面試感覺,然后再投自己期望的公司,
接下來是面試題:
公司一
- 組件化和arouter原理
- recyclerview和listview區別
- glide流程,快取前壓縮,快取命中
- APP性能優化,記憶體優化,布局優化,繪制優化,記憶體泄漏
- Http和Https區別
- socket心跳包
- jvm虛擬機,堆和堆疊的結構
- activity啟動模式,有哪些不同
- stack堆疊的特點,自定義stack結構
- kotlin優劣勢
公司二
- 自定義view,中英文字串寬高測量顯示,測量演算法,可擴展性
- 事件分發機制
- Activity,view,window聯系
- 熱修復和插件化原理
- Synchronized底層原理,java鎖機制
- java容器,hashmap和hashtable區別,hashmap原理,擴容流程,擾動演算法的優勢
- ArrayList和LinkendList區別,List泛型擦除,為什么反射能夠在ArrayList< String >中添加int型別
- Http和Https區別,SSL/TLS程序
- Android性能優化
- jvm虛擬機,堆和堆疊的結構,堆疊幀,JMM
- 組件化注意點,組件間通信機制
- 執行緒安全的單例模式有哪幾種
- 熟悉的設計模式
公司三
- MVC,MVP,MVVM
- Activity和fragment生命周期區別,fragment正常添加和viewpager添加的區別,fragment懶加載原理,FragmentPagerAdapter 和 FragmentStatePagerAdapter
- 熱修復和插件化
- 友盟bug統計,混淆后怎么定位bug,沒接入熱修復的APP中,上線后遇到bug怎么解決
- view繪制原理 (可以先說下基本view繪制,然后再說下螢屏重繪機制)
- 使用Analyze減少APK體積,原理
- Android 版本差異
公司四
- 基礎型別位元組,漢字占幾個位元組,執行緒和行程
- 四大組件,fileprovider和Contentprovide區別,activity啟動流程
- MVC,MVP,MVVM
- TCP三次握手,四次揮手
- Eventbus,glide原理
- 性能優化,記憶體抖動,記憶體泄漏,記憶體溢位,handler機制,IntentService和handlerThread,子執行緒更新view內容的方法
- GC回收演算法
- recyclerview和listview區別
- 組件化,模塊化,插件化,熱修復
- 作業中遇到的難題怎么解決的
- Kotlin Java優缺點,kotlin什么時候用分號,run,with,apply,行內函式,高階函式
- APK體積優化
- 行程間通信
- 單例模式,哪些是安全的
- retrofit設計模式
- 自定義view
- 是否做過音視頻和IM?
- APK性能優化
- CurrentHashMap1.7和1.8區別
- volatile關鍵字的作用,怎么保證原子性呢?
- 網路優化
- 對新技術的看法
- java泛型,協變和逆變
公司五
- HTTPS具體步驟
- 常用的設計模式,代理模式和裝飾者模式區別
- 服務端回傳錯誤的json資料,客戶端怎么自定義model,避免出錯
- Hook技術
- kotlin了解,協程
- 螢屏適配
- 抓包工具使用和原理
- 網路優化
- 未來期望,對公司的了解
- Okhttp,rxjava,glide,retrofit等原理,okhttp底層資料傳輸原理,http報文體結構
- APK體積優化
- Android jetpack使用和原理,新技術看法
- crashHandler獲取應用crash資訊
- recyclerview和listview快取區別
- Android 常見崩潰問題分析及一般的解決方案
- NestedScrollView觸摸機制,AOP相關知識
- 設計APP,整體架構選型
- Android沙盒和底層Linux通信
- ACTION_CANCLE什么時候觸發
- 執行緒池原理
公司六
- 組件化,arouter,組件化UI,還有哪些路由框架,AS除錯方法
- MVC,MVP,MVVM,Jetpack
- JVM,JMM,java加載物件的步驟,classLoader,GC回收演算法
- 插件化和熱修復
- 唯一安卓ID,安卓安全的知識,加密演算法,判斷activity前臺行程
- TCP三次握手和四次揮手
- hash演算法,hashmap,怎么解決hash沖突
- 加載大圖,glide快取機制,設計模式,雙重檢測的單例模式為什么要檢查兩次,自己設計圖片加載框架思路
- 啟動未注冊的Activity
- AOP,藍牙開發,IOT
- glide快取清除:lrucache演算法
- glide快取檔案太大,查找效率慢怎么優化?glide下載高清圖片優化
- 最近研究的技術,遇到最難的事,對公司的期望
公司七
- 組件化, arouter優缺點
- MVC,MVP,MVVM
- 專案中的亮點,對架構的理解
- handler原理及相關知識點,message回收策略
- hashmap原理,arraymap原理,對比性能,
- hashmap為什么大于8才轉化為紅黑樹,加載因子為什么是0.75
- Synchronized底層原理,java鎖機制
- 服務和廣播
- activity啟動模式(給例子具體分析,A(標準)-》B(單例)-》C(singleTop)-》D(singleTask),分析有幾個堆疊,每個堆疊內的activity)
- 常用設計模式,執行緒安全的單例模式
公司八
- static、final;繼承與多型
- 組件化, arouter優缺點
- context相關知識點
- handler原理及相關知識點,handler快取池大小,
- 性能優化,啟動速度優化,架構
- java虛擬機與Dalvik和ART區別
- Kotlin協程,擴展函式和屬性以及伴生物件
- 電商APP的首頁,怎么設計一個APP架構
- MVP中資料請求為什么要和M一起,答:網路請求和javabean都是資料模型相關
- Glide的存盤EngineKey是怎么保證唯一的,面試官答:有個佇列會將EngineKey存盤起來,每次生成后進行對比存盤,這個我在原始碼中沒找對位置,如果知道的同學,麻煩幫忙解釋下,
- retrofit是怎么將service介面轉化為我們需要的javabean的?
- 怎么做管理,新技術學習
公司九
- SqLite與contentProvider區別
- fragment周期,兩個fragment切換周期變化,fragment通信
- https證書校驗,加密相關,網路請求框架
- glide加載流程,大圖顯示,圖片大小計算
- view繪制(從onSync()開始)
- 執行緒記憶體模型,執行緒間通信
- 獲取view的寬高,更新view的方式,主執行緒訊息機制
- OOM,記憶體泄漏,記憶體溢位,java參考型別,ANR分析
- APP性能優化,webview相關,webview優化,webview中Android與js互調
- 插件化和熱修復
面試經驗
簡歷上寫的東西,一定要先搞懂,特別是簡歷上的專業技能,這次面試收到的最多反饋就是:基礎知識不夠扎實,技術深度不夠,現在Android開發大部分需要懂點C++和Linux知識,大廠也需要刷演算法面試題,在后面的學習程序中,我將從以上幾個方面著手,當然也必須把基礎知識學牢固,技術深度搞深入點,
鑒于這樣的要求,我收集整理了三個月的時間,在面經和Android學習資料方面,我有較為深入的整理和探究,資料已經全部貢獻在Github上了
專案地址: Github

面試題部分


當然,三個月的時間絕對不止這點東西,由于篇幅問題,關于圖片我就不過多展示,我給廣大開發者創建了一個分享基地,點擊進入Android技術交流,平時收集到的新鮮面經,開發資料,都可以上傳,而且還能有一幫大佬為你擺平關于Android的技術問題~
最后祝大家都能拿到心儀的offer!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/282101.html
標籤:其他
上一篇:還在刷面試題?NO!這次是這份Java面試通關手冊才是你急需的!
下一篇:ROS配置中cv_bridge
