9月Android面試經(jīng)驗(yàn)分享.md

面試經(jīng)歷

面了一些上海二線互聯(lián)網(wǎng)公司,例如愛奇藝,京東,喜馬拉雅,得物,B站,某安,美團(tuán)等等,記錄了部分面試真題。大部分可以自行搜到答案,有疑問的可以留言交流~

【愛奇藝】一面
1.handler里面的nativepollonce 為什么不會anr
2.對稱加密和非對稱加密的區(qū)別
3.布局嵌套過深會導(dǎo)致什么問題
4.java為什么跨平臺? c是跨平臺嗎
5.app打包過程
6.協(xié)程掛起和線程阻塞的區(qū)別
7.so文件加載流程
8.AIDL怎么實(shí)現(xiàn)
9.字節(jié)碼是什么
【愛奇藝】二面
和一面間隔時(shí)間太久了,放棄

【貨拉拉一面】
1.簡述https的握手流程,私鑰加密誰都可以破解,那么有什么意義
2.oom能否try catch
3.公鑰和私鑰的區(qū)別
4.客戶端怎么安全保存私鑰
5.怎么加載一張超大圖
6.采集app啟動時(shí)間原理
7.exception分類。oom屬于哪種分類
8.弱網(wǎng) 無網(wǎng)優(yōu)化
【貨拉拉二面】
1.說下項(xiàng)目中怎么運(yùn)用MVVM
2.viewModel的源碼實(shí)現(xiàn)
3.設(shè)計(jì)一個(gè)圖片加載框架(包含內(nèi)存緩存和本地緩存),參考Glide回答就行了
4.簡述hashMap put方法的流程,一些細(xì)節(jié)追問:什么時(shí)候鏈表轉(zhuǎn)樹?為啥要轉(zhuǎn)成樹?什么時(shí)候樹再次轉(zhuǎn)回鏈表
5.英語口語如何(我面的是國際化業(yè)務(wù))
【貨拉拉HR面】
辦理了居住證積分嗎?balabala

【京東一面】
1.簡述LinkedHashMap源碼實(shí)現(xiàn)
2.說下Handler流程
3.handler用于線程間通信,怎么保證線程安全
4.界面有個(gè)Button,手指放上去慢慢移到Button外的區(qū)域,描述事件分發(fā)的流程
5.說下View的繪制流程,包括渲染和繪制
6.算法 兩個(gè)單鏈表合并成有序鏈表,說下思路
7.組件化的實(shí)現(xiàn),WMRouter調(diào)用其他模塊的對應(yīng)方法怎么實(shí)現(xiàn)的
【京東二面】
完全忘了
【京東三面】
1.問項(xiàng)目細(xì)節(jié),你主要負(fù)責(zé)的模塊,怎么設(shè)計(jì)
2.算法 N宮格,從左上角A出發(fā)只能向右或者向下走,求所有不同路徑的條數(shù)總和。手寫偽代碼(用遞歸就可以)
【京東四面】
1.平時(shí)的上下班時(shí)間點(diǎn)
2.有沒有使用過咱們的app,有什么建議
3.前面的3次技術(shù)面有什么感受
4.職業(yè)規(guī)劃
【京東HR面】
1.平時(shí)的上下班時(shí)間點(diǎn) balabala

【某安一面】
1.多線程同步有哪些方式
2.sycnized和lock區(qū)別,分別用于什么場景
3.線程池原理
4.線程池拒絕策略怎么自定義
5.怎么實(shí)現(xiàn)線程加入線程池的優(yōu)先級
6.volatile底層原理?是否線程安全
7.死鎖怎么發(fā)生?怎么防止死鎖
8.介紹下apm,怎么捕獲crash和native crash?騰訊matrix怎么統(tǒng)計(jì)app啟動時(shí)間,頁面加載時(shí)間
9.gc回收算法有哪些?分別用于什么場景
10.jvm有哪些區(qū)域?棧的作用
11.算法 三數(shù)之和

