Android操作系統(tǒng)的架構(gòu)設(shè)計(jì)分析
之前一直在Android應(yīng)用層上做工作,最近開(kāi)始研究Android平臺(tái)上的東東了,主要是在Android Frameworks層和系統(tǒng)庫(kù)層進(jìn)行研究。以下是我自己的理解,領(lǐng)悟,希望與大家一塊分享。
Android系統(tǒng)架構(gòu)分為L(zhǎng)inux內(nèi)核驅(qū)動(dòng)、C/C ++框架、Java框架、Java應(yīng)用程序。
Android應(yīng)用層:
Android應(yīng)用程序需要Java框架支持。主要是針對(duì)手機(jī)用戶(hù)的。Android應(yīng)用層都是由Java代碼寫(xiě)的,運(yùn)行在虛擬機(jī)中。虛擬機(jī)在Android平臺(tái)中扮演著很重要的角色。虛擬機(jī)在執(zhí)行Java類(lèi)的過(guò)程中,如果Java類(lèi)需要與C/C++組件溝通時(shí),虛擬機(jī)會(huì)載入C/C++組件,然后讓Java函數(shù)順利的調(diào)用到C/C++組件的函數(shù)。Java與C/C++能通過(guò)標(biāo)準(zhǔn)的JNI界面相互溝通。
注:Java類(lèi)是在虛擬機(jī)上運(yùn)行的,C/C++不是在虛擬機(jī)上執(zhí)行的。那么如何加載C/C++組件函數(shù)的呢?
答案是:通過(guò)System.loadLibrary(*.so的檔案名);入口函數(shù)是JNI_OnLoad();
Frameworks框架層(應(yīng)用框架層):
Java框架就是由C/C++庫(kù)包裝成為了一個(gè)JNI。簡(jiǎn)稱(chēng)Java Native Interface,即Java本地接口。在應(yīng)用層和系統(tǒng)庫(kù)層之間起了一個(gè)橋梁的作用。主要是針對(duì)手機(jī)開(kāi)發(fā)商。
C/C++框架(系統(tǒng)庫(kù)):
具體實(shí)現(xiàn)Java框架功能。Java框架中的native方法都是由C/C++來(lái)完成的。
Android驅(qū)動(dòng)底層(內(nèi)核層):
最后驅(qū)動(dòng)硬件完成功能。
系統(tǒng)架構(gòu)圖如下:
相關(guān)文章
Android實(shí)現(xiàn)可以展開(kāi)的TextView
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)可以展開(kāi)的TextView,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11Flutter自動(dòng)路由插件auto_route使用詳解
這篇文章主要為大家介紹了Flutter自動(dòng)路由插件auto_route的基本使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08Android調(diào)試華為和魅族手機(jī)logcat不顯示的問(wèn)題
今天小編就為大家分享一篇關(guān)于Android調(diào)試華為和魅族手機(jī)logcat不顯示的問(wèn)題,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-10-10Android分頁(yè)中顯示出下面翻頁(yè)的導(dǎo)航欄的布局實(shí)例代碼
這篇文章主要介紹了Android分頁(yè)中顯示出下面翻頁(yè)的導(dǎo)航欄的布局實(shí)例代碼,需要的朋友可以參考下2017-04-04Android7.0實(shí)現(xiàn)拍照和相冊(cè)選取圖片功能
這篇文章主要為大家詳細(xì)介紹了Android7.0實(shí)現(xiàn)拍照和相冊(cè)選取圖片功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07android RecyclerView添加footerview詳解
大家好,本篇文章主要講的是android RecyclerView添加footerview詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下2022-01-01Android基于虹軟(ArcSoft)實(shí)現(xiàn)人臉識(shí)別
人工智能時(shí)代快速來(lái)臨,其中人臉識(shí)別是當(dāng)前比較熱門(mén)的技術(shù),在國(guó)內(nèi)也越來(lái)越多的運(yùn)用,例如刷臉打卡,刷臉APP,身份識(shí)別,人臉門(mén)禁等。本文將為大家介紹Android基于虹軟(ArcSoft)實(shí)現(xiàn)人臉識(shí)別的demo,快來(lái)跟隨小編一起學(xué)習(xí)吧2021-12-12淺析Android中build.gradle的實(shí)用技巧
這篇文章主要介紹了淺析Android中build.gradle的實(shí)用技巧,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03Flutter進(jìn)階之實(shí)現(xiàn)動(dòng)畫(huà)效果(六)
這篇文章主要為大家詳細(xì)介紹了Flutter進(jìn)階之實(shí)現(xiàn)動(dòng)畫(huà)效果第六篇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08