我知道可以通过以下方式在Android中启动java程序:
adb push "hello_world.zip" $REMOTE_PATH/
adb shell mkdir $REMOTE_PATH/dalvik-cache
adb shell dalvikvm -cp "$REMOTE_PATH/hello_world.zip" -Xint:portable -Xdexopt:none -Xverify:none hello_world
这很好!
但现在我想创建 Android .apk 文件。我希望使用相同的命令行参数启动该应用程序"-Xint:portable -Xdexopt:none -Xverify:none"
自动地。
我假设参数名称可能与此不同"-Xint:portable -Xdexopt:none -Xverify:none"
,但功能必须相同。我不知道我必须做什么,谷歌不想帮助我解决这个问题。
任何帮助将非常感激!
我认为@Delyan 的回答击中了要点,但我想添加一些不适合评论的细节。
关于做这类事情的官方文档是控制嵌入式虚拟机 http://milk.com/kodebase/dalvik-docs-mirror/docs/embedded-vm-control.html#execmode (在源代码树中 https://android.googlesource.com/platform/dalvik/+/jb-mr2-release/docs/embedded-vm-control.html). The execution-mode
属性会影响所有应用程序,因为虚拟机仅作为“zygote”启动一次,并且所有应用程序都是通过分叉该进程来启动的。
一旦启动,就可以更改虚拟机的模式,也许可以通过引入新的模式VMRuntime
API 调用,但我认为没有人尝试过,而且我不确定它如何与 JIT 编译器交互。
大多数 DEX 优化和验证都是在应用程序启动之前由 dexopt 执行的,结果存储在 .odex 文件中/data/dalvik-cache
,所以调整-Xdexopt
and -Xverify
在应用程序启动时可能不会做太多事情(请参阅dexopt 文档 http://milk.com/kodebase/dalvik-docs-mirror/docs/dexopt.html; source https://android.googlesource.com/platform/dalvik/+/jb-mr2-release/docs/dexopt.html).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)