史上最全的Android熱點技術面試題集錦
前言
很多人面試之前,可能沒有在互聯網公司工作過或者說工作過但年頭較短,不知道互聯網公司技術面試都會問哪些問題? 再加上可能自己準備也不充分,去面試沒幾個回合就被面試官幾個問題打蒙了,最後以慘敗收場。
下述是我整理的Android面試題匯總,由於篇幅原因,在這隻把熱點技術部分的題目列舉出來,後續還會更新其餘面試題內容,大家可以關注一下我,及時知曉我更新的知識點,同時這份面試集錦的整理也花費了我很多時間,有需要的朋友可以點擊這裡免費領取!
可以關注一下專欄Android高級開發架構(記得看專欄簡介哦~)每天更新各種Android開發趣事、技術乾貨、進階架構知識、面試經驗分享等。如有好的文章也歡迎投稿。
1.組件化
(1)概念:
組件化:是將一個APP分成多個module,每個module都是一個組件,也可以是一個基礎庫供組件依賴,開發中可以單獨調試部分組件,組件中不需要相互依賴但是可以相互調用,最終發布的時候所有組件以lib的形式被主APP工程依賴打包成一個apk。
(2)由來:
- APP版本迭代,新功能不斷增加,業務變得複雜,維護成本高
- 業務耦合度高,代碼臃腫,團隊內部多人協作開發困難
- Android編譯代碼卡頓,單一工程下代碼耦合嚴重,修改一處需要重新編譯打包,耗時耗力。
- 方便單元測試,單獨改一個業務模塊,不需要著重關注其他模塊。
(3)優勢:
- 組件化將通用模塊獨立出來,統一管理,以提高復用,將頁面拆分為粒度更小的組件,組件內部出了包含UI實現,還可以包含數據層和邏輯層
- 每個組件度可以獨立編譯、加快編譯速度、獨立打包。
- 每個工程內部的修改,不會影響其他工程。
- 業務庫工程可以快速拆分出來,集成到其他App中。
- 迭代頻繁的業務模塊採用組件方式,業務線研發可以互不幹擾、提升協作效率,並控制產品質量,加強穩定性。
- 並行開發,團隊成員只關注自己的開發的小模塊,降低耦合性,後期維護方便等。
(4)考慮問題:
模式切換:如何使得APP在單獨調試跟整體調試自由切換
組件化後的每一個業務的module都可以是一個單獨的APP(isModuleRun=false), release 包的時候各個業務module作為lib依賴,這裡完全由一個變數控制,在根項目 gradle.properties裡面isModuleRun=true。isModuleRun狀態不同,載入application和AndroidManifest都不一樣,以此來區分是獨立的APK還是lib。