2011-11-23 94 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