我知道可以通过/system/bin/dalvikvm
在Android命令行上运行纯DEX字节码,但我想知道是否可以从命令行运行OAT文件?
由于它是一个ELF共享对象文件,我想必须通过zygote
启动。也许使用app_process
是可能的,但我不知道如何实现。
有人能帮帮我吗?
我知道可以通过/system/bin/dalvikvm
在Android命令行上运行纯DEX字节码,但我想知道是否可以从命令行运行OAT文件?
由于它是一个ELF共享对象文件,我想必须通过zygote
启动。也许使用app_process
是可能的,但我不知道如何实现。
有人能帮帮我吗?
.oat文件本身并不是一个完整的应用程序。app进程还需要包含初始化堆的boot.oat以及boot.art。正如您所说,运行中的app_process已经具备了这些页面。Zygote正在等待在套接字/dev/socket/zygote上接收应用程序启动请求。您可以在AOSP源代码中查看有关此套接字上由启动器写入以启动应用程序的信息以及该信息如何与应用程序的.oat文件通信的详细信息。