android-Dalvik文件格式(* .dx)是否比Java .class文件支持更多指令?

Dalvik VM支持哪些功能(就字节码而言)当前未使用,因为.class文件没有?

例如,如果人们为自己的功能语言XYZ编写自己的Source-to-DX转换器,他们将能够实现e. G.完整的尾部调用,尽管.class文件仅在某些情况下才支持尾部调用

最佳答案
我不是专家,但据我所知,答案是否定的.

以下两个站点列出了Dalvik和JVM操作码,并且撇开了Dalvik是基于寄存器的VM和JVM是基于堆栈的事实,这些操作码非常相似.

http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html

http://en.wikipedia.org/wiki/Java_bytecode

两者都是专门为处理Java语言而量身定制的(即使在将来的JVM版本中,即使有建议解除这种约束).

Java上的尾部调用优化的问题之一是,调用堆栈实际上可用于程序(例如,通过new Throwable().getStackTrace(),Android上也存在).如果VM进行了尾部调用优化,则它需要对其刚刚“优化”的内容进行一些记账,以便能够正确实现getStackTrace方法.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...