【某安二面】
1.問項(xiàng)目 httpdns相關(guān):為什么要httpdns?怎么處理握手問題,ip直連能否避免dns挾持?
2.問項(xiàng)目 首頁彈窗優(yōu)先級
3.做過哪些內(nèi)存優(yōu)化
4.怎么全局捕獲app所有異常,并且保證app不崩潰,不卡死
5.如何獲取app的所有線程信息
6.怎么查找anr
7.安卓有哪些進(jìn)程間通信?為什么使用binder?mmap發(fā)生在哪個(gè)階段?怎么找到目標(biāo)進(jìn)程
8.leakcanary怎么檢測內(nèi)存泄露的
9.算法 兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列

【某安三面】
1.gradle生命周期,怎么自定義插件
2.統(tǒng)計(jì)編譯耗時(shí)插件,運(yùn)行在哪個(gè)階段?
3.描述從編譯到apk的過程,以及gradle有哪些task參與其中
4.如何實(shí)現(xiàn)字節(jié)碼插樁
5.子線程更新ui會報(bào)什么異常?從哪里拋出來的
6.子線程怎么更新textview不會crash
7.activity window view顯示出來,全流程源碼解析,精確到類和核心方法
8.數(shù)據(jù)庫用的什么庫,熟悉sql語句嗎
9.mmkv為什么比sp高效,存儲的數(shù)據(jù)結(jié)構(gòu)是什么樣
10.mmap為什么比io高效,說下實(shí)現(xiàn)原理
11.sp存在哪些問題?
12.hashmap put流程源碼解析,鏈表和樹轉(zhuǎn)換時(shí)機(jī)?擾動函數(shù)的作用?為什么hashcode & n-1?擴(kuò)容時(shí)機(jī)?
13.gcroots有哪些
14.activity有個(gè)內(nèi)部類handler,描述下引用關(guān)系鏈路,并說明為何gcroots能訪問到activity
15.加載xml和動態(tài)創(chuàng)建view哪個(gè)高效?為什么加載xml效率低
16.如何減少布局嵌套?jetpack compose的原理
17.recycleview緩存實(shí)現(xiàn)?開發(fā)中怎么優(yōu)化
18.算法 給定一個(gè)字符串,輸出所有不同字符組合

【B站一面】
1.一句話描述協(xié)程
2.協(xié)程只在主線程使用,怎么實(shí)現(xiàn)掛起和切回的
3.協(xié)程的輕量級怎么體現(xiàn)的
4.ViewModel源碼實(shí)現(xiàn),它在Activity重啟后為什么恢復(fù)數(shù)據(jù)?數(shù)據(jù)保存在哪里?和onsaveinstancestate有啥區(qū)別
5.LifeCycle源碼實(shí)現(xiàn)
6.LiveData源碼實(shí)現(xiàn),先后setValue兩次,都能收到嗎?
7.簡述View的刷新機(jī)制,屏幕刷新信號從哪里發(fā)出來的?
8.硬件加速是否了解
9.SurfaceView的工作原理是否有了解
10.組件化相關(guān),WMRouer為什么可以這么方便實(shí)現(xiàn)組件之間通信,背后原理

【喜馬拉雅一面】
1.有了解過直播嗎?有哪些常見協(xié)議
2.說下自定義View的一般流程
3.多個(gè)線程異步執(zhí)行任務(wù),主線程需要等待它們都完成再繼續(xù),有哪些實(shí)現(xiàn)方式
4.說下handler的流程,異步消息是什么?Android中哪些場景會發(fā)送異步消息?我們在代碼中可以手動發(fā)異步消息嗎
5.彈幕怎么實(shí)現(xiàn)?比如直播中的流星雨特效,跑車這種怎么實(shí)現(xiàn)出來
6.說下你開發(fā)中做過的一個(gè)動畫
7.了解過SurfaceView的原理嗎
8.有沒有接觸過Socket編程,簡單說下代碼實(shí)現(xiàn)
9.加載一張超大圖怎么實(shí)現(xiàn)
10.補(bǔ)間動畫和屬性動畫各自的原理
11.內(nèi)存優(yōu)化有哪些手段
12.開放性題目 開發(fā)中怎么提升整個(gè)app的穩(wěn)定性

