Android面試一天一題(Day 27:ART & Dalvik)

Android的每次版本升級都會帶來一些改變冤吨,有些改變對于應用開發(fā)者來說并沒有什么影響,但對于一些重大的改變,我認為Android開發(fā)是必要關注和了解一下的,有些改變也許會成為以后的Android進化方向惜浅。

面試時,我也比較喜歡問一些每個版本的不同之外伏嗜,或者問問對方喜歡哪個新版本的特性(如Android 7.0的新特性)坛悉。如果比較了解每個版本的不同之外,一般來說都是實踐經(jīng)驗比較豐富的承绸,很多都是踩過坑的裸影。而對新版本是否關注,其實也是一個檢測一個人的學習熱情最好的題目军熏,興趣是最好的老師空民,對Android有熱情的人很容易從各種途徑獲知相關的資訊。而沒有興趣的人羞迷,仿佛與世無爭界轩,只要還能用原來的方式寫代碼就感覺沒有學習新東西的必要。

如衔瓮,ART和Dalvik浊猾,對于應用開發(fā)者來說是無縫過渡的,那么你不奇怪Google是怎么做到的嗎热鞍?

面試題:知道什么是ART嗎葫慎?它和Dalvik有什么區(qū)別?

我們知道到薇宠,計算機只能識別機器碼偷办,而Java的運行是將class字節(jié)碼在JVM上進行解析最后再翻譯成機器碼執(zhí)行。Dalvik虛擬機就是針對Android應用(.dex)的一個JVM澄港,雖然他們實現(xiàn)和原理有很多不同椒涯,但我們可以簡單這樣理解。

每個應用的進程中都會有一個Dalvik虛擬機實例回梧,它們是相互獨立的废岂,一個應用的Dalvik虛擬機Crash了并不影響其他的。APK應用在運行時狱意,就需要Dalvik虛擬機去加載類并轉化成機器碼執(zhí)行湖苞,這個過程就是JIT(Just-In-Time),雖然dex經(jīng)過優(yōu)化會生成一個odex文件详囤,但這個過程仍然是運行時讓編譯器去解釋字節(jié)碼财骨,相當于多了一道轉換工序,對性能的影響不小。

在Android 4.4的版本里用戶還可以選擇是用Dalvik還是ART隆箩,而5.0后的版本直接換成了ART滑肉,把Dalvik刪除了。

而ART(Android runtime)和Dalvik不一樣的地方摘仅,就是想法去掉了中間解釋字節(jié)碼的過程靶庙,Dalvik是JIT的機制,與JIT相對的是AOT(Ahead-Of-Time)娃属,它發(fā)生在程序運行之前六荒。如我們用靜態(tài)語言(例如C/C++)來開發(fā)應用程序的時候,編譯器直接就把它們翻譯成目標機器碼矾端。這種靜態(tài)語言的編譯方式也是AOT的一種掏击。

但是很多Android應用開發(fā)者并不知道有ART的存在,因為ART虛擬機并不要求開發(fā)者將自己的應用直接編譯成目標機器碼秩铆,而是在應用安裝時由ART將應用的dex字節(jié)碼翻譯成本地機器碼砚亭。所以你會發(fā)現(xiàn),新的版本安裝應用的時間比之前要長一點殴玛。

小結

關于ART方面捅膘,我也沒有深入研究,有些東西確實是需要興趣或者壓力才能深入進去的滚粟。我們在應用層上開發(fā)寻仗,基本上也很少涉及Framework層以下的修改,但是我們一定要改變一些想法凡壤,如感覺和我們無關的就不舍得花時間看一看署尤,然后故步自封偏安一隅。你不看清楚外面的東西亚侠,怎么確認和你有沒有關呢曹体?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市硝烂,隨后出現(xiàn)的幾起案子箕别,更是在濱河造成了極大的恐慌,老刑警劉巖钢坦,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件究孕,死亡現(xiàn)場離奇詭異啥酱,居然都是意外死亡爹凹,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門镶殷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來禾酱,“玉大人,你說我怎么就攤上這事〔眨” “怎么了颗管?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長滓走。 經(jīng)常有香客問我垦江,道長,這世上最難降的妖魔是什么搅方? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任比吭,我火速辦了婚禮,結果婚禮上姨涡,老公的妹妹穿的比我還像新娘衩藤。我一直安慰自己,他們只是感情好涛漂,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布赏表。 她就那樣靜靜地躺著,像睡著了一般匈仗。 火紅的嫁衣襯著肌膚如雪瓢剿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天悠轩,我揣著相機與錄音跋选,去河邊找鬼。 笑死哗蜈,一個胖子當著我的面吹牛前标,可吹牛的內容都是我干的。 我是一名探鬼主播距潘,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼炼列,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了音比?” 一聲冷哼從身側響起俭尖,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎洞翩,沒想到半個月后稽犁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡骚亿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年已亥,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片来屠。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡虑椎,死狀恐怖震鹉,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情捆姜,我是刑警寧澤传趾,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站泥技,受9級特大地震影響浆兰,放射性物質發(fā)生泄漏。R本人自食惡果不足惜珊豹,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一镊讼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧平夜,春花似錦蝶棋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至段直,卻和暖如春吃溅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鸯檬。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工决侈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人喧务。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓赖歌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親功茴。 傳聞我的和親對象是個殘疾皇子庐冯,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內容