android System.gc用于本机代码

时间:2014-07-09 01:39:51

标签: android garbage-collection

让我们考虑下面的特例:

案例描述:

  1. Java App调用jni然后使用native mediaserver来创建实例。此本机实例将使用大约40M内存。
  2. Java App没有发布此实例,但在finalize(GC)中发布它。
  3. 如果Java App创建了很多这样的实例,那么Java中的内存增加但不会太多,本机实例将占用N * 40M内存,如果GC没有及时发生,本机进程会消耗很多内存。
  4. 问题:

    1. 对于这种情况,什么时候由Java触发GC? GC会考虑本机内存增加然后自动调用GC吗?
    2. 我们应该在Java层中调用System.gc()来释放本机内存吗?有人似乎不同意通过应用程序调用System.gc()。
    3. 解决此类内存不足的最佳解决方案是什么!

1 个答案:

答案 0 :(得分:1)

实际上,GC是一个java层概念,对于本机代码,我猜没有这样的概念。