一面
-
自我介紹
-
看你寫了很多文章,拿你理解最深刻的一篇出來講一講
講了
Binder
相關內容 -
Binder
大概分了幾層 -
哪些方法調用會涉及到
Binder
通信 -
大概講一下
startActivity
的流程,包括與AMS
的交互 -
全頁面停留時長埋點是怎么做的
我在項目中做過的內容,主要功能是計算用戶在每個
Activity
的停留時長,并且支持多進程。這里的多進程支持主要是通過以ContentProvider
作為中介,然后通過ContentResolver.call
方法去調用它的各種方法以實現跨進程 -
動態權限申請是什么
詳見 Android動態權限申請從未如此簡單 這篇文章
-
你做的性能監測工具,
FPS
是怎么采集的 -
性能監測工具用在了什么場景
-
有沒有通過這個性能監測工具去做一些優化
-
圖片庫,例如
Glide
,一般對Bitmap
有哪些優化點 -
過期的
Bitmap
可以復用嗎 -
有沒有基于
ASM
插樁做過一些插件 -
講了一下當時做過的一個個人項目 FastInflate
這個項目沒能達到最終的目標,但通過做這個項目學習了很多新知識,比如
APT
代碼生成、閱讀了LayoutInflater
源碼、AppCompatDelegateImpl
實現的LayoutInflater.Factory2
會極大的拖慢布局創建的速度等 -
怎么優化布局創建速度
提示了預加載,但我當時腦抽在糾結
xml
的緩存,沒想到可以提前把視圖先創建好 -
說一下你覺得你最擅長或者了解最透的點
我回答的自定義
View
-
解決過
View
的滑動沖突嗎 -
講解了一個之前寫過的開源控件 SwipeLoadingLayout
-
一般遇到困難的解決方案是什么
-
算法題:反轉鏈表
-
反問階段
-
咱們組主要負責哪些內容
-
主要使用
Java
還是Kotlin
Kotlin
-
小紅書的面試一般是怎么個流程?多少輪?
一般三輪技術面,一輪HR面
-
面試完一般多久會給到結果
比較快,一兩天的樣子
-
二面
-
自我介紹
-
為什么這個時間節點想要出來換工作呢
-
在B站這些年做了什么
-
做了哪些基礎組件
講解了一下之前寫的 SwipeLoadingLayout
-
介紹一下
Android
的事件傳遞機制 -
你寫的這個分享模塊是如何設計的
對外采用流式調用的形式,內部通過策略模式區分不同的平臺以及分享類型,給每個平臺創建了一個中間
Activity
作為分享SDK請求的發起方(SDK.getApi().share()
)以及分享結果的接收方(onActivityResult
),然后通過廣播將分享的結果送入到分享模塊內進行處理,最終調用用戶設置的分享回調告知結果 -
看你之前在扇貝的時候有開發過一些性能監測工具,那有做過性能優化嗎
-
你是如何收集這些性能數據的
-
有沒有對哪方面做過一些針對性的優化
-
Android
系統為什么會觸發ANR,它的機制是什么 -
有解過ANR相關的問題嗎?有哪幾種類型?
-
算法題:二叉樹的層序遍歷
-
Queue
除了LinkedList
還有哪些實現類 -
現在還在面其他公司嗎?你自己后面職業生涯的選擇是怎么樣的?
-
給我介紹了一下團隊,說我面試的這個部門應該說是小紅書最核心的團隊,包括主頁、搜索、圖文、視頻等等都在部門業務范疇內,部門主要分三層,除了業務層之外還有基礎架構層以及性能優化層
-
反問階段
-
部門分三層的話,那新人進來的話是需要從業務層做起嗎?
不是這樣的,我們首先會考慮這個同學能干什么,然后會考慮這個同學愿意去做什么,進來后,有經驗的同學也會來帶你的,不會一上來就讓你抗輸出,總之會把人放到適合他的團隊里
-
小紅書會使用到一些跨端技術嗎?
會,之前在一些新的
App
上使用的Flutter
,現在主要用的是RN
,還會使用到一些DSL
,這個不能算跨段。為什么在小紅書社區App
中跨端技術提及的比較少,是因為小紅書App
非常重視用戶體驗,對性能的要求比較高
-
三面
-
自我介紹
-
介紹一下目前負責的業務
-
工作過程中有碰到過什么難題,最后是怎么解決的
一開始腦抽了沒想到該說什么,隨便扯了一個沒啥技術含量的東西,又扯了一個之前做的信號捕獲的工具,后來回憶起來了,重新說了一個關于
DEX
編排的東西(主DEX
中方法數超過65535導致打包失敗,寫了個腳本將一部分Class
從主DEX
中移除到其他DEX中) -
如何設計一個頭像的自定義
View
,要求使頭像展示出來是一個圓形 -
介紹一下
Android
事件的分發流程 -
如何處理
View
的防誤觸 -
怎么處理滑動沖突
-
Activity
在onCreate
方法中調用了finish
方法,那它的生命周期會是怎樣的 -
如果我想判斷一個
Activity
中的一個View
的尺寸,那我什么時候能夠拿到 -
RecyclerView
如何實現一個吸頂效果 -
Java
和Koltin
你哪個用的比較多 -
有用過
Kotlin
的協程嗎 -
Kotlin
中的哪些Feature你用的多,覺得寫的好呢 -
你是怎么理解
MVVM
的 -
你有用過
Jetpack Compose
嗎 -
有用過
kotlin
中的by lazy
和lateinit
嗎 -
kotlin
中怎么實現單例,怎么定義一個類的靜態變量 -
算法題:增量元素之間的最大差值
-
你這次看機會的原因是什么
-
反問階段我感覺之前問的差不多了,這次就沒再問什么問題了
HR面
-
現在是離職還是在職狀態
-
介紹一下之前負責的工作
-
用戶量怎么樣
-
這個項目是從0到1開發的嗎
-
這個業務有什么特點,對于客戶端開發有什么挑戰與困難
-
團隊分工是怎樣的
-
這個項目能做成現在這個樣子,你自己的核心貢獻有哪些
-
這個事情對你來說有什么收獲嗎
-
在B站的工作節奏是怎么樣的
-
離職的原因是什么呢
-
你自己希望找一個什么樣的環境或者什么階段的業務
-
你對小紅書有什么了解嗎
-
未來兩三年對于職業發展的想法
-
你覺得現在有什么限制了你或者你覺得你需要提升哪些部分
-
反問階段
- 問了一些作息、福利待遇之類的問題
總結
小紅書面試總體而言給我的體驗是很好的,每輪面試后基本上都是當天就能出結果,然后約下一輪的面試。最終從一面到HR面結束出結果,一共花了9天時間,還是挺快的。二面結束后,一面的面試官加我微信說小紅書目前很缺人,感興趣的同學也可以來試試。