從應用層深入Framework層,Android Framework 該如何學習?

2022年11月15日22:59:02 科技 1351

對於咱們Android開發來說,一般來說都是幹上個幾年之後,都得要考慮進階或者是轉行的問題。但老話說轉行窮三年,不到萬不得已我想大多數人都不會去放棄現在的崗位與薪資

如果你還在干Android並且想要進階,那麼對Framework的了解是必不可少的,從應用層深入向Framework層也是必然的。

Android架構

Android 平台的基礎是 Linux 內核。 Android Runtime (ART/Dalvik) 依靠 Linux 內核來執行底層功能,例如線程和低層內存管理等。

而在Android Runtime之上就是我們經常接觸的Java API Framework層, 如下圖是Android的系統架構圖

從應用層深入Framework層,Android Framework 該如何學習? - 天天要聞

為何要學Android Framework?

很多應用層開發者包括我一開始都覺得開發上層應用為什麼要了解這些關於系統代碼的知識,其實作為應用層開發了解一些Framework層的源碼及原理是非常有必要的,我總結大概有如下幾點:

  1. 了解系統組件工作機制,有助於我們解決問題,畢竟我們平時用的四大組件都是系統給我們創建好的,了解了系統組件工作機制,至少在看問題日誌的調用棧可以更加清晰。
  2. Android作為Linux上一款非常優秀的操作系統,學習Android操作系統,可以提高我們對操作系統在實現上的理解,可以讓我們的技術更進一步。

如何學習Framework

上面大致列了Android系統的層級, 這裡就要對每個層級所需要的相關知識做如下列舉,這些僅僅只是羅列了很少一部分,有時間之後會進行補充,想要學明白這些點都需要花費大家非常多的精力, 但現在很多人迫在眉睫想要學好學會Framework關於如何學習Android Framework開發知識,仍在迷茫的開發們可以參考整理的這份進階文檔《Android Framework 源碼開發手冊》,今天在這裡分享給大家:

獲取方法: 關注公眾號<Android苦做舟> 領取這些開發文檔。

從應用層深入Framework層,Android Framework 該如何學習? - 天天要聞

1.Android高級開發工程師必備基礎技能
2.Android性能優化核心知識筆記
3.Android+音視頻進階開發面試題衝刺合集
4.Android 音視頻開發入門到實戰學習手冊
5.Android Framework精編內核解析
6.Flutter實戰進階技術手冊
7.近百個Android錄播視頻+音視頻視頻dome
8.Android Handler機制解析

1.Framework通信

進程間通信(Binder IPC機制)

  • Linux內存binder基礎
  • Binder IPC通信原理
  • 深入Binder驅動
  • Binder面試總結(阿里篇)

從應用層深入Framework層,Android Framework 該如何學習? - 天天要聞

