Android和Linux發(fā)行版的區(qū)別

20161214230337971.jpg
20161214230415387 (1).jpg

上面兩幅圖展示了Android系統(tǒng)和Linux發(fā)行版系統(tǒng)(Ubuntu/Fedora/centos)之間的區(qū)別和聯(lián)系政供≈该矗可以這么說Android本質(zhì)上還是一個(gè)Linux系統(tǒng),只不過Google對(duì)它進(jìn)行了裁剪和定制,這跟我們定制Linux到自己的嵌入式設(shè)備上的做法大同小異迷帜,只不過Google做的更多罷了。

上圖中也可以看出來色洞,很多人說Android系統(tǒng)的程序只能用Java開發(fā)戏锹,這么說的說明對(duì)Android系統(tǒng)的架構(gòu)了解的還不是很深入,其實(shí)從圖上看到火诸,Google自己寫了一個(gè)叫Dalvik的程序運(yùn)行在Linux的系統(tǒng)上面锦针,這個(gè)程序就是Android的Java虛擬機(jī)(JVM),由于效率等問題Android4.4以后改為Android Run Time(ART)置蜀,但不管是Dalvik還是ART奈搜,都是用c/c++開發(fā)的,而用Java開發(fā)出來的APP其實(shí)是運(yùn)行在Dalvik/ART上面的盯荤,皮之不存毛將焉附馋吗,沒有Dalvik/ART,那些Java開發(fā)的APP是根本沒法運(yùn)行的廷雅,所以說那些說Android系統(tǒng)不能用c/c++開發(fā)的說法是站不住腳的耗美,只要用AOSP(安卓開放源碼項(xiàng)目)里面的交叉編譯器編譯出來的二進(jìn)制文件在Android上面照樣也是可以運(yùn)行的京髓,而且跟Dalvik/ART屬于同一層次的東西,即(都是init進(jìn)程的子進(jìn)程)商架,但是一般的Android系統(tǒng)上init進(jìn)程只有一個(gè)子進(jìn)程即Dalvik/ART堰怨,如果非要說Dalvik/ART才算Android的話,那么Android確實(shí)不能用c/c++開發(fā)蛇摸,因?yàn)镴ava程序編譯出來的是字節(jié)碼备图,只能在Dalvik/ART上運(yùn)行,c/c++編譯出來的是二進(jìn)制機(jī)器碼直接在CPU中運(yùn)行赶袄,應(yīng)該說c/c++開發(fā)(這里不是說的JNI方式)Android程序無法調(diào)用Android的Java類庫這樣才是正確的揽涮。

再看看Linux發(fā)行版的做法,Linux發(fā)行版一般是在Linux的基礎(chǔ)上開發(fā)了一套桌面管理系統(tǒng)饿肺,比如基于GTK框架的gnome蒋困,比如基于Qt框架的LXQT。跟Windows一樣敬辣,經(jīng)典的一個(gè)桌面系統(tǒng)+N個(gè)軟件的模式雪标,用c/c++開發(fā)出來程序編譯成二進(jìn)制的機(jī)器碼直接運(yùn)行在Linux系統(tǒng)上,這些軟件全部都是跟Dalvik/ART一個(gè)層次的東西溉跃,而Linux發(fā)行版的程序能不能用Java開發(fā)呢村刨?這個(gè)問題就跟問Windows上能不能用Java開發(fā)一樣沒水準(zhǔn)。畢竟Dalvik/ART本身也是運(yùn)行在Linux系統(tǒng)上的撰茎,你只要把Dalvik/ART移植到Linux發(fā)行版甚至Windows上嵌牺,你手機(jī)里的那些APP就可以運(yùn)行了(當(dāng)然是不依賴硬件的,如果要打電話肯定是不行了)龄糊,不然你以為Android模擬器是怎么弄的逆粹。

總結(jié)起來,Android系統(tǒng)和Linux發(fā)行版的系統(tǒng)根本區(qū)別是Android上面只跑了一個(gè)Dalvik/ART绎签,而Linux發(fā)行版上面跑了很多“Dalvik/ART”而已枯饿。如果你把gnome或者LXQT部署到Android上,或者把Dalvik/ART部署到Linux發(fā)行版上的話诡必,那么二者的區(qū)別可能并沒你想象的那么大奢方。

