我一直在修改Dalvik VM,我想知道是否有一种方法可以从
android源代码只构建Dalvik VM.
如果我可以单独构建Dalvik VM,那么如何将修改后的Dalvik VM添加到Android系统?
提前致谢
解决方法
完成初始构建后(我假设您已按照此处描述的步骤操作:
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组件.一般步骤是
>在源树中查找要重建的组件的Android.mk>找到模块名称.对于Dalvik VM,该行如下所示:LOCAL_MODULE:= libdvm>制作模块名称,即Dalvik VM的libdvm>构建文件将在构建输出中公布,并以Install:开头.对于Dalvik VM,这是Install:out / target / product / generic / system / lib / libdvm.so> adb root和adb remount,然后adb将构建的文件推送到正在运行的Android系统.目标路径是out文件路径的最后一部分,在dalvik的情况下是/system/lib/libdvm.so