這篇文章主要介紹了Android操作系統(tǒng)的架構(gòu)設(shè)計(jì)分析,Android系統(tǒng)架構(gòu)分為Linux內(nèi)核驅(qū)動、C/C ++框架、Java框架、Java應(yīng)用程序,本文分別講解了它的作用,需要的朋友可以參考下
之前一直在Android應(yīng)用層上做工作,最近開始研究Android平臺上的東東了,主要是在Android Frameworks層和系統(tǒng)庫層進(jìn)行研究。以下是我自己的理解,領(lǐng)悟,希望與大家一塊分享。
Android系統(tǒng)架構(gòu)分為Linux內(nèi)核驅(qū)動、C/C ++框架、Java框架、Java應(yīng)用程序。
Android應(yīng)用層:
Android應(yīng)用程序需要Java框架支持。主要是針對手機(jī)用戶的。Android應(yīng)用層都是由Java代碼寫的,運(yùn)行在虛擬機(jī)中。虛擬機(jī)在Android平臺中扮演著很重要的角色。虛擬機(jī)在執(zhí)行Java類的過程中,如果Java類需要與C/C++組件溝通時,虛擬機(jī)會載入C/C++組件,然后讓Java函數(shù)順利的調(diào)用到C/C++組件的函數(shù)。Java與C/C++能通過標(biāo)準(zhǔn)的JNI界面相互溝通。
注:Java類是在虛擬機(jī)上運(yùn)行的,C/C++不是在虛擬機(jī)上執(zhí)行的。那么如何加載C/C++組件函數(shù)的呢?
答案是:通過System.loadLibrary(*.so的檔案名);入口函數(shù)是JNI_OnLoad
Frameworks框架層(應(yīng)用框架層):
Java框架就是由C/C++庫包裝成為了一個JNI。簡稱Java Native Interface,即Java本地接口。在應(yīng)用層和系統(tǒng)庫層之間起了一個橋梁的作用。主要是針對手機(jī)開發(fā)商。
C/C++框架(系統(tǒng)庫):
具體實(shí)現(xiàn)Java框架功能。Java框架中的native方法都是由C/C++來完成的。
Android驅(qū)動底層(內(nèi)核層):
最后驅(qū)動硬件完成功能。
系統(tǒng)架構(gòu)圖如下:

新聞熱點(diǎn)
疑難解答
圖片精選