Articles of jvm

为什么异步网络调用的回调方法在活动结束后不会导致内存泄漏?

我们知道匿名内部类可能会导致内存泄漏。 但是为什么它在异步网络调用时不起作用。 例如: OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .get() .url(url) .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { if (response.isSuccessful()) { // String str = response.body().string(); // do sth to our View, but those views […]

JAVA_OPTS用于增加堆大小

我想增加我的堆大小。 如何使用JAVA_OPTS这样做。我收到以下错误可能是因为堆大小较小 UNEXPECTED TOP-LEVEL ERROR: java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOfRange(Arrays.java:3209) at java.lang.String.(String.java:215) at java.lang.StringBuilder.toString(StringBuilder.java:430) at com.android.dx.rop.type.Prototype.withFirstParameter(Prototype.java:370) at com.android.dx.rop.code.Rops.ropFor(Rops.java:1210) at com.android.dx.cf.code.RopperMachine.run(RopperMachine.java:478) at com.android.dx.cf.code.Simulator$SimVisitor.visitConstant(Simulator.java:692) at com.android.dx.cf.code.BytecodeArray.parseInstruction(BytecodeArray.java:763) at com.android.dx.cf.code.Simulator.simulate(Simulator.java:95) at com.android.dx.cf.code.Ropper.processBlock(Ropper.java:684) at com.android.dx.cf.code.Ropper.doit(Ropper.java:639) at com.android.dx.cf.code.Ropper.convert(Ropper.java:252) at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:256)

尽管可用内存可用,但OutOfMemory错误

我看到一个非常奇怪的问题。 基本上有时大的位图内存分配将失败,即使显然有大量的内存。 有很多post似乎问了类似的问题,但它们都与蜂窝前的安卓有关。 我的理解是图像现在分配在堆上,而不是一些外部存储器。 无论如何,请看下面这个日志: 10-14 13:43:53.020: INFO/dalvikvm-heap(31533): Grow heap (frag case) to 40.637MB for 942134-byte allocation 10-14 13:43:53.070: DEBUG/dalvikvm(31533): GC_FOR_ALLOC freed 126K, 11% free 41399K/46343K, paused 31ms 10-14 13:43:53.130: DEBUG/dalvikvm(31533): GC_FOR_ALLOC freed 920K, 13% free 40478K/46343K, paused 30ms 10-14 13:43:53.180: DEBUG/dalvikvm(31533): GC_FOR_ALLOC freed 1026K, 13% free 40479K/46343K, paused 30ms 10-14 13:43:53.250: DEBUG/dalvikvm(31533): GC_FOR_ALLOC freed […]

在Android上运行Java字节码 – 在DalvikVM上运行Sun JVM

由于Java实现( OpenJDK )和Android的虚拟机DalvikVM都是开源的,因此必须能够在Google的DalvikVM上实现Sun的JavaVM。 这样就可以在android上运行基于JVM的应用程序和语言( Clojure, Jython )开箱即用。 是否正在不断努力生成Sun JVM的这种实现?

Android Studio – JAVA_HOME并未指向有效的JVM安装

无法启动android工作室。 获取以下消息:环境variablesJAVA_HOME(值为?C:\ Program Files \ Java \ jdk1.8.0_31)未指向有效的JVM安装。 问题是,据我所知,我设置的环境variablesIS指向有效的安装。 我已经尝试了从重命名到JDK_HOME,指向jdk文件夹中的所有子目录,卸载并重新安装java和android studio大约3次。 我已经三次检查我安装了64位JAVA(并且我的计算机是64位)。 几乎在我的绳子的尽头。 帮助将非常感谢。 这是我的窗户的屏幕上限,你可能会发现一些我没有的明显的东西:

Android-Studio:错误:无法创建Java虚拟机

我今天刚刚安装了Android – studio。 首先,我必须为此IDE安装jdk7。 在那之后,我才能启动IDE。 现在,当我尝试创建新项目时,只会出现错误,如下图所示。 任何人都可以帮助我。 我身边缺少什么?

Android Studio错误:“环境variables未指向有效的JVM安装”

尝试在我的计算机上运行Android Studio时,出现以下错误: 环境variablesJAVA_HOME(值为C:\ Program Files(x86)\ Java \ jdk1.7.0_51 \ bin)未指向有效的JVM安装 我试图删除我的JAVA_HOME环境variables上的\bin扩展名,但它给了我以下错误: 找不到JVM。 请安装64位JDK。 如果已安装JDK,请在计算机>系统属性>系统设置>环境variables中定义JAVA_HOMEvariables 我的系统: Windows 8.1 Update 1 x64(64位) Java目录: C:\ Program Files(x86)\ Java \ jdk1.7.0_51 \ bin

无法创建jvm错误代码4 android studio

我刚刚更新了我的上一个Android Studio并得到了这个错误: 无法创建jvm错误代码-4 JVM路径:C:\ Program Files \ Java \ jdk1.7.0_45 \ jre如果已经安装了32位JDK,请定义一个未解决的JAVA_HOMEvariables。

我可以使用任何JVM语言为Android编程吗?

我可以使用除Java之外的其他JVM语言(例如jruby,jython,clojure)来为android编程,还是只用java? 一年前有一个类似的问题,但我不确定自那以后是否有任何变化。

Android系统是否包含JVM?

我知道Android系统包括Dalvik虚拟机(DVM)但是我不明白,如果Android系统包含JVM还是DVM是JVM的替代品? 谢谢