Android面試題匯總

最近花了大量的時(shí)間復(fù)習(xí)準(zhǔn)備面試。杭州的一二線公司基本上都去面試過了微猖,包括阿里谈息,字節(jié),快手凛剥,滴滴侠仇,有贊,涂鴉犁珠,哈啰(騰訊沒有客戶端的hc)逻炊,其中也拿了幾個(gè)不錯(cuò)的offer。這里就簡(jiǎn)單分享下面試題吧

注: 由于本人之前的職級(jí)有點(diǎn)低犁享,所以這次的目標(biāo)崗位是P6+ ~ P7崗(雖然最終還是只拿到了P6+的崗位)余素。如果有高P的大佬,那么這里的面試題看看就好炊昆,意義不大桨吊。


滴滴(二面掛)

一面:

  1. 簡(jiǎn)單介紹下項(xiàng)目中遇到的難題,怎么解決的凤巨?
  2. 大圖加載的優(yōu)化方案
  3. java注解元注解有哪些屏积,有什么區(qū)別
  4. 簡(jiǎn)要講解下APT技術(shù)
  5. ButterKnife為什么在子module要用R2文件,子module為什么不能使用switch-case來對(duì)view的id進(jìn)行區(qū)別處理
  6. Activity.getWindow什么時(shí)候?yàn)榭?/li>
  7. Handler 發(fā)送延遲消息磅甩,是否一定會(huì)在指定時(shí)間以后執(zhí)行炊林。異步消息怎么判斷。消息列表是按什么順序排列
  8. Looper在沒有消息時(shí)卷要,怎么處理渣聚,如何進(jìn)行線程阻塞

二面:

  1. 簡(jiǎn)要介紹下項(xiàng)目中的亮點(diǎn)
  2. 主線程修改UI為什么會(huì)導(dǎo)致崩潰独榴,怎么解決的
  3. 為什么Android要設(shè)計(jì)單線程操作UI
  4. 簡(jiǎn)單介紹下Activity啟動(dòng)流程
  5. Handler機(jī)制原理, Looper的阻塞機(jī)制
  6. 內(nèi)存優(yōu)化做過哪些奕枝,用過哪些工具

快手(一面掛)

一面:

  1. 如何計(jì)算bitmap大小棺榔,如何檢測(cè)bitmap是否超過了1M,并打印
  2. 如何給在ImageView里面展示一個(gè)帶邊框的bitmap
  3. Handler機(jī)制
  4. ANR有哪些隘道,怎么監(jiān)控
  5. LRUCache原理
  6. 什么情況下會(huì)出現(xiàn)ConcurrentModifyException,為什么會(huì)出現(xiàn)症歇,怎么解決
  7. 線程池使用過沒,有哪些參數(shù)谭梗,什么作用
  8. HashMap原理
  9. SparseArray的原理
  10. SparseArray和HashMap的查找和插入時(shí)間復(fù)雜度是多少
  11. Android打包流程忘晤, 字節(jié)碼插樁在哪個(gè)流程中實(shí)現(xiàn)
  12. 熱更新有了解過么,tinker的原理是什么激捏,有什么缺點(diǎn)设塔。 有沒有其他框架沒有這個(gè)缺點(diǎn)的,怎么實(shí)現(xiàn)的
  13. Http 1.0远舅,Http1.1 ,Http 2.0的區(qū)別 keep-alive和多路復(fù)用有啥區(qū)別
  14. 了解過HttpDNS么闰蛔,什么作用
  15. 手寫一個(gè)生產(chǎn)者和消費(fèi)者模型

阿里(三面掛,問了下評(píng)價(jià)說是因?yàn)槟昙o(jì)和職級(jí)图柏,覺得潛力不夠就掛掉了)

一面:

  1. 卡頓檢測(cè)怎么做的序六,為什么要這么做,會(huì)有兼容問題么
  2. 如果降低crash率的蚤吹,有做哪些處理
  3. 覺得哪些東西做的比較好例诀,說一下
  4. jsBridge是怎么實(shí)現(xiàn)的,如果客戶端向前端發(fā)送消息怎么發(fā)送距辆。
  5. 在圖片框架選型的時(shí)候怎么考慮的,F(xiàn)resco暮刃,Piccaso跨算,Glide之間的優(yōu)缺點(diǎn)
  6. 自定義一個(gè)從底部滑出的抽屜,該怎么做椭懊,需要有哪些考慮的點(diǎn)
  7. 一個(gè)簡(jiǎn)單的RecyclerView诸蚕,說一下手勢(shì)Down,Move氧猬,Up的分發(fā)背犯。如果TextView上面設(shè)置了點(diǎn)擊事件,那么分發(fā)邏輯是怎么樣的
  8. 項(xiàng)目是怎么進(jìn)行架構(gòu)設(shè)計(jì)的
  9. 項(xiàng)目是否采用模塊化處理盅抚,怎么做的漠魏,怎么進(jìn)行交互
  10. git-merge和git-rebase的區(qū)別

