2019年3月初,離開滴滴準(zhǔn)備面試。
整理一下有印象的面試問題,準(zhǔn)備找工作的同學(xué)可以參考。
高德:專家工程師
1.對Activity啟動流程的了解:AMS和ActivityThread涉及到的源碼?
2.ANR的實(shí)現(xiàn)原理是什么,AMS中涉及ANR的代碼有哪些?
3.對MeasureSpec的理解,如何實(shí)現(xiàn)一個(gè)瀑布流的自定義ViewGroup?
4.內(nèi)存優(yōu)化做了哪些工作,LeakCannary實(shí)現(xiàn)細(xì)節(jié)。
5.layout_gravity和gravity的區(qū)別。
6.對Binder實(shí)現(xiàn)原理的理解。
7.對Flutter框架和實(shí)現(xiàn)原理的理解。
小紅書:
一面:
1.對Java多線程的理解,Sychronize修飾類和對象的區(qū)別?
2.使用過哪些多進(jìn)程編程場景?AIDL的使用和原理。
3.手寫一個(gè)單例算法的實(shí)現(xiàn)。
4.ART和Davilk虛擬機(jī)的區(qū)別是什么?
二面:
1.如何實(shí)現(xiàn)工程的組件化解耦?
2.handler-looper源碼解讀,如何保證在msg.postDelay情況下保證消息次序。
3.leakCannary原理,如何判斷一個(gè)對象是否被回收?如何觸發(fā)手動gc?
三面:
1.開放問題:優(yōu)化一個(gè)列表頁面的打開速度和流暢性。
2.開放問題:設(shè)計(jì)一個(gè)圖片加載緩存框架。
3.職業(yè)規(guī)劃和職業(yè)訴求。
快手:業(yè)務(wù)孵化部
一面~三面:
1.過往項(xiàng)目介紹和提問。
2.ListView和RecyclerView區(qū)別是什么,兩者如何技術(shù)選型。
3.算法:實(shí)現(xiàn)一個(gè)o(n)復(fù)雜度的堆和最大數(shù)。
4.ART和Davlik垃圾回收區(qū)別;
5.開放性問題:如何設(shè)計(jì)垃圾回收算法?
螞蟻金服:專家工程師
一面(電面):
1.Android/Java中的Classloader有哪些,區(qū)別是什么?
2.Android中的注解有哪幾種,分別用來做什么?
3.了解或使用過哪些編譯插樁方案,原理和優(yōu)缺點(diǎn)是什么?
4.如何實(shí)現(xiàn)懶漢單例模式?口述代碼實(shí)現(xiàn)。
5.插件化和熱修復(fù)的主流方案有哪些?
6.分別如何對java代碼和資源實(shí)現(xiàn)熱修復(fù)?
二面:
1.項(xiàng)目實(shí)現(xiàn)細(xì)節(jié)。
2.Flutter框架和實(shí)現(xiàn)原理。
3.對ReactNative實(shí)現(xiàn)原理的了解。
4.筆試題:實(shí)現(xiàn)一個(gè)數(shù)組的窗口掃描算法。
三面:
1.最有成就的項(xiàng)目是什么?
2.該項(xiàng)目如何向外輸出?
四面:
1.設(shè)計(jì)一個(gè)網(wǎng)絡(luò)優(yōu)化方案,針對移動端弱網(wǎng)環(huán)境。
2.設(shè)計(jì)一個(gè)性能優(yōu)化方案。
3.對leakcannary原理的了解,c層實(shí)現(xiàn)。
5.餓了么:基礎(chǔ)架構(gòu)組
一面:
內(nèi)存優(yōu)化使用過哪些方案,取得過哪些效果,衡量指標(biāo)如何確定?
app性能檢測手段有哪些?
如何實(shí)現(xiàn)對一個(gè)方法執(zhí)行耗時(shí)無痕埋點(diǎn)?
git實(shí)現(xiàn)原理是什么,如何搭建git server?
git merge和git rebase的區(qū)別?git 哈希算法的原理。
RPC和RESTful 的區(qū)別,項(xiàng)目中用的是哪種?
設(shè)計(jì)一個(gè)針對移動端弱網(wǎng)優(yōu)化項(xiàng)目。
二面~三面:
項(xiàng)目細(xì)節(jié),有什么設(shè)計(jì)缺陷和改進(jìn)方案。
Android工程的編譯流程。
字節(jié)跳動:基礎(chǔ)架構(gòu)組
一面:
做過哪些性能優(yōu)化項(xiàng)目,說說實(shí)現(xiàn)細(xì)節(jié)。
TraceView的實(shí)現(xiàn)原理,分析數(shù)據(jù)誤差來源。
是否使用過SysTrace,原理的了解。
TextView setText耗時(shí)的原因,對TextView繪制層源碼的理解。
對Flutter的原理了解,如何實(shí)現(xiàn)多Native頁面接入。
二面:
如何實(shí)現(xiàn)app的卡頓監(jiān)控,線下和線上;比較這幾種方法的優(yōu)劣。
了解哪些編譯插樁技術(shù),聊聊使用細(xì)節(jié)。
HashMap的實(shí)現(xiàn)原理,如何解決哈希沖突?
算法題:識別一個(gè)字符串是否是ipv4地址。
三面:
你最優(yōu)秀的工程設(shè)計(jì)項(xiàng)目,是怎么設(shè)計(jì)和實(shí)現(xiàn)的;擴(kuò)展,如何做成一個(gè)平臺級產(chǎn)品?
做過哪些性能優(yōu)化項(xiàng)目?說下實(shí)現(xiàn)細(xì)節(jié)。
對Glide源碼的了解,如何管理bitmap cache的,cache共有幾級?
對inBitmap的理解。
算法:o(n)復(fù)雜度實(shí)現(xiàn)偶數(shù)遞增奇數(shù)遞減單向鏈接排序。
算法:單向鏈表逆序。
四面:
過往經(jīng)歷項(xiàng)目。
算法:實(shí)現(xiàn)一個(gè)數(shù)組插入。(處理異常判別,不使用Collections相關(guān)接口)。
職業(yè)發(fā)展規(guī)劃。
Bigo
一面:
線程和進(jìn)程的區(qū)別,什么時(shí)候使用多線程和多進(jìn)程?
Android中有哪些IPC方式,Binder的優(yōu)勢和實(shí)現(xiàn)原理什么?
描述AM-AMS binder通信流程。
對文件描述符怎么理解?
Android中有哪些文件存儲方式。
技術(shù)價(jià)值觀。
二面:
做過哪些流量優(yōu)化方案?
運(yùn)營項(xiàng)目設(shè)計(jì)思路,有什么缺陷和改造建議。
這個(gè)項(xiàng)目的設(shè)計(jì)優(yōu)勢,對高內(nèi)聚低耦合的理解?
三面:
業(yè)務(wù)提問。
職業(yè)預(yù)期。
其他合集:美圖,作業(yè)幫,新東方,貝殼,脈脈
1.Fragment和Activity技術(shù)選型,兩者如何通信。(新東方)
12.算法題:找到無序數(shù)組的最大連續(xù)求和。(新東方)
2.gradle中flavorDimensions的含義,在什么場景下使用過?
3.是否使用過CordinateLayout,嵌套滾動是如何實(shí)現(xiàn)的?
4.Android中有哪些跨線程通信方式,區(qū)別是什么?
5.AsyncTask有哪些使用局限性,是如何使用自定義線程池的?
6.Serivce是如何做到高優(yōu)先級保活?
7.Android中使用過哪些持久化存儲,各自的使用場景是什么?
8.如何不依賴框架實(shí)現(xiàn)一個(gè)數(shù)據(jù)庫column的數(shù)據(jù)類型改造?
8.算法題:找到多個(gè)員工的共同繁忙時(shí)段。
9.對線程池的理解。(脈脈)
10.ReactNative實(shí)現(xiàn)原理,RN列表優(yōu)化方案。(脈脈)
11.如何實(shí)現(xiàn)進(jìn)程安全寫文件?
12.OKhttp針對網(wǎng)絡(luò)層有哪些優(yōu)化?
13.對Android編譯發(fā)布流程的了解。
14.實(shí)現(xiàn)對現(xiàn)有工程的flutter遷移。