当前位置: 首页 > 知识库问答 >
问题:

JVM与Dalvik和/或ART到底有什么不同?

宓昂雄
2023-03-14

首先,我想我可能把这个问题命名得不好,但是我想不出合适的词,所以请随意建议编辑,我会做出来,这样这个问题就更有教育意义,也更与他人相关。

我知道javax。Swing不能用于Android项目,我接受了这一点,并学习了基于Android XML的UI设计,但出于好奇,我想知道确切的原因。

我意识到,手机的屏幕尺寸可能是Swing无法很好地处理的,但要阻止开发人员简单地导入javax。Swing软件包(除了Android Studio一开始就不让它发生之外),Android设备屏幕上的Swing窗口会有多变形和丑陋?我也意识到AWT和SWT也必须进口,但同样的问题也适用于这些软件包。

我认为我对这一点缺乏理解可能是因为我不了解Java虚拟机和Android的等价物(Dalvik还在使用吗,还是他们已经彻底改用了ART?)。

如往常一样,我们非常感谢您提供的任何关于该主题的信息或阅读材料。我真的很想了解更多关于JVM、Dalvik和ART工作原理的知识。

共有2个答案

巫马化
2023-03-14

这篇文章可能会对你有所帮助http://www.techentice.com/dalvik-vs-art-android-drop-dalvik-efficient-art/虽然,它已经有些过时了。然而,它确实解释了JVM和DALVIK以及ART之间的区别。

哈栋
2023-03-14

至少有三个基本区别:

  • 不同的API;例如,即使是最新版本的Android SDK也没有JSR203

后一点意味着,Android仍然没有主流支持5年前出现在Java中的try with resources;随着时间的推移,人们已经做出了各种努力来支持这个加上Java8的“好东西”,但没有一个是真正的Java“核心”;请理解,他们不使用JVM,也不使用Java编译器。

最近的消息告诉我们,这在Android N(实际上将使用OpenJDK)中必然会发生变化。这是个好消息。此外,关于第1点,你可能还记得臭名昭著的甲骨文对谷歌的案例,关于APIs的版权...这仍然没有完全解决。

 类似资料:
  • 问题内容: 它在这里说-Xss用于“设置线程堆栈大小”,这到底是什么意思?谁能帮我理解这一点? 问题答案: Java应用程序中的每个线程都有其自己的堆栈。堆栈用于保存返回地址,函数/方法调用参数等。因此,如果线程倾向于通过递归算法处理大型结构,则所有这些返回地址等都需要大型堆栈。使用SunJVM,可以通过该参数设置该大小。

  • 问题内容: 编辑:好的,好的,我读错了。我没有将int与Integer进行比较。适当注意。 我的SCJP书说: 当==用于将原语与包装器进行比较时,包装器将被展开,并且比较将是原语与原始的比较。 因此,您会认为此代码将打印: 但它打印。 另外,根据我的书,这应该打印: 不。是。 是什么赋予了? 问题答案: 当您为该值分配1时,将装箱,创建一个对象。然后比较比较两个对象引用。引用不相等,因此比较失败

  • 本文向大家介绍interface 和 type 到底有什么区别?相关面试题,主要包含被问及interface 和 type 到底有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 interface 和 type 到底有什么区别? 作者:rottenpen

  • 我试图理解Java源代码是如何执行的,我对JVM中的JIT编译器究竟是什么感到困惑。首先,让我告诉您我是如何理解从Java源代码到在计算机上执行机器代码的过程的。也许,我在这一过程中误解了一些导致混淆的东西。 步骤如下: 源代码被编译成字节码(.class文件) 现在,根据维基百科关于JVM的文章,更具体地说是“字节码解释器和实时编译器”部分,为了执行Java字节码,您需要一个解释器(但我们有一个

  • 问题内容: 我认为JVM与.NET Framework类似,对吗?那么,JRE是什么?JRE和JVM有什么区别? 问题答案: JRE是虚拟机在其中运行的环境。 JRE-JAVA运行时环境 JVM-JAVA虚拟机 JRE是容器,JVM是内容。

  • 问题内容: 我网站上的链接不起作用,我得到了在锚点上使用的解决方案,而没有得到真正的解释。有人能帮我吗? 问题答案: 是jQuery Mobile的功能。默认情况下,JQM将尝试通过ajax加载页面,以改善用户体验和转换。如果设置,则JQM将执行普通的页面请求,而不使用ajax。这可以用于表单以及链接。 从文档: 这告诉框架重新加载整个页面以清除URL中的Ajax哈希 如果要禁用所有链接上的aja