android验证程序源代码在哪里?

李光环

在哪里可以找到android代码验证程序的源代码?我想使用invokedynamics,但java.lang.VerifyError: Verifier rejected class ...要从android验证程序获取一些VerifyErrors()。我的代码可以使用普通JVM正常运行,没有任何验证问题,但是android验证程序拒绝了它,我想分析为什么这样做。我似乎无法在线找到验证程序源代码,但是如果它在我的设备上运行,它必须在某个地方。

首先,JVM和Android使用完全不同的字节码格式(分别为classfiles和Dex)。尽管它们相似,但是它们各自具有不同的操作码和编码方法,以及不同的功能和边缘情况。有一些工具可以相互翻译,但是由于存在差异,您无法始终准确地翻译所有内容。

自2016年左右以来,我还没有详细研究Android字节码,但当时根本不支持invokedynamic *。此外,Android拥有众多验证程序-首先是Dalvik,但随后速度太慢,因此他们转向了ART。它们应该具有相似的行为,但是,当然,每个都是独立的代码库,具有自己的各种错误。(顺便提一句,在JVM端,还有两个验证器,即基于旧推理的验证器和新的堆栈映射验证器,它们有自己的错误,尽管由于没有像Android那样快速发展而通常不多)。

无论如何,看起来ART验证程序源代码在这里

*编辑:看起来Android以后已经添加了invoke-custom操作码,它invokedynamic等效。与Dex一样,两者之间也存在细微的差异。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android HLS-源代码在哪里?

来自分类Dev

Android adb的Windows源代码在哪里?

来自分类Dev

RippleDrawable的源代码在哪里?(Android L)

来自分类Dev

RippleDrawable的源代码在哪里?(Android L)

来自分类Dev

Android Snackbar源代码在哪里?

来自分类Dev

在哪里可以找到退出程序的源代码

来自分类Dev

UbuntuTouch的源代码在哪里?

来自分类Dev

在哪里可以找到Android源代码的问题报告?

来自分类Dev

从源代码编译的应用程序的源代码放在哪里?

来自分类Dev

在哪里可以找到Ubuntu的源代码?

来自分类Dev

“去测试”源代码在哪里记录?

来自分类Dev

.Net Framework控件的源代码在哪里?

来自分类Dev

Apache hadoop示例的源代码在哪里

来自分类Dev

实际的/内核源代码在哪里?

来自分类Dev

F#3.1.2的源代码在哪里?

来自分类Dev

/ usr / bin / [‽]的源代码在哪里

来自分类Dev

在哪里可以看到swiftUI的源代码?

来自分类Dev

在哪里可以看到swiftUI的源代码?

来自分类Dev

实际的/内核源代码在哪里?

来自分类Dev

在哪里可以找到Ubuntu的源代码?

来自分类Dev

“ Ubuntu Apps目录”的源代码在哪里?

来自分类Dev

`scanf`实现源代码在哪里?

来自分类Dev

在哪里可以找到TempleOS的源代码?

来自分类Dev

Ubuntu的源代码在哪里,如何编译?

来自分类Dev

在哪里获取InterClient 2.01源代码?

来自分类Dev

命令“ ls”内核源代码在哪里?

来自分类Dev

在哪里可以找到ftpd的源代码?

来自分类Dev

在哪里可以找到libgio的源代码?

来自分类Dev

在哪里可以找到CastButtonFactory的源代码