20161214230548503.jpg

其實(shí),在Linux上面跑一個(gè)軟件(虛擬機(jī)爸舒、解釋器)蟋字,然后再基于這個(gè)軟件做二次開發(fā)的的做法Google的Android并不是第一個(gè)這么干的。工控行業(yè)的小伙伴對(duì)控制器應(yīng)該很熟悉吧扭勉?什么鹊奖,你不知道控制器?或者說PLC更親切吧涂炎,PLC(可編程控制器)只是一種通用的控制器而已忠聚,PLC分為兩種设哗,一種是編譯型的PLC,我們?cè)趯W(xué)校里學(xué)習(xí)的什么歐姆龍两蟀,三菱网梢,西門子S300都是這種PLC,這種PLC的軟件架構(gòu)很簡單赂毯,就是一個(gè)單片機(jī)战虏,然后我們畫的梯形圖跟我們編譯單片機(jī)程序一樣直接被編譯成了機(jī)器碼,然后燒寫到單片機(jī)里面執(zhí)行党涕,這種PLC是沒有辦法監(jiān)控運(yùn)行的烦感,不過我要說的是另外一種PLC,曾經(jīng)機(jī)緣巧合接觸過一段時(shí)間膛堤,那就是軟PLC手趣,最常用的軟PLC就是codesys,codesys可不止是一個(gè)簡單的PLC編譯工具骑祟!它是一個(gè)軟PLC核回懦!為什么說他跟Android的做法十分相似呢?看看它的架構(gòu)就知道了次企,codesys通常被部署在Linux系統(tǒng)上面,開機(jī)即運(yùn)行潜圃,然后我們的梯形圖程序被codesys編譯工具轉(zhuǎn)成梯形圖指令保存到內(nèi)存中缸棵,然后codesys內(nèi)核逐句解析梯形圖指令,邊解析邊執(zhí)行谭期,而不是像傳統(tǒng)的編譯型的PLC一樣先把所有程序編譯成機(jī)器碼再燒寫到flash中堵第,運(yùn)行的時(shí)候再搬到內(nèi)存里面運(yùn)行,這跟JVM執(zhí)行字節(jié)碼如出一轍隧出,這種PLC可以很方便的實(shí)現(xiàn)監(jiān)控運(yùn)行踏志。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市胀瞪,隨后出現(xiàn)的幾起案子针余,更是在濱河造成了極大的恐慌,老刑警劉巖凄诞,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件圆雁,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡帆谍,警方通過查閱死者的電腦和手機(jī)伪朽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來汛蝙,“玉大人烈涮,你說我怎么就攤上這事朴肺。” “怎么了坚洽?”我有些...
    開封第一講書人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵宇挫,是天一觀的道長。 經(jīng)常有香客問我酪术,道長器瘪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任绘雁,我火速辦了婚禮橡疼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘庐舟。我一直安慰自己欣除,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開白布挪略。 她就那樣靜靜地躺著历帚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪杠娱。 梳的紋絲不亂的頭發(fā)上挽牢,一...
    開封第一講書人閱讀 52,682評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音摊求,去河邊找鬼禽拔。 笑死,一個(gè)胖子當(dāng)著我的面吹牛室叉,可吹牛的內(nèi)容都是我干的睹栖。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼茧痕,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼野来!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起踪旷,我...
    開封第一講書人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤曼氛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后埃脏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體搪锣,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年彩掐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了构舟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖狗超,靈堂內(nèi)的尸體忽然破棺而出弹澎,到底是詐尸還是另有隱情,我是刑警寧澤努咐,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布苦蒿,位于F島的核電站,受9級(jí)特大地震影響渗稍,放射性物質(zhì)發(fā)生泄漏佩迟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一竿屹、第九天 我趴在偏房一處隱蔽的房頂上張望报强。 院中可真熱鬧,春花似錦拱燃、人聲如沸秉溉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽召嘶。三九已至,卻和暖如春哮缺,著一層夾襖步出監(jiān)牢的瞬間弄跌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來泰國打工蝴蜓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留碟绑,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓茎匠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親押袍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子诵冒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容