久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

android和linux有沒有區(qū)別

共計(jì) 1671 個(gè)字符,預(yù)計(jì)需要花費(fèi) 5 分鐘才能閱讀完成。

這篇文章主要為大家展示了“android 和 linux 有沒有區(qū)別”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“android 和 linux 有沒有區(qū)別”這篇文章吧。

android 和 linux 有區(qū)別:1、android 的應(yīng)用程序使用 JAVA 開發(fā),可以通過 JAVA 虛擬機(jī)運(yùn)行在 Android 系統(tǒng)上;而 Linux 的應(yīng)用程序使用“C/C++”開發(fā),能以機(jī)器碼的形式運(yùn)行在內(nèi)核系統(tǒng)上。2、兩者的底層驅(qū)動(dòng)軟件有差異。

本教程操作環(huán)境:CentOS 6 系統(tǒng)、Dell G3 電腦。

Android 和 Linux 作為現(xiàn)行主流的操作系統(tǒng),無論在消費(fèi)類產(chǎn)品還是在工控領(lǐng)域,都有廣泛的應(yīng)用。都說 Android 系統(tǒng)是脫胎于 Linux 系統(tǒng),那么是不是 Android 是不是屬于 Linux 的一種。現(xiàn)在就來談?wù)?Android 和 Linux 系統(tǒng)的異同點(diǎn)。
android 和 linux 有沒有區(qū)別

1、兩者的共同點(diǎn)

Android 是基于 Linux 內(nèi)核的系統(tǒng)。Android 和 Linux 系統(tǒng)的核心系統(tǒng)服務(wù)都依賴于 Linux 內(nèi)核, 如安全、內(nèi)核管理、進(jìn)程管理、網(wǎng)絡(luò)堆棧、驅(qū)動(dòng)模型等。Linux 內(nèi)核也作為兩者的硬件和軟件之間的抽象層,它隱藏具體硬件細(xì)節(jié)而為上層應(yīng)用開發(fā)提供統(tǒng)一的服務(wù)

android 和 linux 有沒有區(qū)別

2. 系統(tǒng)框架的差異

Linux 系統(tǒng)與 Android 表面上為兩個(gè)不同的操作系統(tǒng),但是 Android 本質(zhì)上還是一個(gè) Linux 系統(tǒng),只不過 Google 對(duì)它進(jìn)行了裁剪和定制。

另外,相較于 Linux 系統(tǒng),android 在其 Linux 內(nèi)核上面運(yùn)行了一個(gè)叫 Dalvik(4.4 版本后改為 ART)的 Java 虛擬機(jī) (JVM),因而使用 JAVA 開發(fā)的 android 的應(yīng)用程序可以通過 JAVA 虛擬機(jī)運(yùn)行在 Android 系統(tǒng)上。而 Linux 的應(yīng)用程序使用的是 C /C++ 開發(fā)的,可以機(jī)器碼的形式運(yùn)行在內(nèi)核系統(tǒng)上,兩者的系統(tǒng)框架差異,如圖。

android 和 linux 有沒有區(qū)別

android 和 linux 有沒有區(qū)別

3. Linux 與 android 底層驅(qū)動(dòng)軟件的差異

Android 除了 Linux 內(nèi)核具備的常用核心驅(qū)動(dòng)外,還增加了自己專有的內(nèi)核驅(qū)動(dòng)程序,如顯示驅(qū)動(dòng)、藍(lán)牙驅(qū)動(dòng)、相機(jī)驅(qū)動(dòng)、內(nèi)存卡驅(qū)動(dòng)、Binder IPC 驅(qū)動(dòng)等。

另外,Android 系統(tǒng)為了保護(hù)硬件廠商的知識(shí)產(chǎn)權(quán),增加了 HAL 層,可將驅(qū)動(dòng)具體的實(shí)現(xiàn)部分抽取發(fā)到 HAL 中去實(shí)現(xiàn),從而規(guī)避了硬件驅(qū)動(dòng)開源的風(fēng)險(xiǎn),所以 android 的驅(qū)動(dòng)程序是分為兩部分,一部分寫入內(nèi)核中,一部分寫入 HAL 層中。

Android 除要實(shí)現(xiàn)底層驅(qū)動(dòng)的開發(fā)外,還需要根據(jù) JNI 規(guī)則將驅(qū)動(dòng)程序封裝為 JNI 層接口,以達(dá)到應(yīng)用程序(JAVA 程序)可通過 JNI 來調(diào)用內(nèi)核驅(qū)動(dòng)程序。以顯示驅(qū)動(dòng)程序 Framebuffer 為例,如圖。

android 和 linux 有沒有區(qū)別

Linux 系統(tǒng)的顯示驅(qū)動(dòng)模型

android 和 linux 有沒有區(qū)別

Android 系統(tǒng)的顯示驅(qū)動(dòng)模型

(1)Linux 系統(tǒng):Framebuffer 驅(qū)動(dòng)只需要編譯到 Linux 內(nèi)核中,并留出相應(yīng)的 read、write、ioctl 等接口,便可供上位機(jī)應(yīng)用程序調(diào)用。
(2)Android 系統(tǒng):Framebuffer 驅(qū)動(dòng)先將簡單的硬件寄存器讀寫操作的驅(qū)動(dòng)編譯進(jìn)入內(nèi)核中,再將具體的硬件實(shí)現(xiàn)方式的驅(qū)動(dòng)寫入 HAL 層中,并根據(jù) JNI 規(guī)格封裝為 JNI 接口,才可供上位機(jī)應(yīng)用程序調(diào)用。

4. Linux 與 android 應(yīng)用層軟件的差異

但是 Android 應(yīng)用程序是使用 java 語言寫的,不能直接調(diào)用 C 語言實(shí)現(xiàn)的系統(tǒng)接口,而 Linux 系統(tǒng)中可以用 C 語言調(diào)用系統(tǒng)接口來與內(nèi)核進(jìn)行通信,于是 Android 系統(tǒng)中就有了一個(gè)叫做 JNI 的概念,用實(shí)現(xiàn) java 與 C /C++ 程序之間的信息交互。

(1)Android 應(yīng)用程序訪問 Android 內(nèi)核驅(qū)動(dòng)程序的方式:

APP— JNI— Android 內(nèi)核驅(qū)動(dòng)程序

APP— 硬件訪問服務(wù)— Android 內(nèi)核驅(qū)動(dòng)程序

(2)Linux 應(yīng)用程序訪問 linux 驅(qū)動(dòng)程序的方式

APP— Linux 內(nèi)核驅(qū)動(dòng)程序

APP— C 庫— Linux 內(nèi)核驅(qū)動(dòng)程序

以上是“android 和 linux 有沒有區(qū)別”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-25發(fā)表,共計(jì)1671字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 怀仁县| 井冈山市| 丹东市| 土默特左旗| 砚山县| 庆阳市| 连南| 全州县| 宁夏| 台南县| 松潘县| 册亨县| 吉水县| 沙坪坝区| 惠安县| 乡城县| 海城市| 喀喇沁旗| 博罗县| 永顺县| 五华县| 吴川市| 张家界市| 原阳县| 应城市| 舒城县| 南阳市| 介休市| 云林县| 肇庆市| 安远县| 稷山县| 油尖旺区| 四川省| 高安市| 奉节县| 曲周县| 随州市| 永靖县| 沁阳市| 慈利县|