原文;https://www.jianshu.com/p/cfa824ecaa52
面試
每一個人知識面不同,可能對於我來講算有難度的大家以爲so easy哈哈。這裏舉幾個記得比較清楚的面試題,答案不保證必定標準,大家權當參考,有更好的也歡迎在評論區留言感謝!編程
要測試 Android 應用程序,一般會建立如下類型自動單元測試架構
本地測試:只在本地機器 JVM 上運行,以最小化執行時間,這種單元測試不依賴於 Android 框架,或者即便有依賴,也很方便使用模擬框架來模擬依賴,以達到隔離 Android 依賴的目的,模擬框架如 Google 推薦的 Mockito;框架
檢測測試:真機或模擬器上運行的單元測試,由須要跑到設備上,比較慢,這些測試能夠訪問儀器(Android 系統)信息,好比被測應用程序的上下文,通常地,依賴不太方便經過模擬框架模擬時採用這種方式;
注意:單元測試不適合測試複雜的 UI 交互事件
App 的穩定主要決定於總體的系統架構設計,同時也不可忽略代碼編程的細節規範,正所謂「千里之堤,潰於蟻穴」,一旦考慮不周,看似可有可無的代碼片斷可能會帶來總體軟件系統的崩潰,因此上線以前除了本身本地化測試以外還須要進行 Monkey 壓力測試 組件化
少部分面試官可能會延伸,如 Gradle 自動化測試、機型適配測試等單元測試
插件化是指將 APK 分爲宿主和插件的部分。把須要實現的模塊或功能當作一個獨立的提取出來,在 APP 運行時,咱們能夠動態的載入或者替換插件部分,減小宿主的規模學習
宿主: 就是當前運行的 APP。
插件: 相對於插件化技術來講,就是要加載運行的apk 類文件。測試
這是我整理的插件化技術思惟圖;插件
引入組件化的緣由:項目隨着需求的增長規模變得愈來愈大,規模的增大致使了各類業務錯中複雜的交織在一塊兒,每一個業務模塊之間,代碼沒有約束,帶來了代碼邊界的模糊,代碼衝突時有發生, 更改一個小問題可能引發一些新的問題, 牽一髮而動全身,增長一個新需求,須要熟悉相關的代碼邏輯,增長開發時間
1.避免重複造輪子,能夠節省開發和維護的成本。
2.能夠經過組件和模塊爲業務基準合理地安排人力,提升開發效率。
3.不一樣的項目能夠共用一個組件或模塊,確保總體技術方案的統一性。
4.爲將來插件化共用同一套底層模型作準備。架構設計
組件化開發流程;是把一個功能完整的 App 或模塊拆分紅多個子模塊(Module),每一個子模塊能夠獨立編譯運行,也能夠任意組合成另外一個新的 App 或模塊,每一個模塊即不 相互依賴但又能夠相互交互,可是最終發佈的時候是將這些組件合併統一成一個 apk,遇到某些特殊狀況甚至能夠升級或者降級
固然問的不僅是這麼幾個問題。當時回答的時候可能會稍微囉嗦一些,這些是根據我回頭從新整理了一下的。更多的面試題就不一一再例出來了
我平時遇到有用的學習視頻,資料都喜歡收集整理起來。包括此次去騰訊面試遇到的問題都有整理在這篇社招文檔裏面了。若是有須要的朋友也能夠在評論區留言,我看到後會回覆發你的
急需進階學習視頻的朋友能夠留言視頻教程,請說明須要初中級的,仍是高級的教程。
身邊不少人會不停告訴你,要不斷的學習,否則說不定哪天就被淘汰了
可是他們不告訴你,應該學什麼?怎麼學?不說總結的重要性?
學而不思則罔。望共勉!