1. 程式人生 > 其它 >2021Android常見筆試題,想搞定大廠面試官

2021Android常見筆試題,想搞定大廠面試官

正文 Android進階重難點

Java
  • 集合:使用場景、原始碼閱讀
  • GC機制
  • 虛擬機器
  • 物件記憶體分配

要學好Android,必須要有紮實的Java基礎(當然,現在還有Kotlin)。這裡只列出了四點,但Java的體系非常龐大,重難點當然不只這些,列出來的是在實際專案和麵試中常用或常見的。

Android常用/重要類
  • Activity
  • Handler
  • HandlerThread
  • AsyncTask
  • Binder

Android這幾個類在程式設計時是比較高頻使用的,所以我打算細讀下這幾個類的原始碼。而這幾個類也是面試經常被問到的,如Activity啟動流程、Binder通訊原理等等,所以非常有閱讀價值!

Android基礎技術和高頻面試知識點
  • View事件傳遞
  • View繪製流程
  • SurfaceView的使用
  • IntentService替換Service的場景
  • Service保活
  • Android序列化方式和區別

這些知識點算是比較基礎的,但也很重要!可惜在實際專案中很少用到,所以經常會忘了這些知識。所以打算把其寫成文章,加深自己印象。

NDK和JNI

說起這個我就頭疼,相信很多人跟我一樣,如果只是呼叫C層介面還好,如果要寫C的程式碼,就很尷尬了。但我們不能總是逃避困難,而是迎難而上!所以我下定決心來跨過心裡的這道坎了!

演算法與資料結構
  • 佇列、棧、連結串列、有向圖
  • 排序
  • 查詢
  • 紅黑樹

在家的幾本演算法書都滿是灰了... 羅列的點不難,算是需要基本掌握的吧,但我總是看了忘了,忘了又看,還是記不得... 所以也打算寫文章增強記憶。另外,如果做應用級別的開發,掌握這幾個知識點基本是夠用的了,畢竟Java的集合也提供了排序介面。但還是需要掌握下,畢竟不同演算法使用到不同場景。

外掛化/熱修復

作為Android進階必掌握的技能,這個不會都不好意思說自己的Android開發的。之前看了一個月RePlugin的原始碼,感覺道行還不夠。很多程式碼的處理或適配看得似懂非懂,如Binder的機制等。所以這個需要大量的知識作為支撐才能完成看懂,未來再戰!

第三方優秀開源庫
  • RxJava
  • Glide
  • OKHttp

“RTFSC (Read The F**king Source Code )”。每個人都有自己的程式設計風格,如果不借鑑、不參考下別人的程式碼,眼界永遠這麼小,難以進一步提升程式設計境界。所以閱讀他人優秀的程式碼是非常有必要的!

Android常見的架構模式
  • MVC
  • MVP
  • MVVM

解耦!解耦!Android的架構模式的使用重中之重無非就是解耦了。開發程式碼不難,維護程式碼才是最難的。如果程式碼都很多的解耦,把維護成本降低,工作效率自然提高。

Gradle和Groovy

相信現在大多數人都用Android Studio開發了,Gradle作為構建工具真是非常強大,個人覺得它完成可以取代Java的編譯期註解,有過之而無不及。因為連檔案也能在編譯期作修改,非常強大,所以也非常值得學習。

通用技能
  • TCP/HTTP
  • SQL
  • 自動化測試
  • 抓包

除了Android的知識點意外,還需要掌握一些通用的技能。畢竟懂多點才有底氣跟後端懟嘛哈哈。

最後

想要了解更多關於大廠面試的同學可以點贊支援一下,除此之外,我也分享一些優質資源,包括:Android學習PDF+架構視訊+原始碼筆記高階架構技術進階腦圖、Android開發面試專題資料,高階進階架構資料 這幾塊的內容。非常適合近期有面試和想在技術道路上繼續精進的朋友。

本文已被CODING開源專案:《Android學習筆記總結+移動架構視訊+大廠面試真題+專案實戰原始碼》收錄