2011-11-23 140 views
6

我一直在修改Dalvik虛擬機,我想知道是否有一種方法可以從android源代碼構建Dalvik虛擬機。如何部分構建Android源代碼?

如果我可以單獨構建Dalvik VM,那麼如何將修改的Dalvik VM添加到Android系統?通過做

$ make libdvm 

時,您只需構建Dalvik虛擬機:

在此先感謝

回答

12

一旦你已經完成了初始版本(http://source.android.com/source/building.html我假設你已經按照這裏描述的步驟)構建完成後,你會看到一些輸出附近,看起來像

Install: out/target/product/generic/system/lib/libdvm.so 

這是新建成的Dalvik虛擬機(或者更具體地說,T他在其中實現Dalvik虛擬機的庫)。輸出路徑的最後一部分是安裝文件的預期位置,在這種情況下爲/system/lib/libdvm.so。要安裝新的VM,首先確保你是根,然後重新安裝系統分區

$ adb root 
adbd is already running as root 
$ adb remount 
remount succeeded 

你現在可以推新虛擬機系統:

$ adb push out/target/product/generic/system/lib/libdvm.so /system/lib/libdvm.so 

請注意,如果你運行模擬器,此更改不是永久性的,因爲每次啓動時模擬器都會重新加載system.img。但是,在設備上,更改將是永久性的。此外,由於Android預裝一個叫做受精卵的過程,以後用於派生應用程序,您需要重新啓動系統,使新的虛擬機內的應用

$ adb reboot 

實際上,你可以重建幾乎所有的Android組件這樣。一般的步驟是

  1. 源樹要重建
  2. 查找模塊名稱組件查找Android.mk。在Dalvik虛擬機的情況下,行是這樣的:LOCAL_MODULE := libdvm
  3. make模塊的名稱,這是libdvm的Dalvik虛擬機
  4. 內置文件將在構建輸出來通知,並與Install:開始。在Dalvik VM的情況下,這是Install: out/target/product/generic/system/lib/libdvm.so
  5. adb rootadb remount,然後adb push構建文件到一個運行的Android系統。目標路徑是out文件路徑的最後一部分,在達爾維克的情況下爲/system/lib/libdvm.so