第二個作業是要我們新增 Dalvik 的 opcode ,
還有寫一些轉換的東西,最後好像還要去改 Dalvik 的 code 。
說實在的,我完全不知道 Dalvik 是個什麼玩意兒,
還要去改它,簡直是天方夜譚,
只有一個模糊的概念,它好像是一台 virtual machine 吧…?
既然是一台 VM ,那在做任何事情之前,至少應該先跑跑看它再說,
找到了課程提供的教學,發現要跑它還真麻煩,
要設好環境變數,要創幾個資料夾,真正執行的時候還要加上超長的 argument ,
在教學裡面,乾脆把這些東西寫成一個 shell script 檔,
要執行 Dalvik 的時候就只要跑它就行了。
在 Java VM 可以執行 .jar 檔,在 Dalvik 我們要執行的是 .dex 檔,
下載一下教學裡面的 Foo1.dex ,再用剛剛的 script 跑了一跑,
果然跑出一堆四則運算出來,算是跑成功了吧。
回頭看了一下教學的 title ,是 "Host Dalvik" ,
代表是跑在 host ,也就是電腦上的 Dalvik ,
這個 dalvikvm 執行檔,是放在 out/host/linux-x86/bin 裡。
這麼說起來,應該也要有 target ,也就是手機裡的 Dalvik 啦,
找了一下,果然在 out/target/product/generic/system/bin 裡就發現另一台 dalvikvm 了。
用 file 這個指令來檢查一下,這台 host 的 Dalvik 是跑在 Intel 80386 的,
而 target 的 Dalvik 是跑在 ARM 上的,
真厲害。
沒有留言:
張貼留言