sam31213121 wrote:
這是什麼情形!?讓...(恕刪)
Dalvik 與 ART 的分別
Dalvik在過去所有的 Android 版本中 , 所有的 App 及 Android 系統都需要通過 Dalvik 模擬器去運行 , 所以 App 中每一個位元碼都需要通過編譯成裝置能讀懂的語言 , 通過 Just In Time (JIT) 完成編譯工作 . 這就是上文中提到為什麼 Android App 為什麼每一次啟動都需要重新去編譯的意思 . 這種方式不但拖慢了啟動程式的時間 , 亦消耗更多硬件資源 . Dalvik 的原意是為初期的 Android 提供大量的 Java 程式開發人員 , 因為 Dalvik 可以模擬運行 Java , Java 的程式員可以無障礙的開始 Android Apps . 所以 Dalvik 最初的工作是 “扯皮條" , 用以拉攏大量人員開發 Apps .
而 Android 4.4 中的 ART 就完全改變了這種過時的運行方式 , ART (Android Runtime) 是一個直接運行的方式 Ahead-Of-Time (AOT) , 這個方法令 Apps 在運行前不需要再重新編譯成機語 , 省去了模擬的過程 . 因為在 Apps 安裝時已經直接安裝機器可以讀得明白的語言 , 一開 App 就可以運行 .
看不明白嗎 ? 打個比喻 , Dalvik 的情況就是你不會英語 , 給你一份英文文件 , 你需要花時間去翻譯才看得明白 . 而 ART 就是你即使不懂英文 , 但給你看的文件都是中文 , 你就可以馬上看不用等 .
啟用 ART
android art (3)ART 其實在 Android 4.4 中並非一個明顯功能 , 是需要用戶自行去開啟的 , 用戶進入「設定」>「關於手機」>然後不停按「版本號碼」那一欄 , 直到出現「開發人員選項」, 進入「開發人員選項」見到「選取執行階段」, 在這裡可以選擇使用 Dalvik 還是 ART . 選擇好之後手機會重開 , 而這次重開的時間會長一點 .
ART 的好與壞
ART 在一般的情況下可以為 App 的執行時間最高省去 50% , 對於大型 Apps 的執行有著明顯的優勢 , 由於執行時間短了 , 處理器的負載時間亦減少 , 變相令裝置的續航力時間提升 . 同時令處理器更可以即時對於動畫介面效果以及觸控回饋等作出反應 , 令延誤感減少 , 對於多核心的裝置 , ART 可以令裝置在啟動最少的核心情況下完成任務 , 亦令佔用的 RAM 減少 , 這就是 Google 為什麼認為 512MB RAM 的裝置都可以跑得順暢 .
android art (4)有利是否就有弊 ? 是的 . 由於在安裝 App 時已經直接編譯成機器可讀懂的語言 , 所以間接令每個 Apps 的所需儲存空間加大 , 因應 App 的不同 , 增加量為 10~20% . 不過以一個 100MB 的遊戲為例 , 其實當中程式碼只有 20MB~30MB 左右 , 其實部份都是一些圖片及音效等 , 30MB 的 20% 就是 6MB , 以現時主流機子動輒已經 32GB 來說 , 多幾個 MB 不算什麼 . 另一個問題就是 Apps 在安裝時已經要做編譯 , 所以會令安裝的時間加長 , 不過換一個想法就是 , 痛一次總比每次痛好吧 . 最後一個問題是 ART 的推出太新了 , 有部份 Apps 會出現不良反應 , 如 Whatsapp . 不過這些兼容小問題相信可以在短期內解決 .
所以 ART 會比較快
但是 有CPU 相容問題
換使用 ARM 不要使用 x86 CPU 阿..
這是什麼情形!?
讓我們搬張凳子坐著看下去
























































































