2023小紅書Android面試之旅

一面

  • 自我介紹

  • 看你寫了很多文章,拿你理解最深刻的一篇出來講一講

    講了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的防誤觸

  • 怎么處理滑動沖突

  • ActivityonCreate方法中調用了finish方法,那它的生命周期會是怎樣的

  • 如果我想判斷一個Activity中的一個View的尺寸,那我什么時候能夠拿到

  • RecyclerView如何實現一個吸頂效果

  • JavaKoltin你哪個用的比較多

  • 有用過Kotlin的協程嗎

  • Kotlin中的哪些Feature你用的多,覺得寫的好呢

  • 你是怎么理解MVVM

  • 你有用過Jetpack Compose

  • 有用過kotlin中的by lazylateinit

  • kotlin中怎么實現單例,怎么定義一個類的靜態變量

  • 算法題:增量元素之間的最大差值

  • 你這次看機會的原因是什么

  • 反問階段我感覺之前問的差不多了,這次就沒再問什么問題了

HR面

  • 現在是離職還是在職狀態

  • 介紹一下之前負責的工作

  • 用戶量怎么樣

  • 這個項目是從0到1開發的嗎

  • 這個業務有什么特點,對于客戶端開發有什么挑戰與困難

  • 團隊分工是怎樣的

  • 這個項目能做成現在這個樣子,你自己的核心貢獻有哪些

  • 這個事情對你來說有什么收獲嗎

  • 在B站的工作節奏是怎么樣的

  • 離職的原因是什么呢

  • 你自己希望找一個什么樣的環境或者什么階段的業務

  • 你對小紅書有什么了解嗎

  • 未來兩三年對于職業發展的想法

  • 你覺得現在有什么限制了你或者你覺得你需要提升哪些部分

  • 反問階段

    • 問了一些作息、福利待遇之類的問題

總結

小紅書面試總體而言給我的體驗是很好的,每輪面試后基本上都是當天就能出結果,然后約下一輪的面試。最終從一面到HR面結束出結果,一共花了9天時間,還是挺快的。二面結束后,一面的面試官加我微信說小紅書目前很缺人,感興趣的同學也可以來試試。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/162780.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/162780.shtml
英文地址,請注明出處:http://en.pswp.cn/news/162780.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

RocketMQ-NameServer詳解

前言 ? RocketMQ架構上主要分為四部分, Broker、Producer、Consumer、NameServer,其他三個都會與NameServer進行通信。 Producer: ? **消息發布的角色,可集群部署。**通過NameServer集群獲得Topic的路由信息,包括Topic下面有哪些Queue&a…

PTA-病毒感染檢測

人的DNA和病毒DNA均表示成由一些字母組成的字符串序列。然后檢測某種病毒DNA序列是否在患者的DNA序列中出現過,如果出現過,則此人感染了該病毒,否則沒有感染。例如,假設病毒的DNA序列為baa,患者1的DNA序列為aaabbba&am…

數據結構與算法編程題15

設計一個算法&#xff0c;通過遍歷一趟&#xff0c;將鏈表中所有結點的鏈接方向逆轉&#xff0c;仍利用原表的存儲空間。 #include <iostream> using namespace std;typedef int Elemtype; #define ERROR 0; #define OK 1;typedef struct LNode {Elemtype data; …

【從入門到起飛】JavaSE—多線程(3)(生命周期,線程安全問題,同步方法)

&#x1f38a;專欄【JavaSE】 &#x1f354;喜歡的詩句&#xff1a;路漫漫其修遠兮&#xff0c;吾將上下而求索。 &#x1f386;音樂分享【如愿】 &#x1f384;歡迎并且感謝大家指出小吉的問題&#x1f970; 文章目錄 &#x1f354;生命周期&#x1f384;線程的安全問題&#…

【Leetcode合集】1410. HTML 實體解析器

1410. HTML 實體解析器 1410. HTML 實體解析器 代碼倉庫地址&#xff1a; https://github.com/slience-me/Leetcode 個人博客 &#xff1a;https://slienceme.xyz 編寫一個函數來查找字符串數組中的最長公共前綴。 如果不存在公共前綴&#xff0c;返回空字符串 ""…

YOLOv7獨家改進: Inner-IoU基于輔助邊框的IoU損失,高效結合 GIoU, DIoU, CIoU,SIoU 等 | 2023.11

??????本文獨家改進:Inner-IoU引入尺度因子 ratio 控制輔助邊框的尺度大小用于計算損失,并與現有的基于 IoU ( GIoU, DIoU, CIoU,SIoU )損失進行有效結合 推薦指數:5顆星 新穎指數:5顆星 收錄: YOLOv7高階自研專欄介紹: http://t.csdnimg.cn/tYI0c …

開發抖音小游戲什么技術

開發抖音小游戲&#xff0c;使用以下技術可能會相對簡單&#xff1a; HTML5&#xff1a;HTML5 是一種用于創建網頁和應用程序的標準標記語言。它具有豐富的功能和靈活性&#xff0c;可以在各種設備和平臺上運行&#xff0c;包括移動設備和瀏覽器。HTML5 提供了許多游戲開發所需…

大模型AI Agent 前沿調研

