主頁 > 移動端開發 > 十家大廠,兩百多道Android面試題,總有你需要的

十家大廠,兩百多道Android面試題,總有你需要的

2021-09-07 08:35:50 移動端開發

直接上正題:京東,位元組跳動,美團,嗶哩嗶哩,聲網,掌門教育,傳音控股,得物,哈啰出行,小紅書,其他廠經典題,

前言

前段時間在看機會,本文就是我對求職程序的一個總結,

同時,也作為一個面試官,來說說求職中需要注意的點,

  • 各大廠的面試會考核哪些知識點
  • 5年開發應該具備哪些技術要點
  • 當下市場行情如何,真的很卷嗎?

面試題

上主菜

一面技術

京東

  1. GC原理,有哪幾種GC方式
  2. HashMap原理
  3. Hybrid開發流程、機制
  4. WebView記憶體泄露
  5. 包體積優化
  6. 自定義View需要注意哪些
  7. 事件分發機制
  8. ViewModel原理
  9. 螢屏旋轉ViewModel怎么做到保存資料的
  10. LiveData原理
  11. Flutter執行緒機制,單執行緒多執行緒
  12. 組件化開發
  13. 介紹一個自己的開源專案
  14. 有參與過別人的開源專案嗎

位元組跳動

  1. 瀏覽器輸入一個地址,按下回車,這個程序是什么樣的
  2. 簡單介紹一下TCP
  3. 簡單介紹一下Https
  4. 說說對稱加密和非對稱加密,說說公鑰
  5. 并發操作如何保證執行緒安全
  6. 鎖有哪些
  7. 簡單介紹一下HashMap
  8. Arraylist是執行緒安全的嗎
  9. 知道CAS、原子性嗎
  10. AtomicBoolean和boolean的區別
  11. 用過哪些設計模式
  12. 介紹一下觀察者模式
  13. 用過哪些排序演算法
  14. 介紹一下貪心演算法
  15. 介紹一下快排原理
  16. 演算法,給定一個有序不重復陣列,使用時間復雜度小于N方的方法,找到所有兩兩相加等于target值的組合:

int[] a={1,2,3,4,5,6,7,8} int target=7

美團

  1. Java物件生命周期
  2. GC機制
  3. Glide快取機制
  4. Glide對Bitmap是怎么優化的
  5. Okhttp請求流程
  6. Retrofit中的設計模式
  7. App啟動流程
  8. Apk打包流程
  9. 重構做了哪些作業
  10. 記憶體泄露,舉例場景
  11. LeakCanary實作原理
  12. Handler訊息機制
  13. 執行緒有哪些狀態
  14. Hybrid開發介紹
  15. Js功底怎么樣
  16. 未來職業規劃

嗶哩嗶哩

  1. MVC,MVP,MVVM的區別
  2. 使用MVVM有遇到什么問題嗎
  3. 協程原理
  4. 協程并發怎么處理的
  5. 熱修復原理
  6. 用熱修復的程序中有遇到什么問題嗎
  7. 啟動優化
  8. 包體積優化
  9. 繪制優化
  10. 全埋點是怎么做的
  11. Apk更新流程
  12. 多渠道打包
  13. 怎么辨別華為的包更新別的應用市場的包
  14. 演算法,插入排序原理

聲網

  1. 覺得做的最好的專案
  2. Jetpack用了哪些組件
  3. ViewModel如何資料共享
  4. ViewModel在Activity旋轉時如何保存資料的
  5. ViewModel怎么創建的,存在哪
  6. 使用ViewModel程序中有沒有遇到什么問題
  7. LiveData原理,怎么派發資料的
  8. postValue是怎么執行的
  9. 使用LiveData的程序中有沒有遇到什么問題
  10. 自定義View有哪些注意事項
  11. 簡單介紹一下協程
  12. 多個協程怎么保證資料安全的
  13. 演算法,輸入(H?O) ×2,輸出h4o2

