微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Dalvik字节码或本地机器码的过程中的哪一种代码?

我不太确定在android平台上的linux进程中加载​​了哪种代码

如果android采用Dalvik,该进程包含一个Dalvik VM和应用程序代码,是Dalvik字节码forms的代码吗? 如果是的话,代码是否与.apk文件中的classes.dex相同?

如果android采用Android运行时(ART),由于classes.dex已经被翻译成本地机器码,所以我认为在Linux进程中的应用程序代码不是Dalvik字节码,而是本机机器码。 如果我的理解是正确的,Dalvik VM是否仍然包含在这个过程中?

无法获得adb版本…没有这样的文件或目录

Android Shell EOF

这个内核需要一个x86-64 cpu,但只能检测到一个i686 cpu

Windows上的Android-Studio显示cpu不支持SVM”,但不支持Linux

Android – NDK共享库提取与nm / objdump相关的JNI钩子

渲染缓冲区作为源兄弟和纹理作为目标兄弟的EGLImages

无法在Windows 7上安装Android USB驱动程序

Android文件系统

在x86上执行x86 Android AVD在Linux上的工作吗?

离线跨平台语音使用Xamarin的智能手机的文本

从Android 5.0 (Lollipop)开始 ,Dalvik已经完全被Android Runtime (ART)取代,后者处理本机二进制文件

验证Android运行时的应用程序行为

Android运行时(ART)是运行Android 5.0(API级别21)及更高版本的设备的认运行时

在安装时,ART使用设备上的dex2oat工具编译应用程序。 该实用程序接受DEX文件作为输入,并为目标设备生成已编译的应用程序可执行文件

更具体的说,Dalvik提倡使用odex文件,它是Dalvik的dex文件的预处理优化版本,用于解释或JIT编译。

ART促进使用ELF文件,这是一种通用格式,可以指导将某些功能和对象链接到设备的本地指令,并在安装时执行。

维基百科 – Android运行时

与Dalvik不同的是,ART通过在安装时将整个应用程序编译成本机机器码来引入使用提前(AOT)编译。

ART使用与Dalvik相同的输入字节码,通过标准的.dex文件作为APK文件的一部分提供,而.odex文件被替换为可执行文件和可链接格式(ELF)可执行文件。 一旦应用程序使用ART的设备上的dex2oat实用程序进行编译,它将仅从编译的ELF可执行文件运行

可执行和可链接的格式 – 应用程序

Android为Java Native Interface使用ELF .so(共享对象)库。 使用Android Runtime(ART)是Android 5.0“Lollipop”的认设置,所有应用程序在安装时都会被编译为本地ELF二进制文件

ART不包含Dalvik的一个实例,虽然大部分都是兼容的,但提到Dalvik支持的一些特性不被ART支持

验证Android运行时的应用程序行为

然而,在Dalvik上工作的一些技术不适用于ART。 通过本文档,您可以了解在迁移现有应用与ART兼容时需要注意的事项。 运行ART时,大多数应用程序都应该可以工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