我的问题与我之前的问题有关:
Android 应用程序的验证和优化已关闭。
我仍然想在便携式dalvik 模式下启动我的 Android 应用程序。据我了解,不可能设置一些清单规则来实现这个勇敢的目标。
于是我决定换dalvik虚拟机!
我决定在文件/dalvik/vm/DvmDex.cpp中更改此功能:
int dvmDexFileOpenFromFd(int fd, DvmDex** ppDvmDex)
{
...
//MY CODE
if (... file is my) {
ALOGI("dvmDexFileOpenFromFd: changing mode to portable\n");
gDvm.executionMode = kExecutionModeInterpPortable;
}
//MY CODE - END
...
}
看来,一切正常。消息“dvmDexFileOpenFromFd:将模式更改为可移植”在 Android 日志中。 “init”方法在便携模式下执行。但!某些不明原因的“onCreate”方法在快速模式下执行。
我不知道发生了什么,因为据我所知,android 应用程序应该在它自己的进程中使用它自己的 dalvik 执行。
那么有人可以阐明这个问题吗?
为什么我的应用程序的一部分以快速模式执行,而另一部分以便携模式执行?
如果可能的话,我应该怎么做才能强制 dalvik仅在我的应用程序中以便携模式运行?