二面:

  1. 現(xiàn)在項(xiàng)目的整體設(shè)計(jì)是怎么樣的
  2. 降低crash率做了哪些處理
  3. 怎么檢測(cè)線上卡頓問題
  4. kotlin相比于java有哪些優(yōu)勢(shì)
  5. 什么時(shí)機(jī)可以認(rèn)為頁(yè)面加載完成
  6. 內(nèi)存優(yōu)化有做過哪些
  7. 講下merge和include
  8. 講下運(yùn)營(yíng)商DNS劫持,又是如何防止DNS劫持
  9. 怎么使用Fragment的妄均, 是采用一個(gè)Activity多個(gè)Fragment的形式么
  10. 有沒有使用過一些跨端技術(shù)

三面:

  1. 項(xiàng)目合并做了哪些事情
  2. 怎么檢測(cè)線上卡頓
  3. 怎么檢測(cè)線上內(nèi)存泄漏
  4. 做了哪些性能優(yōu)化
  5. 最近研究了哪些新技術(shù)柱锹,談?wù)効捶?/li>
  6. 何如學(xué)習(xí)提高自己的技術(shù)
  7. 說說看自己的優(yōu)劣勢(shì)
  8. 對(duì)于現(xiàn)在做的產(chǎn)品有什么看法和見解哪自,怎么看待競(jìng)品

有贊(過)

一面:

  1. 組件化的架構(gòu)怎么設(shè)計(jì)的
  2. 組件之間怎么通信,除了EventBus還有其他哪些了解過
  3. EventBus是怎么工作的
  4. Router框架怎么設(shè)計(jì)的
  5. LiveData為什么具有生命周期感知能力禁熏,如何實(shí)現(xiàn)的
  6. APT怎么實(shí)現(xiàn)壤巷,如何生成代碼文件
  7. MVP與MVVM的區(qū)別
  8. MVP為什么會(huì)存在內(nèi)存泄漏的可能,怎么解決
  9. 線程池的創(chuàng)建有哪些參數(shù)瞧毙,有什么作用
  10. 有用過kotlin么胧华?object關(guān)鍵主要應(yīng)用在哪里? let和run的區(qū)別
  11. GC有哪些算法宙彪,現(xiàn)代虛擬機(jī)基本采用什么算法矩动,為什么這么做
  12. Activity的啟動(dòng)流程
  13. 在APP進(jìn)程還沒創(chuàng)建的時(shí)候,會(huì)做哪些額外操作您访,app進(jìn)程是誰(shuí)創(chuàng)建的
  14. View是如何顯示出來的
  15. 如何把像素點(diǎn)顯示到屏幕上
  16. Glide三級(jí)緩存策略有了解過么
  17. Glide為什么會(huì)感知生命周期
  18. 做過哪些性能優(yōu)化
  19. 最近寫的這篇博客寫的什么铅忿,遇到了什么問題,怎么解決

二面:

  1. 講講項(xiàng)目的組成
  2. retrofit2原理
  3. 用過rxjava2哪些操作符灵汪,zip什么作用檀训。
  4. 熱修復(fù)的原理
  5. APT技術(shù)怎么實(shí)現(xiàn),如何理解AOP享言,有過哪些應(yīng)用場(chǎng)景
  6. MVC峻凫,MVP,MVVM的區(qū)別
  7. 講一下LiveData+ViewModel怎么實(shí)現(xiàn)生命周期览露, 屏幕旋轉(zhuǎn)時(shí)荧琼,會(huì)保存數(shù)據(jù)么
  8. 有沒有碰到過LiveData接收多次消息的問題,LiveData的postValue和setValue有什么區(qū)別差牛,平時(shí)怎么使用
  9. glide怎么實(shí)現(xiàn)生命周期的監(jiān)聽
  10. 組件化的方案命锄,如何提高編譯效率
  11. 組件通信用的什么
  12. 有沒有寫過印象深刻的框架
  13. 平時(shí)周末會(huì)遇到線上事故么,怎么處理
  14. 平時(shí)開發(fā)過程怎么溝通協(xié)調(diào)偏化,在里面作為什么角色存在脐恩。

三面:

  1. 講一下你覺得成長(zhǎng)最大的一個(gè)項(xiàng)目,為什么
  2. 組件化考慮的因素有哪些侦讨,為什么這么考慮驶冒,為什么使用AAR包就會(huì)提高編譯效率
  3. 說一個(gè)你覺得做的比較好的點(diǎn)。
  4. 有沒有跨端經(jīng)驗(yàn)
  5. 有沒有推動(dòng)過項(xiàng)目的一些方案的制作和實(shí)施韵卤。講一下怎么做的