掌門教育

  1. 筆試邏輯題
  2. Java有哪些資料結構
  3. Arraylist是執行緒安全的嗎
  4. String,StringBuilde,StringBuffer的區別
  5. Java中的鎖介紹一下,同步鎖舉例
  6. 四大參考區別,場景舉例
  7. Activity生命周期
  8. Fragment生命周期
  9. Fragment銷毀生命周期執行順序
  10. 自定義流程,舉例
  11. 自定義View重繪方式有哪些,執行流程
  12. 事件分發原理,舉例,延伸
  13. 滑動沖突怎么解決
  14. 怎么自己實作一個長按事件
  15. Service是哪個執行緒,怎么通信
  16. Handler訊息機制
  17. Handler發送訊息是一定立即執行的嗎
  18. Handler運行在哪個執行緒
  19. 子執行緒可以創建Handler嗎,寫法有哪些區別
  20. Kotlin定義變數的方式有哪些
  21. lateinit怎么確保使用時已經初始化
  22. let,run,apply介紹,區別
  23. inline原理
  24. 簡單介紹下協程
  25. 協程并發怎么處理
  26. 協程底層是怎么實作的
  27. 記憶體泄露原理,舉例場景
  28. 啟動優化

傳音控股

  1. 做的最有成就感的專案是哪個
  2. 印象最深刻的專案是哪個
  3. LiveData底層實作原理
  4. 啟動優化
  5. 包體積優化
  6. 自定義View流程
  7. View異步加載
  8. 有用過哪些設計模式
  9. 介紹一下單例,餓漢式,懶漢式,雙重鎖
  10. 代理模式和裝飾模式的區別
  11. 策略模式和狀態模式的區別
  12. 說說觀察者模式
  13. 有看過哪些三方庫的原始碼
  14. Glide四層快取機制
  15. AMS了解多少

得物

  1. 簡單介紹一下HashMap
  2. HashMap呼叫put的執行流程
  3. Activity啟動流程
  4. Binder機制
  5. Handler訊息機制
  6. Handler是怎么實作主執行緒和子執行緒的通信的
  7. Looper卡死為什么不會造成主執行緒的阻塞
  8. 了解過記憶體泄露嗎
  9. 是怎么發現記憶體泄露的,怎么處理的
  10. 線上的記憶體泄露是怎么監控的
  11. LeakCanary實作原理
  12. 軟參考和弱參考的區別
  13. 了解過ANR嗎
  14. 什么原因會造成ANR
  15. Activity的回應時間為什么是5s
  16. 事件分發機制
  17. 怎么解決滑動沖突的
  18. 錄音功能是怎么做的
  19. 編碼解碼相關
  20. 包體積優化做了哪些作業

哈啰出行

  1. 挑一個專案詳細說一下,以及相關技術堆疊
  2. 介紹一下協程機制
  3. 說一下Dispatchers,withContext,Scope他們的作用
  4. 說一下你理解的MVP,MVVM
  5. Flutter相關
  6. 性能優化做了哪些作業
  7. 編譯速度怎么提升的
  8. 記憶體泄露
  9. LeakCanary檢測原理
  10. 熱修復,Sophix原理,ClassLoader
  11. Apk打包流程
  12. 多執行緒并發,如何保證執行緒安全
  13. synchronized修飾方法和修飾代碼塊有什么區別

小紅書

  1. 技術調研你是怎么做的,會考慮哪些因素
  2. 說一下MVVM
  3. 用過Jetpack中的哪些組件
  4. LiveData是怎么做資料派發的
  5. ViewModel螢屏旋轉的時候怎么做到不丟失資料的
  6. 使用MVVM的程序中有遇到什么問題嗎
  7. 性能優化做了哪些作業
  8. 記憶體泄露有哪些場景
  9. LeakCanary檢測原理
  10. 如果讓你做一個自動化的工具去檢測圖片過大并自動壓縮你會怎么做
  11. 自定義View畫板是怎么做的
  12. 怎么檢測頁面的FPS
  13. Handler在onCreate中發送大量資料會導致主執行緒卡頓嗎
  14. LayoutInflater.inflate有幾個引數,分別是什么意思

其他廠整理補充

  1. Android中的Context了解多少
  2. Application里面可以彈窗嗎
  3. Activity、Window、View三者的關系
  4. OkHttp中有哪些設計模式
  5. Retrofit中有哪些設計模式
  6. Retrofit.create做了哪些作業
  7. 自定義一個圓角View
  8. 協程launch有哪些引數
  9. 說說by關鍵字
  10. 代理和委托的區別
  11. 雙親委托模式
  12. 有幾種獲取view寬高的方式
  13. view.post為什么可以獲取到
  14. getWidth和getMesureWidth的區別
  15. 手寫遍歷二叉樹
  16. 手寫雙重鎖單例
  17. 手寫插入排序
  18. 手寫雙陣列去重并排序
  19. 如何判斷鏈表有環