進程內通信(Handler消息機制)

  • Loop消息泵機制
  • Message解析
  • Handler面試分享(鵝廠

從應用層深入Framework層,Android Framework 該如何學習? - 天天要聞

實戰企業架構通信

  • LiveData事件機制

2.Framework底層服務

AMS原理

  • SystemServer加載AMS
  • AMS數據結構
  • AMS數據結構
  • Activtiy棧管理
  • 手機開機啟動的AMS流程
  • App啟動中的AMS流程
  • Activtiy管理
  • AMS面試集合
  • AMS原理實戰

從應用層深入Framework層,Android Framework 該如何學習? - 天天要聞

PMS原理

  • Packagelnstaller安裝器流程分析
  • PMS源碼解讀
  • T10級面試PMS總結

從應用層深入Framework層,Android Framework 該如何學習? - 天天要聞

WMS機制

  • WMS內核
  • Window的創建過程
  • 企業級Toast與Window架構體系
  • T10級崗位WMS面試總結

從應用層深入Framework層,Android Framework 該如何學習? - 天天要聞

3.Framework系統資源

ServiceManager原理

  • init.rc文件啟動關鍵服務
  • service_ manager進程入口
  • ServiceManager消息輪訓
  • ServiceManager服務存儲之svclist鏈表
  • ServiceManager面試總結

從應用層深入Framework層,Android Framework 該如何學習? - 天天要聞

深入Contxt上下文

  • Context與ApplicationContext
  • Context族譜分析
  • Contextmp與ActivityThread
  • getActivity()與getContext ()內存區別
  • 帶你認識不一樣的上下文Context

深入Resource資源加載

  • resources.arsc文件
  • ResourcesManager創建Resource
  • LoadedApk與Resource關係

4.Framework事件機制

事件分發機制

  • Android事件處理的三個流程
  • 事件信號從內核到IMS過程
  • IMS如何推送數據給ViewRootimp轉入上層
  • Android處理Down事件的責任鏈模式
  • Android處理Move事件
  • 手寫模擬Android事件分發架構

從應用層深入Framework層,Android Framework 該如何學習? - 天天要聞

事件衝突解決萬能公式

  • 產生衝突事件分類
  • 產生衝突事件分類
  • 事件衝突優先級
  • 事件衝突模擬實戰

5.Framework UI機制

UI繪製原理

  • setContentView加載數據的核心概念
  • ViewRootlmpl的繪製管理
  • Choreographer編舞者
  • 測量機制(onMeasure)
  • 擺放機制(onLayout)
  • T10級面試UI繪製總結

從應用層深入Framework層,Android Framework 該如何學習? - 天天要聞

UI自定義實戰

  • RecycleView
  • Webview
  • ViewPager

從應用層深入Framework層,Android Framework 該如何學習? - 天天要聞

獲取方法: 關注公眾號<Android苦做舟> 領取這些開發文檔

從應用層深入Framework層,Android Framework 該如何學習? - 天天要聞

1.Android高級開發工程師必備基礎技能
2.Android性能優化核心知識筆記
3.Android+音視頻進階開發面試題衝刺合集
4.Android 音視頻開發入門到實戰學習手冊
5.Android Framework精編內核解析
6.Flutter實戰進階技術手冊
7.近百個Android錄播視頻+音視頻視頻dome
8.Android Handler機制解析

科技分類資訊推薦

長安與東風重組新進展:朱華榮稱不會改變長安既定戰略 - 天天要聞

長安與東風重組新進展:朱華榮稱不會改變長安既定戰略

2月9日,長安汽車和東風集團股份(00489.HK)同步發布了控股股東“正在與其他國資央企集團籌劃重組事項”的信息。長安汽車的控股股東是兵裝集團,而東風集團股份的控股股東是東風公司。隨即,長安汽車和東風集團這兩家汽車央企將合併重組,成為業內關注的焦點。
公安部出手了!年齡限制放寬10年、送考下鄉,2025年考駕照不難了 - 天天要聞

公安部出手了!年齡限制放寬10年、送考下鄉,2025年考駕照不難了

電動車加強管理以後,要求機動車類型的車輛需要持證上路,但是老年人考駕照卻受阻,一方面有年齡的限制,另一方面偏遠山區考駕照不方便,所以在2025年公安部出手了,年齡限制放寬10年,同時推出送考下鄉服務,還進一步的降低考駕照的費用,2025年起考摩托車駕照不難了。
從“星靈安全守護體系”到昊鉑HL,看懂廣汽科技日 - 天天要聞

從“星靈安全守護體系”到昊鉑HL,看懂廣汽科技日

發布會以技術切入,並全程圍繞安全展開。廣汽集團董事長、總經理馮興亞率先登場,宣布2025年四季度將正式上市支持L3級智能駕駛的車型,他同時強調面向自動駕駛時代對智能駕駛技術、整車安全架構以及突發風險處理能力的要求更高。如何才能滿足更高的要求?馮興亞提到了“廣汽
關稅大棒下,最受傷的車企出現了 - 天天要聞

關稅大棒下,最受傷的車企出現了

特朗普的關稅大棒剛揮出,尚未嚇退“外敵”,卻先刺痛了自己。近日,擁有瑪莎拉蒂、Jeep等14個品牌的全球第四大車企斯泰蘭蒂斯突然宣布裁撤900名美國工人,關閉加拿大和墨西哥兩家工廠,北美生產線陷入癱瘓。幾乎同一時間,捷豹路虎宣布暫停對美出口一個月,奧迪更是直接