哈啰出行(過)

一面:

  1. 講述一下自己做的最有亮點(diǎn)的項(xiàng)目
  2. view的繪制流程
  3. View的事件分發(fā)流程
  4. ViewPager內(nèi)部嵌套同向RecyclerView骗污,RecyclerView滑動(dòng)與ViewPager滑動(dòng)沖突解決方案
  5. 詳細(xì)說下Handler機(jī)制
  6. Handler會(huì)存在哪些問題,怎么解決
  7. 設(shè)計(jì)模式用過哪些沈条,簡(jiǎn)要講述下最熟悉的幾個(gè)設(shè)計(jì)模式需忿,怎么設(shè)計(jì),為什么這么設(shè)計(jì)
  8. APT怎么實(shí)現(xiàn)的,元注解什么作用贴谎。 IOC怎么實(shí)現(xiàn)

二面:

  1. 講述一下自己項(xiàng)目亮點(diǎn)
  2. 講一下路由框架的架構(gòu)設(shè)計(jì)汞扎,路由還可以實(shí)現(xiàn)哪些功能
  3. 容災(zāi)方案怎么實(shí)現(xiàn),怎么做降級(jí)處理擅这,怎么做AbTest
  4. App Link有了解過沒
  5. Handler的機(jī)制澈魄,如果取不到消息接下來怎么做。
  6. APP啟動(dòng)做過哪些優(yōu)化仲翎,如果啟動(dòng)優(yōu)化的負(fù)責(zé)人痹扇,你會(huì)怎么做
  7. Activity的冷啟動(dòng)流程
  8. Application由誰(shuí)創(chuàng)建,Activity由誰(shuí)創(chuàng)建溯香。ContentProvider的onCreate發(fā)生在什么時(shí)候
  9. 熱更新的原理鲫构,插件化的原理

三面:

  1. 講述項(xiàng)目經(jīng)歷
  2. 講一下自己覺得做得最好的地方
  3. 有做過哪些性能優(yōu)化
  4. 讓你負(fù)責(zé)埋點(diǎn)功能,你怎么設(shè)計(jì)實(shí)現(xiàn)
  5. leakcanary實(shí)現(xiàn)原理
  6. flutter有了解過么
  7. 講當(dāng)前部門的主要業(yè)務(wù)

涂鴉智能(過)

一面:

  1. Activity啟動(dòng)流程
  2. Handler機(jī)制
  3. 項(xiàng)目中解決過的難題
  4. Http1.0 http1.1 http2.0的區(qū)別
  5. Https的請(qǐng)求過程
  6. 用過抓包工具么玫坛,抓包工具為什么可以抓到請(qǐng)求结笨,如何抓到HTTPS請(qǐng)求,怎么實(shí)現(xiàn)

二面:

  1. 講幾個(gè)項(xiàng)目中遇到的難題(技術(shù)上的難題或者團(tuán)隊(duì)協(xié)作上面的難題)湿镀,怎么解決
  2. 如何進(jìn)行團(tuán)隊(duì)協(xié)作
  3. 講下項(xiàng)目亮點(diǎn)
  4. EventBus的原理炕吸,還有哪些可以通信的
  5. LiveData+ViewModel怎么實(shí)現(xiàn)生命周期的
  6. EventBus和LiveData的優(yōu)缺點(diǎn)
  7. OKHttp的原理

三面:

  1. 組件化開發(fā)怎么實(shí)現(xiàn)
  2. 路由怎么實(shí)現(xiàn),組件化通信有哪些
  3. 介紹下opengles開發(fā)魔方的流程
  4. retrofit實(shí)現(xiàn)原理
  5. 為什么這個(gè)時(shí)候選擇看機(jī)會(huì)
  6. 涂鴉對(duì)你來說整體印象如何

字節(jié)跳動(dòng)(過)

一面:

  1. git cherry-pick 操作commit id一樣么
  2. git merge和rebase的作用
  3. Fragment 如何傳參的勉痴,有沒有使用構(gòu)造函數(shù)傳參
  4. SurfaceView和View繪制上面的差別赫模,可以設(shè)置層級(jí)么。 mediaOverlay什么作用
  5. 插件化和組件化的差別蒸矛, 插件化的加載過程
  6. 長(zhǎng)圖加載解決方案 DecodeRegion的底層原理
  7. 算法: A方法返回0和1的概率是p和1-p, 設(shè)計(jì)一個(gè)算法讓0和1返回的概率各是1/2
  8. opengl 頂點(diǎn)著色器瀑罗, 片段著色器
  9. classLoader通過什么判斷class是否已經(jīng)加載到內(nèi)存中
  10. 內(nèi)存優(yōu)化怎么做的
  11. 滑動(dòng)沖突怎么解決 nestchild和nestparent如何實(shí)現(xiàn)手勢(shì)分發(fā)