還有一些公司的沒有記,比如蔚來、中歐基金、阿里等,如果上面這些你能掌握大部分,自然也不在話下,

二面、三面技術

都是偏專案和綜合能力,因人而異就直接整理了,

  1. 你負責專案中的哪些模塊
  2. 介紹一下xx功能的流程
  3. 專案的架構是怎樣的
  4. Kotlin和Java混編有哪些需要注意的
  5. 專案中有遇到哪些難點
  6. 如果讓你重構,你會怎么做
  7. 學習的途徑有哪些
  8. 你覺得什么樣的代碼是好代碼
  9. 團隊是怎么分工的
  10. 怎么做需求管理
  11. 期望什么樣的團隊
  12. 怎么看待大前端方向
  13. 一個新技術如何在團隊里推廣
  14. 未來的規劃是什么,你打算怎么實作
  15. 認為自己的優點是什么,缺點是什么
  16. 為什么離職

HR面

整理,

  1. 為什么離職
  2. 介紹一下過往的作業經歷
  3. 在上家公司你有什么識訓嗎
  4. 目前看機會會考慮哪些因素
  5. 你在之前的團隊中是怎樣一個角色
  6. 有什么興趣愛好嗎
  7. 最有成就感的一件事
  8. 有沒有做過什么不可思議的事
  9. 你認為自己的優點是什么
  10. 最近有在看什么書嗎,有什么感想
  11. 你一般遇到問題都是怎么解決的
  12. 未來的職業規劃是什么
  13. 你對未來的公司有什么期望嗎
  14. 目前薪資
  15. 期望薪資
  16. 還有什么想要問我的嗎

技術要點

針對上面的問題,我總結了一下面試前需要掌握的一些知識點:

  1. Java基礎、Kotlin基礎、Android基礎(重要
  2. App啟動流程
  3. Handler訊息機制
  4. View繪制流程
  5. 事件分發機制
  6. Jetpack常用組件原理
  7. Kotlin協程原理
  8. 性能優化
  9. 多執行緒、并發
  10. 組件化開發
  11. 熱修復原理
  12. 常用三方庫原理
  13. 常見的設計模式
  14. 資料結構和演算法

建議面前多練練手寫演算法,最好是拿筆在紙上寫,

關于演算法,不過是基于資料結構去操作資料的思想而已, 如果說限制了復雜度而想不出來的話,可以先寫再看如何優化,

市場行情

金九銀十招聘季,機會超級多啊,遇到好公司就入了吧,

可能有些同學看了上面的面試題覺得卷,正常的,

現在市場越來越成熟穩定,對面試者的要求也更高,加上技術更新又快,從Java到Kotlin、到Flutter、到Compose等等,確實有很多東西要學,很多同學都表示學不動了,我覺得,盲目跟風不如好好沉淀,

另外,再從面試官的角度聊聊,

雖然說大部分面試確實是各種底層實作、底層原理、手寫演算法什么的,不過作為面試官來說,其實有些也并不是要你都掌握的,問的深,一方面是校驗八股文,另一方面主要是技術摸底,看看你的技術邊際在哪,所以說,一場面試下來,能答上大部分即是通過了,當然,越多越加分,

只要技術夠硬,都是機會,

最后

在這里,我針對每個Android開發必備知識點都編入一套經典電子書庫(包含面試找作業的資料、JAVA知識、Android R FrameWork原始碼與UI、APP調優、架構、NDK模塊開發(音視頻系列),Flutter,,,)、匯總都打包放在這了,這套資源是伴隨我從小白一路成長為Android高級開發工程師點擊下方鏈接直達獲取:(for free)

Codechina

金九銀十希望每一位讀者都能找到一份理想的作業,不負努力,不服期待,

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/298143.html

標籤:其他

上一篇:Android APP 默認賦予權限

下一篇:初識 Jetpack Compose(二) :布局

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more