标签: dalvik

Dalvik VM和ART Runtime有什么区别?

自首个Android版本以来,Dalvik VM一直是默认的VM.

谷歌在KitKat 4.4中发布了新的ART运行时.

AndroidPolice表示,这将提高应用程序性能和电池寿命.不幸的是,几乎没有关于ART的技术信息.只有这个页面.

根据我的理解,Dalvik VM在运行时将dex字节码转换为机器指令.ART将dex代码预编译为本机指令,从而消除了运行时转换步骤.

关于这个:

  • 我的理解准确吗?
  • 如果ART将dex字节码编译为本机,那么垃圾收集器会发生什么?
  • ART背后的想法是否与微软的NGEN类似?
  • ART如何影响应用调试?

java android ngen dalvik android-4.4-kitkat

11
推荐指数
0
解决办法
7013
查看次数

由于Android GC性能改变编码风格,到目前为止有多远?

我一直听说Android应用程序应该尝试限制创建的对象数量,以减少垃圾收集器的工作量.有意义的是,您可能不希望创建大量的对象来跟踪有限的内存占用,例如在传统的服务器应用程序上,在几秒钟内创建100,000个对象并不是闻所未闻.

问题是我应该走多远?我已经看到大量的Android应用程序依赖于静态状态的例子,据说可以"加快速度".是否需要将垃圾收集的实例数量从几十个增加到几十个真的会产生很大的差异?我可以想象改变我的编码风格,现在创建了数十万个对象,就像你可能在一个完整的Java-EE服务器上,但依赖一堆静态状态(据说)减少垃圾收集的对象数似乎奇.

为了创建性能Android应用程序,改变编码风格真的需要多少钱?

android dalvik

10
推荐指数
1
解决办法
1979
查看次数

.class和.dex文件有什么区别?

当然,.dex文件适用于Android的Dalvik VM,.class文件适用于JVM.但我想知道他们是否有类似的布局(常量池,字段,方法,属性......)?字节码是不同的,但Dalvik特定的操作码是否与JVM中的操作码等效?

java android jvm dalvik

10
推荐指数
1
解决办法
4824
查看次数

意外的顶级异常:java.lang.IllegalArgumentException:已添加

我是Android的新手,试图启动正在构建和部署的项目.但每次我尝试从eclipse启动应用程序时,我都会收到此错误:

UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Lcom/.../model/AvailabilityRequest$DAY_TIME_PREFERENCE;
[2012-02-06 17:32:11 - main-app] Dx     at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
[2012-02-06 17:32:11 - main-app] Dx     at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
[2012-02-06 17:32:11 - main-app] Dx     at com.android.dx.command.dexer.Main.processClass(Main.java:486)
...
[2012-02-06 17:32:11 - main-app] Dx     at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
[2012-02-06 17:32:11 - main-app] Dx 1 error; aborting
[2012-02-06 17:32:11 - main-app] Conversion to Dalvik format failed with error 1
Run Code Online (Sandbox Code Playgroud)

我为这个愚蠢的事情杀了很多时间.显然,这是已知的问题,但对我来说没有任何作用.
是)我有的:

操作系统 - OS X,我认为这很重要;
IDE - eclipse 3.7.1
ADT - 版本:15.0.1.v201111031820-219398
构建工具 - Maven

到目前为止我尝试过:
- 属性 - > Java构建路径 …

eclipse macos android dalvik maven

10
推荐指数
2
解决办法
2万
查看次数

Android中的自定义编程语言(jar)

这是我的情况,我有一个自定义编程语言,可以编译成Java字节代码.我有jar,我希望在Android应用程序中使用一些类.我需要一些关于如何处理这个问题的建议.我可以从jar中导入其中的一些类,但我不知道如何在Android上编译/运行它.任何建议表示赞赏谢谢

java eclipse android dalvik java-bytecode-asm

10
推荐指数
1
解决办法
198
查看次数

Android apk编译为ART运行时和dalvik运行时

Google在Android 4.4中添加了一个新的ART运行时.如何将我的apk定位到ART运行时和Dalvik运行时?

android dalvik art-runtime

10
推荐指数
1
解决办法
5977
查看次数

什么是Dalvik线程状态?

每个ANR转储都列出了ANR时所有线程的状态.我知道什么WAIT意思但是做什么SUSPENDEDMONITOR意味着什么?

提前致谢...

android dalvik android-anr-dialog

10
推荐指数
1
解决办法
4411
查看次数

JVM与Dalvik和/或ART有何不同?

首先,我想我可能会把这个问题标题很差,但是我想不出正确的话,所以请随意提出一个编辑,然后我会做出来,这样这个问题就更有教育意义并且与其他人相关.

我知道javax.Swing根本不能用于Android项目,我已经接受了这个并学习了基于Android XML的UI设计,但出于好奇,我想确切地知道原因.

我意识到手机的屏幕尺寸可能是Swing不能很好地处理的东西,但是什么是阻止开发人员简单地导入javax.Swing包(除了Android Studio之外根本不让它发生)变形和丑陋的摇摆窗口可能在Android设备屏幕上?我也意识到AWT和SWT也必须被导入,但同样的问题也适用于这些包.

我认为我对此缺乏了解可能真的源于缺乏对Java虚拟机和Android等价物的理解(Dalvik仍在使用,还是他们将冷火鸡切换到ART?).

与往常一样,非常感谢您提供的任何信息或阅读主题.我真的想要了解更多关于JVM,Dalvik和ART如何工作的基础知识.

java swing android dalvik android-runtime

10
推荐指数
1
解决办法
4852
查看次数

"instanceof"在Android Java代码中的影响

instanceof关键字是否会对Android平台产生相对较重的影响(更具体地说是运行Dalvik VM的手机?

performance android garbage-collection instanceof dalvik

9
推荐指数
1
解决办法
1万
查看次数

9
推荐指数
0
解决办法
1832
查看次数