前言 大模型技術百花齊放&#xff0c;越來越多&#xff0c;同時大模型的落地也在緊鑼密鼓的進行著&#xff0c;其中Agent智能體這個概念可謂是火的一灘糊涂。 今天就分享一些Agent相關的前沿研究&#xff08;僅限基于大模型的AI Agent研究&#xff09;&#xff0c;包括一些論…

完美解決AttributeError: module ‘numpy‘ has no attribute ‘typeDict‘

文章目錄 前言一、完美解決辦法安裝低版本1.21或者1.19.3都可以總結 前言 這個問題從表面看就是和numpy庫相關&#xff0c;所以是小問題&#xff0c;經過來回調試安裝numpy&#xff0c;發現是因為目前的版本太高&#xff0c;因此我們直接安裝低版本numpy。也不用專門卸載目前的…

Qt全球峰會2023中國站 參會概要

Qt全球峰會2023中國站 參會概要 前言峰會議程簽到 & Demo 演示開場致辭Qt Group 產品總監演講&#xff08;產品開發的趨勢-開放的軟件、工具和框架&#xff09;產品戰略QtQuick or QtWidgets&#xff08;c or qml&#xff09;Qt如何定義AI個人看法 Qt 在券商數字化轉型和信…

【MySQL】內連接和外連接

內連接和外連接 前言正式開始內連接外連接左外連接右外連接 前言 前一篇講多表查詢的時候講過笛卡爾積&#xff0c;其實笛卡爾積就算一種連接&#xff0c;不過前一篇講的時候并沒有細說連接相關的內容&#xff0c;本篇就來詳細說說表的連接有哪些。 本篇博客中主要用到的還是…

快速去除Word文檔密碼,全面解決你的困擾

如果你忘記了Word文檔密碼&#xff0c;或者想解密和去除Word文檔密碼&#xff0c;下面是簡單步驟&#xff1a;第一步&#xff0c;百度搜索【密碼帝官網】找到官方網站&#xff1b;第二步&#xff0c;點擊“立即開始”&#xff0c;進入用戶中心&#xff0c;上傳需要解密的文件。…

中部A股第一城,長沙如何贏商?

文|智能相對論 作者|范柔絲 長沙的馬路&#xff0c;都很有故事。 一條解放西路&#xff0c;是全國人民都爭相打卡的娛樂地標&#xff1b;一條太平街&#xff0c;既承載了歷史的厚重又演繹著現代的鮮活...... 但如果來到河西的桐梓坡路&#xff0c;風景會變得截然不同。 沿…

應用軟件安全編程--28SSL 連接時要進行服務器身份驗證

當進行SSL 連接時&#xff0c;服務器身份驗證處于禁用狀態。在某些使用SSL 連接的庫中&#xff0c;默認情況下不 驗證服務器證書。這相當于信任所有證書。 對 SSL 連接時要進行服務器身份驗證的情況&#xff0c;示例1給出了不規范用法(Java 語言)示例。示例2 給出了規范用法(J…

安裝MySQL搭建論壇

課前默寫&#xff1a; 1、nginx配置文件的區域有哪些 ①全局區域 ②events區域 ③http區域 2、區域模塊的作用 全局區域模塊主要是用戶和工作進程 events區域模塊配置最大連接數時需先配置:vim /etc/limits.conf 因為系統默認最大是1024 http區域模塊&#xff1a;代理地…

BUUCTF [HBNIS2018]excel破解 1

BUUCTF:https://buuoj.cn/challenges 題目描述&#xff1a; 得到的 flag 請包上 flag{} 提交。來源&#xff1a; https://github.com/hebtuerror404/CTF_competition_warehouse_2018 密文&#xff1a; 下載附件&#xff0c;得到一個attachment.xls文件。 解題思路&#xff…

計算機視覺的應用19-基于pytorch框架搭建卷積神經網絡CNN的衛星地圖分類問題實戰應用

大家好&#xff0c;我是微學AI&#xff0c;今天給大家介紹一下計算機視覺的應用19-基于pytorch框架搭建卷積神經網絡CNN的衛星地圖分類問題實戰應用。隨著遙感技術和衛星圖像獲取能力的快速發展&#xff0c;衛星圖像分類任務成為了計算機視覺研究中一個重要的挑戰。為了促進這一…

git的用法

目錄 一、為什么需要git 二、git基本操作 2.1、初始化git倉庫 2.2、配置本地倉庫的name和email 2.3、認識工作區、暫存區、版本庫 三、git的實際操作 3.1 提交文件 3.2 查看git狀態以及具體的修改 3.3 git版本回退 git reset 3.1 撤銷修改 四、git分支管理 4.…

vue el-table (固定列+滾動列)【橫向滾動條】確定滾動條是在列頭還是列尾

效果圖&#xff1a; 代碼實現&#xff1a; html&#xff1a; <script src"//unpkg.com/vue2/dist/vue.js"></script> <script src"//unpkg.com/element-ui2.15.14/lib/index.js"></script> <div id"app" style&quo…

【數據結構】樹如何定義 | 如何存儲 | 實際應用

前言 如上圖&#xff0c;A中的孩子的個數是不固定的。我們無法精確的每個不同的根結點有多少個孩子。所以并不能精確知道需要定義多少個孩子節點。 struct TreeNode {int val;struct TreeNode* child1;struct TreeNode* child2;struct TreeNode* child3;//...//這樣顯然是不能…