二面:

  1. OpenGLES 怎么使用
  2. 線程啟動(dòng)方式
  3. HandlerThread了解過么
  4. Synchronized原理,notify wait底層是怎么做的雏掠, 了解過鎖的膨脹么
  5. CAS操作如何保證兩個(gè)線程數(shù)據(jù)安全
  6. Dialog和Activity屬于同一個(gè)window么斩祭,為什么
  7. 用過哪些設(shè)計(jì)模式
  8. 講講設(shè)計(jì)原則,項(xiàng)目里使用情況
  9. 講講現(xiàn)在項(xiàng)目里的網(wǎng)絡(luò)庫(kù)乡话, OKHttp有哪些優(yōu)勢(shì)(相比較于以前的HttpClient和HttpUrlConnection)
  10. EventBus 內(nèi)部使用什么樣的數(shù)據(jù)結(jié)構(gòu)保存摧玫,EventBus的優(yōu)缺點(diǎn)
  11. Bitmap內(nèi)存怎么計(jì)算 假設(shè)一個(gè)100*100的圖片放入xxhdpi的文件夾,在720的手機(jī)上面顯示蚊伞,Config是ARGB8888席赂。 內(nèi)存大小多少
  12. 講講為什么使用MVVM吮铭,MVP為什么會(huì)出現(xiàn)內(nèi)存泄漏时迫, MVVM為什么不會(huì)出現(xiàn)內(nèi)存泄漏
  13. VSync信號(hào) 什么作用 同步多次執(zhí)行addView,removeView等UI操作為什么不會(huì)多次進(jìn)行View的繪制
  14. 算法: 如果將一串路徑反轉(zhuǎn) 例如 /a/b/././c/..d/e -> /e/d/c/b/a

三面:

  1. 自動(dòng)登出如何處理的
  2. 登錄之后頁(yè)面谓晌,數(shù)據(jù)刷新怎么處理
  3. TCP和UDP的區(qū)別掠拳, 講下視頻通話中哪些用到了UDP,哪些用到了TCP
  4. Java的Thread是JVM創(chuàng)建的還是系統(tǒng)的
  5. Thread可以設(shè)置大小么
  6. JVM的內(nèi)存回收算法
  7. View的onMeasure測(cè)量邏輯
  8. 解決過的難題
  9. 講下mvvm的設(shè)計(jì)纸肉,與mvp相比優(yōu)勢(shì)是什么溺欧,如果用mvp如何防止內(nèi)存泄露
  10. 100個(gè)人編號(hào)為1100喊熟,山洞有100盞燈,編號(hào)為1100姐刁。 人依次過山洞芥牌,當(dāng)人經(jīng)過【燈編號(hào)可以整除人編號(hào)】的路燈時(shí),按下開關(guān)聂使。假設(shè)剛開始燈都是滅的壁拉,那么100個(gè)人出去以后,有多少盞燈是亮著的柏靶。
  11. 給定兩個(gè)職員弃理,找出最近的公共上級(jí) (樹的最近公共祖先節(jié)點(diǎn))
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市屎蜓,隨后出現(xiàn)的幾起案子痘昌,更是在濱河造成了極大的恐慌,老刑警劉巖炬转,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辆苔,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡返吻,警方通過查閱死者的電腦和手機(jī)姑子,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來测僵,“玉大人街佑,你說我怎么就攤上這事『纯浚” “怎么了沐旨?”我有些...
    開封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)榨婆。 經(jīng)常有香客問我磁携,道長(zhǎng),這世上最難降的妖魔是什么良风? 我笑而不...
    開封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任谊迄,我火速辦了婚禮,結(jié)果婚禮上烟央,老公的妹妹穿的比我還像新娘统诺。我一直安慰自己,他們只是感情好疑俭,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開白布粮呢。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪啄寡。 梳的紋絲不亂的頭發(fā)上豪硅,一...
    開封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音挺物,去河邊找鬼懒浮。 笑死,一個(gè)胖子當(dāng)著我的面吹牛识藤,可吹牛的內(nèi)容都是我干的嵌溢。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼蹋岩,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼赖草!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起剪个,我...
    開封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤秧骑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后扣囊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乎折,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年侵歇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了骂澄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡惕虑,死狀恐怖坟冲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情溃蔫,我是刑警寧澤健提,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站伟叛,受9級(jí)特大地震影響私痹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜统刮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一紊遵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧侥蒙,春花似錦暗膜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至醋旦,卻和暖如春恒水,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背饲齐。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工钉凌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人捂人。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓御雕,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親滥搭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子酸纲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容