如何部分构建Android源代码?

时间:2011-11-23 07:22:20

标签: android

我一直在修改Dalvik VM,我想知道是否有一种方法可以从android源代码只构建Dalvik VM。

如果我可以单独构建Dalvik VM,那么如何将修改后的Dalvik VM添加到Android系统?

提前致谢

1 个答案:

答案 0 :(得分:12)

完成初始构建后(我假设您已按照此处描述的步骤进行操作:http://source.android.com/source/building.html),您可以通过

构建Dalvik VM
$ make libdvm

构建完成后,您会看到附近的某些输出类似于

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

这是新建的Dalvik VM(或更具体地说,实现Dalvik VM的库)。 out路径的最后一部分是预期安装文件的位置,在本例中为/system/lib/libdvm.so。要安装新VM,首先要确保您是root用户,然后重新安装系统分区

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

您现在可以将新VM推送到系统:

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

请注意,如果您运行模拟器,则此更改不是永久性的,因为模拟器每次启动时都会重新加载system.img。但是,在设备上,更改将是永久性的。此外,由于Android预加载了一个名为Zygote的进程,该进程稍后用于分叉应用程序进程,因此需要重新引导系统以使新VM在应用程序中使用

$ adb reboot

您实际上可以通过这种方式重建几乎所有Android组件。一般步骤是

  1. 在源树中查找要重建的组件的Android.mk
  2. 找到模块名称。对于Dalvik VM,该行如下所示:LOCAL_MODULE := libdvm
  3. make模块名称,即Dalvik VM的libdvm
  4. 构建文件将在构建输出中公布,并以Install:开头。对于Dalvik VM,这是Install: out/target/product/generic/system/lib/libdvm.so
  5. adb rootadb remount,然后将adb push构建的文件发送到正在运行的Android系统。目标路径是输出文件路径的最后一部分,在dalvik的情况下是/system/lib/libdvm.so