Android架構(gòu)之framework淺談

Android四層架構(gòu)經(jīng)典圖

開局一張圖,內(nèi)容全靠編

Android四層架構(gòu)

自上而下分為四層:

  • 應(yīng)用程序?qū)樱╝pplication):
    最熟悉最常用的業(yè)務(wù)層。

  • 應(yīng)用程序框架層(framework):
    應(yīng)用程序使用的系統(tǒng)API框架,提供各種組件和服務(wù),包括ActivityManager,WindowManager,ViewSystem等。

  • 系統(tǒng)運(yùn)行層(libraries和runtime):
    1、libraries:Android 包含一些C/C++庫,這些庫能被Android系統(tǒng)中不同的組件使用;
    2、runtime:Android的核心庫ART,是Android的運(yùn)行環(huán)境(虛擬機(jī)),4.4開始取代Dalvik,5.0后徹底取代,在安裝APK或者動(dòng)態(tài)加載DEX文件時(shí)將其中的Java方法編譯為本地代碼,運(yùn)行程序的時(shí)候不需要再做JIT編譯。

  • linux內(nèi)核層(linux kernel):
    Android 的核心系統(tǒng)服務(wù)依賴于 Linux 2.6 內(nèi)核,如安全性,內(nèi)存管理,進(jìn)程管理, 網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型。 Linux 內(nèi)核也同時(shí)作為硬件和軟件棧之間的抽象層。


下面我們主要梳理framework的內(nèi)容:

需要學(xué)習(xí)的內(nèi)容有:進(jìn)程間通信,多線程,jni,linux相關(guān)知識,binder


framework包含的主要模塊

三大核心功能:

  • view.java:

View工作原理,實(shí)現(xiàn)包括繪制view、處理觸摸、按鍵事件等。

  • ActivityManagerService.java:

Ams 管理所有應(yīng)用程序的Activity 等,對應(yīng)用進(jìn)程和進(jìn)程中四大組件進(jìn)行管理(Activity的調(diào)度管理、Service的管理、Broadcast的分發(fā)、以及ContentProvider管理) 。

  • WindowManagerService.java:

Wms 為所有應(yīng)用程序分配窗口,并進(jìn)行管理;動(dòng)畫處理 ;Input分發(fā)、處理;Display管理(多屏顯示)。

其他知識點(diǎn)簡述:

  • Binder:

每個(gè)Binder都會對應(yīng)一個(gè)線程,所以一個(gè)含Activity的程序最少也有3個(gè)線程,分別是:

  • 1.ActivityThread(UI主線程 ):
    程序是從它的main()函數(shù)入口,內(nèi)部有ApplicationThread類(繼承IBinder)負(fù)責(zé)與AMS跨進(jìn)程通信,又有H類(繼承自Handler類),負(fù)責(zé)接收ApplicationThread發(fā)來的消息,實(shí)現(xiàn)把消息傳到主線程

  • 2.ApplicationThread:
    繼承于Binder,當(dāng)Ams與客戶端通信時(shí)(即調(diào)用客戶端的方法),Ams調(diào)用的就是這個(gè)類

  • 3.ViewRoot.W:
    負(fù)責(zé)客戶端與WMS的交互:內(nèi)部有W類,W類繼承于Binder,所以他與ApplicationThread的角色是差不多的,只不過他對應(yīng)的是Wms,當(dāng)Wms想與客戶端進(jìn)行通信的時(shí)候,Wms就調(diào)用這個(gè)類。內(nèi)部又有ViewRootHandler類繼承于Handler,所以他能在W類接收到Wms的消息后,把這個(gè)消息傳送到UI線程中。同時(shí)界面繪制的發(fā)起點(diǎn)也是在這里面:performTraversals()

  • JNI:

java本地服務(wù),和系統(tǒng)運(yùn)行層的c++進(jìn)行交互

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容