05 Android---java虛擬機(jī)跟dalvik虛擬機(jī)的區(qū)別(從01開始點(diǎn)點(diǎn)入門,視頻+筆記)

大家好,我是森森

這節(jié)課我簡單給大家介紹一下java虛擬機(jī)跟安卓系統(tǒng)虛擬機(jī)的區(qū)別.可能時間太晚了,有點(diǎn)不在狀態(tài),也有點(diǎn)緊張,大家見諒.


05java虛擬機(jī)跟dalvik虛擬機(jī)的區(qū)別

這篇文章重點(diǎn)寫一寫安卓運(yùn)行時和Java運(yùn)行時的區(qū)別.

什么是運(yùn)行時呢?其實(shí)我們所說的虛擬機(jī)就是運(yùn)行時.

兩種虛擬機(jī)有什么不同呢?

先說Java虛擬機(jī),它的工作流程是這樣的,首先編寫一個Java代碼,然后用Javac這個指令,把它編譯成.class文件的字節(jié)碼文件,我們想要運(yùn)行這個字節(jié)碼文件,必須要把它放到虛擬機(jī)里(

JVM)去裝載執(zhí)行.

安卓呢,它也有自己的虛擬機(jī),叫dalvik virtual machine,我們平時都叫它dalvik虛擬機(jī).

dalvik虛擬機(jī)的編譯過程要比JVM多了一個步驟,那就是Java的字節(jié)碼文件還要經(jīng)過進(jìn)一步處理,經(jīng)過dex compiler,也就是dex編譯器,把它轉(zhuǎn)成dalvik byte code,dalvik類型的字節(jié)碼,然后再放到dalvik虛擬機(jī)里運(yùn)行,那這個過程到底做了什么操作呢?

大家也看了視頻里的實(shí)驗(yàn),就是同樣的大小,整個文件要比多個文件的文件夾拷貝的要快.

同樣的道理,在Java虛擬機(jī)要執(zhí)行代碼的時候,它要把所有的class字節(jié)碼文件給裝載進(jìn)虛擬機(jī)里,假設(shè),你寫的這個應(yīng)用有一百個Java代碼,就會生成一百個.class的字節(jié)碼文件,它把這些字節(jié)碼文件一個個裝載進(jìn)來,然后去找到字節(jié)碼,再去解析運(yùn)行,它比較慢,

dalvik虛擬機(jī),它所有的代碼,只會生成一個dex文件,這個dex文件直接裝載到dalvik虛擬機(jī)就可以解析執(zhí)行了,運(yùn)行效率會比較高.

另外,dalvik虛擬機(jī)還會對字節(jié)碼文件做很多優(yōu)化操作,普通的Java虛擬機(jī),每個class文件都有一個header,這個頭包含著編譯器的版本,運(yùn)行的jvm版本等信息,每個class文件都一個頭,就比較浪費(fèi)存儲空間,

而dalvik虛擬機(jī)是把所有class文件的頭都給抽取出來,只生成一個公共的頭,另外,像一般我們寫代碼的時候會有一些靜態(tài)變量,比如說,你定義了一個public static final int i=1;它事實(shí)上是一個全局的靜態(tài)的成員變量,這個值是不會發(fā)生修改的,如果很多代碼有這樣的定義,

dalvik虛擬機(jī)就把這樣的一些常量給抽取出來,有字符串的常量池,類型定義的常量池,字段的常量池,方法的常量池,所以,dalvik虛擬機(jī)更適合移動平臺,它的效率更高,運(yùn)行速度也更快.

另外呢,谷歌開發(fā)dalvik虛擬機(jī)還有一個原因,就是Java虛擬機(jī)版權(quán)問題,不是它自己的東西,用了得掏錢.視頻中故事已經(jīng)講得很細(xì),不再贅述.

本人QQ號,525902456,如有錯誤,歡迎指出,希望能交到更多朋友,交流技術(shù).

免費(fèi)贈送安卓教程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蛇耀,隨后出現(xiàn)的幾起案子赔桌,更是在濱河造成了極大的恐慌胶坠,老刑警劉巖飘言,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件霹娄,死亡現(xiàn)場離奇詭異质礼,居然都是意外死亡市栗,警方通過查閱死者的電腦和手機(jī)缀拭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來填帽,“玉大人蛛淋,你說我怎么就攤上這事〈垭纾” “怎么了褐荷?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長嘹悼。 經(jīng)常有香客問我叛甫,道長,這世上最難降的妖魔是什么杨伙? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任其监,我火速辦了婚禮,結(jié)果婚禮上限匣,老公的妹妹穿的比我還像新娘抖苦。我一直安慰自己,他們只是感情好米死,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布锌历。 她就那樣靜靜地躺著,像睡著了一般峦筒。 火紅的嫁衣襯著肌膚如雪究西。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天物喷,我揣著相機(jī)與錄音卤材,去河邊找鬼。 笑死脯丝,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的伏伐。 我是一名探鬼主播宠进,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼藐翎!你這毒婦竟也來了材蹬?” 一聲冷哼從身側(cè)響起实幕,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎堤器,沒想到半個月后昆庇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡闸溃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年整吆,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辉川。...
    茶點(diǎn)故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡表蝙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出乓旗,到底是詐尸還是另有隱情府蛇,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布屿愚,位于F島的核電站汇跨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏妆距。R本人自食惡果不足惜穷遂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望毅厚。 院中可真熱鬧塞颁,春花似錦、人聲如沸吸耿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咽安。三九已至伴网,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間妆棒,已是汗流浹背澡腾。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留糕珊,地道東北人动分。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像红选,于是被迫代替她去往敵國和親澜公。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評論 2 355

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