Java 如何在Android中增加堆大小?

Java 如何在Android中增加堆大小?,java,android,heap,Java,Android,Heap,因此,我的问题与此类似: 但是,由于我没有处理缓存,因此提供的关于更好的缓存实现的答案不适用于我。我的目标是分配一个大堆,作为我认为GC_并发正在影响的问题的临时解决方案,我的目标是分配一个堆,使GC_并发不会发生。我想强调的是,我没有内存泄漏,因为当GC_并发运行时,它总是释放15%的内存,而且这个数字不会下降,而且我已经优化了我的代码,这样我就不会在任何循环中进行变量初始化,并且尽可能地将事情声明为静态和最终的 我尝试过设置android:largeHeap=“true”,但它没有明显的效

因此,我的问题与此类似:

但是,由于我没有处理缓存,因此提供的关于更好的缓存实现的答案不适用于我。我的目标是分配一个大堆,作为我认为GC_并发正在影响的问题的临时解决方案,我的目标是分配一个堆,使GC_并发不会发生。我想强调的是,我没有内存泄漏,因为当GC_并发运行时,它总是释放15%的内存,而且这个数字不会下降,而且我已经优化了我的代码,这样我就不会在任何循环中进行变量初始化,并且尽可能地将事情声明为静态和最终的

我尝试过设置android:largeHeap=“true”,但它没有明显的效果,因此我正在寻找一些对操作系统不礼貌的请求,并且与贬值的
VMRuntime.getRuntime().setMinimumHeapSize(更大的大小)

我正在寻找一种对操作系统不礼貌的请求,并且与被贬低的VMRuntime.getRuntime().setMinimumHeapSize(更大的大小)做的事情实际上是一样的

在Android SDK中没有实现这一点的方法。否则,每个开发人员都会认为他们是一个特殊的雪花,应该在512MB设备上拥有16GB的系统RAM

我试过设置android:largeHeap=“true”,但没有明显效果

您可以使用
getMemoryClass()
getLargeMemoryClass()
(在
ActivityManager
上)查看使用
android:largeHeap=“true”
时堆限制的差异。另外,请记住,
android:largeHeap=“true”
仅在API级别11+的设备上可用

我已经优化了我的代码,这样我在任何循环中都没有变量初始化,并且尽可能地声明为静态和最终的


当然欢迎您使用DDMS分配跟踪器、堆转储等来确定触发GC的内存使用来源。

如果您不想使用largeHeap“true”,还有另一个用于调整内存设置的替代选项。您只需在gradle.properties文件中添加/替换现有行


org.gradle.jvmargs=-Xmx1024m

它与应用程序运行时内存无关!这是android studio中的gradle构建时间