在Android中查找javaMaxHeapSize的默认值

林果皞*_*林果皞 1 android build.gradle android-gradle-plugin

我知道我可以这样做(参考):

android {
  ...
  dexOptions {
    maxProcessCount 4 // this is the default value
    javaMaxHeapSize "2g"
  }
}
Run Code Online (Sandbox Code Playgroud)

但是我怎么知道javaMaxHeapSize的默认/当前值?

我的平台是Fedora 21及以下版本:

Android Studio 2.1.2
Build #AI-143.2915827, built on May 26, 2016
JRE: 1.8.0_74-b02 amd64
JVM: Java HotSpot(TM) 64-Bit Server VM by Oracle Corporation
Run Code Online (Sandbox Code Playgroud)

Gio*_*oli 6

这取决于你的意思:

javaMaxHeapSize的默认值是什么?

如果您想知道javaMaxHeapSize属性的默认值dexOptions,则值为null.

如果您尚未指定,则此任务可以演示:

task maxSize << {
    println("Java max heap size is: ${project.android.dexOptions.getJavaMaxHeapSize()}")
}
Run Code Online (Sandbox Code Playgroud)

如果你想知道你的JVM最大堆大小(我想你想知道这个),它是一个JVM参数,可以根据你的机器而改变.

引用Oracle文件:

最大堆大小:

较小的物理内存的1/4或1GB.在J2SE 5.0之前,默认的最大堆大小为64MB.您可以使用-Xmx命令行选项覆盖此默认值.

您可以在终端中检查它是否正在执行此UNIX命令(如您所说,您正在使用Fedora):

java -XX:+PrintFlagsFinal -version | grep MaxHeapSize
Run Code Online (Sandbox Code Playgroud)

该值以字节表示.

  • @ cricket_007 mmh,属性“ javaMaxHeapSize”更改了计算机(而不是Android设备)上的JVM args。 (2认同)