接下來要研究的是Dalvik VM,不過再研究它之前,先來複習一下JVM。
一樣,想要用一句話來解釋一個名詞,查wiki最快了。
(JVM)一種能夠執行Java bytecode的虛擬機器。
Java可以跨平台執行,就是因為有JVM的存在。任何平台只要裝上JVM,它就能夠讀懂Java bytecode,就都可以執行Java了。
所以首要了解的就是,Java bytecode是什麼?Java編譯與執行的大致流程是如何?
第一眼看到這個詞,就有個疑問:它跟一般我們說的binary code一樣嗎?
網路上有人解答 ,我截其中一部分回答如下:
Java bytecode is a binary data format (...). In that sense, Java bytecode is a special kind of binary code.
When you use the term "binary code" to mean machine instructions for a real processors architecture (like IA-32 or Sparc) then it is different. (...) It is not processor-specific.
那Java bytecode實際上長什麼樣子呢?
一樣拿wiki的範例來看:
這是我們一般較熟悉的組合語言:
mov eax, byte [ebp-4]
mov edx, byte [ebp-8]
add eax, edx
mov ecx, eax
這是Java bytecode:
0 iload_1
1 iload_2
2 iadd
3 istore_3
若要深入研究這些語法我就不用讀Android了(累),所以我就先想成,Java bytecode就是JVM專用的binary code這樣就夠了。
今天先到這裡,明天來講Java執行流程。