【喜馬拉雅二面】
1.動態(tài)代理是怎么實(shí)現(xiàn)的
2.你熟悉哪些設(shè)計(jì)模式
3.畫一下動態(tài)代理的類圖
4.說下插件化原理
5.說下熱修復(fù)的基本原理?比如QQ空間的方案和Tinker
6.算法 判斷兩個(gè)單鏈表是否相交及找到第一個(gè)交點(diǎn)
【喜馬拉雅HR面】
1.對公司感覺怎么樣,之前有了解過嗎
2.是否愿意承擔(dān)一些管理角色

【得物一面】
1.狂問Kotlin相關(guān),比如委托的實(shí)現(xiàn)原理,協(xié)程原理,kotlin的好處,kotlin編譯流程,常用的kotlin技巧
2.app的打包流程
3.View的渲染繪制流程
【得物二面】
1.inflate加載view過程
2.簡述okhttp源碼,請求怎么管理,它的線程池怎么實(shí)現(xiàn)
3.apt原理
4.viewmodel為什么可以恢復(fù)數(shù)據(jù)
5.livedata可以保存多個(gè)數(shù)據(jù)嗎
6.aac架構(gòu)有什么優(yōu)勢
7.mmkv了解嗎
8.算法 單鏈表找到倒數(shù)第K個(gè)元素
9.算法 單鏈表找到中間的元素(2個(gè)題都用快慢指針就可以了)
10.組件化怎么做的?WMRouter編譯期間做了什么
【得物HR面】
1.沒問什么特別的

經(jīng)驗(yàn)tips

  1. 必考題一定要掌握!
    【必問】Handler的工作流程,源碼要記牢,細(xì)節(jié)要理解透,比如怎么喚醒主線程的,while為啥不會阻塞主線程
    【必問】View的繪制流程,包括渲染和View本身的繪制3部曲
    【必問】MVVM的含義,ViewModel+LivaData+LifeCycle的源碼實(shí)現(xiàn)
    【必問】自定義View的一般實(shí)現(xiàn)流程
    【必問】內(nèi)存泄漏怎么排查,OOM怎么排查
    【必問】你做過哪些性能優(yōu)化,參考這個(gè)https://blog.yorek.xyz/android/paid/master/
    【必問】Retrofit的實(shí)現(xiàn),動態(tài)代理
    【必問】組件化相關(guān),WmRouter的原理
    【高頻】ANR怎么排查,有哪些原因
    【高頻】APP打包流程
    【高頻】kotlin常見知識點(diǎn)的原理,如協(xié)程,委托,擴(kuò)展函數(shù),編譯流程
    【高頻】Android有哪些跨進(jìn)程通信,AIDL的代碼實(shí)現(xiàn)
    【高頻】怎么加載一張超大圖
    【高頻】OkHttp的線程池實(shí)現(xiàn),Java線程池原理,拒絕策略怎么自定義

2.算法準(zhǔn)備
有時(shí)間就刷劍指offer66道題目,沒時(shí)間就掌握一般的套路,回答一些常見題目基本夠了。參考這個(gè):https://zhuanlan.zhihu.com/p/386785887
https://zhuanlan.zhihu.com/p/109431459

3.關(guān)于性能優(yōu)化
你做過哪些性能優(yōu)化?這個(gè)點(diǎn)也是經(jīng)常被問到,我的建議 不要隨意把別人博客的性能優(yōu)化當(dāng)成自己做過的,很多都是純KPI項(xiàng)目,他們可能自己都沒去實(shí)踐。面試官一聽就知道你在瞎說,挑一些相對靠譜的結(jié)合自己項(xiàng)目說下,然后拓展一下還未實(shí)現(xiàn)但是準(zhǔn)備去做的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭,有人歡樂有人憂愁,有人驚喜有人失落,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,814評論 28 54
  • 首先介紹下自己的背景: 我11年左右入市到現(xiàn)在,也差不多有4年時(shí)間,看過一些關(guān)于股票投資的書籍,對于巴菲特等股神的...
    瞎投資閱讀 5,921評論 3 8
  • ![Flask](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAW...
    極客學(xué)院Wiki閱讀 7,762評論 0 3
  • 不知不覺易趣客已經(jīng)在路上走了快一年了,感覺也該讓更多朋友認(rèn)識知道易趣客,所以就謝了這篇簡介,已做創(chuàng)業(yè)記事。 易趣客...
    Physher閱讀 3,787評論 1 2

友情鏈接更多精彩內(nèi)容